Язык XML - Documents Type Definitions (DTD)

Описание схемы документа

DTD описывает схему документа для конкретного языка разметки посредством набора объявлений (объектов-параметров, элементов и атрибутов), которые описывают его класс (или тип) с точки зрения синтаксических ограничений этого документа. Также DTD может объявлять конструкции, которые всегда необходимы для определения структуры документа, но, зато, могут влиять на интерпретацию определённых документов.

Объявление объектов-параметров

Объявление объекта-параметра определяет макрос определённого типа, на который можно ссылаться и который может быть развернут где-нибудь в DTD. Эти макросы могут не появляться в самом документе, а быть только в DTD. Если на объект-параметр ссылаются по имени их DTD, то он разворачивается в строку, в которой указано содержимое этого объекта.

Объект-параметр fontstyle содержит в себе группу тегов TT | I | B | BIG | SMALL .

"#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;" >

Объект-параметр inline содержит в себе текстовые данные и ещё четыре объекта-параметра fontstyle , phrase , special и formctrl .

Объявление элементов

Объявления элементов образовывают перечень разрешенных названий элементов в документе, а также определяют информацию относительно тегов (являются ли они обязательными) и модели содержимого для каждого элемента.

Различные ключевые слова и символы определяют содержимое элемента:

  • EMPTY - пустое содержимое
  • ANY - любое содержимое
  • , - указывает порядок
  • | - разделение альтернатив
  • () - группировка
  • * - любое количество элементов (ноль и более)
  • + - по крайней мере один элемент (один и более)
  • ? - необязательное наличие элемента (ноль или один)
  • Если нет *, + или? - элемент должен быть только один

(DT|DD) +>

Элемент DL должен содержать один и более элементов DT или DD в произвольном порядке.

(%block;|SCRIPT) + -(FORM) >

Элемент FORM должен содержать в себе один или более элементов с объектом-параметром block или элементы SCRIPT в произвольном порядке, однако исключена возможность содержать ещё один элемент FORM .

Определение атрибутов

С каждым элементом DTD-документа можно сопоставить список атрибутов. Для этого используется директива!ATTLIST , в которой указываются имя элемента, с которым может быть сопоставлен список атрибутов и параметры каждого атрибута: его имя, тип и свойства по умолчанию.

Например:

name CDATA #REQUIRED>

В этом примере определен атрибут name для элемента MAP . Он является обязательным.

Существуют такие типы атрибутов:

  • CDATA (Character set of data) - значением атрибута могут быть любые символьные данные
  • ID - значением атрибута должен быть уникальный идентификатор элемента
  • IDREF - значением элемента является ссылка на элемент по его ID
  • IDREFS - тоже что и IDREF , но с возможностью ссылок не по одному идентификатору, а по нескольким
  • NMTOKEN - значением атрибута может быть последовательность символов, в чём-то схожая с именем (отсюда и названием - name token). Это строка, которая содержит любую комбинацию тех символов, которые разрешено использовать для имен XML.
  • NMTOKENS - значением атрибута является список значений
  • ENTITY - значение используется для ссылки на внешнюю сущность.
  • ENTITIES - позволяет задать список внешних сущностей, разделённых пробелами.
  • NOTATION - значением атрибута может быть одна из ранее определённых нотаций
  • NOTATIONS - позволяет задать список нотаций.
  • Listings и NOTATION-listings
  • ENUMERATION - задаёт список возможных альтернатив значений.

Существуют такие свойства по умолчанию:

  1. IMPLIED - значение атрибута указывать не обязательно;
  2. REQUIRED - значение атрибута обязательно должно быть указано;
  3. FIXED - значение этого атрибута задано как константа в DTD и в документе не может быть изменено;
  4. некоторое конкретное значение, которое используется по умолчанию.

Связь документа с определённым DTD

Чтобы связать документ с определённым DTD, необходимо в начале текста документа указать элемент Объявление Типа Документа.

В зависимости от места расположения DTD, Объявление Типа Документа может быть двух видов:

  • Внутреннее подмножество DTD

Набор объявлений DTD содержится в самом тексте документа. Например:

]> ]>

  • Внешнее подмножество DTD

Набор объявлений DTD располагается в отдельном текстовом файле с расширением.dtd В этом случае ссылку на файл можно сделать через публичный идентификатор и (или) через системный идентификатор. Например:

"http://www.w3.org/TR/html4/strict.dtd">

Пример

Пример очень простого XML DTD, описывающего список людей:

(person*) > (name, birthdate?, gender?, socialsecuritynumber?) > (#PCDATA) > (#PCDATA) > (#PCDATA) >

Начиная с первой строки:

  1. Элемент Содержит любое число элементов Знак <*> означает что возможно 0, 1 или более элементов Внутри элемента .
  2. Элемент Содержит элементы , , и . Знак означает что элемент необязателен. Элемент не содержит , что означает что элемент обязательно должен содержать элемент .
  3. Элемент содержит данные.
  4. Элемент содержит данные.
  5. Элемент содержит данные.
  6. Элемент содержит данные.

Пример XML-документа, использующего этот DTD:

> > > Fred Bloggs> > 27/11/2008> > Male> > 1234567890> > >

См. также


Wikimedia Foundation . 2010 .

Смотреть что такое "DTD" в других словарях:

    DTD - , die in einer ASCII Datei (ASCII) abgelegte Beschreibung der Struktur von Dokumenten, welche alle vom selben Typ sind. Eine DTD wird nach den Regeln der international anerkannten… … Universal-Lexikon

    DTD - may stand for: Contents 1 Media 2 Music 3 Sports 4 Technologies 4.1 Computing … Wikipedia

    DTD - steht für: Inhaltsverzeichnis 1 Medien 2 Music 3 Technologien 3.1 Computer 3.1.1 Spiele … Deutsch Wikipedia

    Dtd - steht für: Darwin Digital Television, eine australische Fernsehstation Delta Tau Delta, eine US amerikanische Studentenorganisation Document Type Definition, siehe Dokumenttypdefinition … Deutsch Wikipedia

    DTD - (dē tē dēʹ) n. A set of rules for marking up a document in SGML. * * * … Universalium

    DTD - (document type definition) specification written in the Standard Generalized Markup Language and containing information about the format of a particular document (Computers) … English contemporary dictionary

XML для описания подобных "самодеятельных" тэгов используются схемы . Они необходимы для того, чтобы:
  • описать, что именно является разметкой;
  • описать точно, что означает разметка.

Наиболее известными языками описания схем являются следующие:

  • DTD (Document Type Definition) - язык определения типа документов, который первоначально использовался в качестве язык описания структуры SGML-документа.
  • XDR (XML Data Reduced) – диалект схемы XML, разработанный Microsoft, который поддерживался в Internet Explorer 4 и 5 версий.
  • XML Schema или просто XSD (язык определения схем XML) – рекомендация консорциума W3C с 2001 года.

Рассмотрим подробнее первые два из них. Третий язык описания схем рассматривается в лабораторной работе 11.

DTD схема

Схема DTD предоставляет шаблон разметки документа, в котором указываются наличие , порядок следования и расположение элементов и их атрибутов в документе XML .

В рамках DTD модель содержимого XML документа можно описать следующим образом:

Каждый элемент документа может иметь один из типов:

Содержание Синтаксис Комментарий
Данные Содержит только текстовые данные
Другие элементы Содержит только дочерние элементы
Смешанное Содержит комбинацию текстовых данных и дочерних элементов
EMPTY Ничего не содержит
ANY Может содержать текстовые данные или дочерние элементы

Атрибуты, находящиеся внутри тэгов документа, описываются отдельно с помощью синтаксиса:

При этом атрибут в DTD может иметь один из трех типов:

  • Строка
  • Маркированные атрибут
  • Атрибута с перечислением

Кроме типа атрибута можно также задавать и его модальность:

Рассмотрим в качестве примера описание атрибутов строкового типа для элемента, описывающего некоторое сообщение:

Если этот элемент содержит атрибуты с перечислением , то их описание может выглядеть, например, следующим образом:

Маркированных атрибуты элемента могут быть четырех типов:

И, наконец, в DTD можно использовать следующие индикаторы вхождения последовательностей:

Символ Пример Описание
, (a, b, c) Последовательное использование элементов списка
| (a | b | c) Используется один из членов списка
date Используется один и только один элемент
? subject ? Необязательное использование (0 или 1 раз)
+ paragraph+ Используется один или несколько раз
* brother* Используется ноль или несколько раз

В качестве примера приведем DTD схему, описывающую структуру электронного почтового ящика:

Определение типов документа (DTD) декларирует допустимые строительные блоки XML документа. Оно задает структуру документа со списком допустимых элементов и атрибутов.

DTD может декларироваться как в коде самого XML документа, так и во внешнем файле с подключением его к XML документу.

Внутренняя декларация DTD

Если DTD декларируется внутри XML файла, то она должны быть заключена в специальный тег декларации DOCTYPE , который имеет следующий синтаксис:

Пример XML документа с внутренним DTD:

]> Tove Jani Напоминание Не забудь обо мне в эти выходные

DTD в приведенном примере интерпретируется следующим образом:

  • !DOCTYPE note определяет, что корневым элементом документа является note
  • !ELEMENT note определяет, что элемент note содержит четыре элемента: to, from, heading, body
  • !ELEMENT to определяет, что элемент to должен быть
  • !ELEMENT from определяет, что элемент from должен быть типа "#PCDATA"
  • !ELEMENT heading определяет, что элемент heading должен быть типа "#PCDATA"
  • !ELEMENT body определяет, что элемент body должен быть типа "#PCDATA"

Внешняя декларация DTD

Если DTD декларируется во внешнем файле, то подключение осуществляется следующим образом:

Ниже приводится тот же XML документ, что и ранее, но с внешней декларацией DTD:

Tove Jani Напоминание Не забудь обо мне в выходные

А вот что содержится в файле "note.dtd", который декларирует DTD:

Для чего используют DTD?

С DTD каждый ваш XML файл может нести описание своего собственного формата.

С DTD различные, не связанные друг с другом, группы людей могут приходить к соглашению о стандартах взаимно обмениваемых данных.

С DTD вы можете быть уверены, что получаемые из внешних источников данные будут корректными.

Также, вы можете использовать DTD, чтобы проводит проверки корректности своих собственных данных.

Главный писатель по вопросам технологий

Вам кто-то послал по электронной почте файл DTD, и вы не знаете, как его открыть? Может быть, вы нашли файл DTD на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом DTD.

До того, как вы сможете открыть файл DTD, вам необходимо выяснить, к какому виду файла относится расширения файла DTD.

Tip: Incorrect DTD file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry.

Ответ:

Файлы DTD имеют Файлы данных, который преимущественно ассоциирован с DesignTools 2D Design (TechSoft UK Limited).

Файлы DTD также ассоциированы с ArcView UNIX Hyperhelp Supporting File (ESRI), SGML Document Definition File и FileViewPro.

Иные типы файлов также могут использовать расширение файла DTD. Если вам известны любые другие форматы файлов, использующие расширение файла DTD, пожалуйста, свяжитесь с нами , чтобы мы смогли соответствующим образом обновить нашу информацию.

Как открыть ваш файл DTD:

Самый быстрый и легкий способ открыть свой файл DTD - это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла DTD.

В случае, если ваш файл DTD не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями DTD.

Если ваш ПК открывает файл DTD, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов DTD с неверной программой.

Установить необязательные продукты - FileViewPro (Solvusoft) | | | |

DTD Multipurpose Internet Mail Extensions (MIME):

  • mime text/xml

DTD Инструмент анализа файлов™

Вы не уверены, какой тип у файла DTD? Хотите получить точную информацию о файле, его создателе и как его можно открыть?

Теперь можно мгновенно получить всю необходимую информацию о файле DTD!

Революционный DTD Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле DTD. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.†

Уже через несколько секунд вы точно узнаете тип вашего файла DTD, приложение, сопоставленное с файлом, имя создавшего файл пользователя, статус защиты файла и другую полезную информацию.

Чтобы начать бесплатный анализ файла, просто перетащите ваш файл DTD внутрь пунктирной линии ниже или нажмите «Просмотреть мой компьютер» и выберите файл. Отчет об анализе файла DTD будет показан внизу, прямо в окне браузера.

Перетащите файл DTD сюда для начала анализа

Просмотреть мой компьютер »

Пожалуйста, также проверьте мой файл на вирусы

Ваш файл анализируется... пожалуйста подождите.

В этой главе мы обсудим о атрибутах DTD. Атрибут дает больше информации о элементе или более точно он определяет свойство элемента. Атрибут XML всегда в форме пары им-значения. Элемент может иметь любое число уникально атрибутов.

Объявление атрибута очень много подобно к объявлениям элемента в много путей за исключением одного; вместо объявлять позволяемое содержание для элементов, вы объявляете список позволяемых атрибутов для каждого элемента. Эти списки вызваны объявлением ATTLIST.

Синтаксис

Основной синтаксис объявления атрибутов DTD следующим образом:

В вышеуказанном синтаксисе

    Старт атрибутов DTD с

    элемент-имя определяет имя элемента к которому атрибут применяется.

    атрибут-имя определяет имя атрибута который включен с элемент-именем.

    атрибут-тип определяет тип атрибутов. Мы обсудим больше на этом в следующих разделах.

    атрибут со значением принимает фикчированное значение которое атрибуты должны определить. Мы обсудим больше на этом в следующих разделах.

Пример

Ниже простой пример для объявления атрибута в DTD:

]>

Tanmay Patil

Препятствуйте нам пойти через вышеуказанный Код:

    Начните с объявлением XML с следующим заявлением:

    Немедленно после коллектора XML тип объявление документа, обыкновенно называемое DOCTYPE:

    DOCTYPE сообщает парсер что DTD связан с этим документом XML. Объявление DOCTYPE имеет восклицательный знак (!) в начале имени элемента.

    Следование тело DTD. Здесь мы объявляли элемент и атрибут:

Удостоверение личности атрибута для имени элемента определено как:

Здесь тип атрибута CDATA и свое значение #REQUIRED .

Правила объявления атрибута

    Все атрибуты используемые в документе XML необходимо объявить в определении типа документа (DTD) используя объявление Атрибут-Списка

    Атрибуты могут только появиться в старт или пустые бирки.

    Ключевое слово ATTLIST должно находиться в верхушке - случае

    Никакие двойные имена атрибута не будут позволены внутри список атрибута для, котор дали элемента.

Типы атрибута

Объявляя атрибуты, вы можете определить как обработчик должен отрегулировать данные которые появляются в значение. Мы можем классифицировать атрибут печатаем внутри 3 главным образом категории на машинке:

    Тип строки

    Типы Tokenized

    Перечисленные типы

Следовать таблица обеспечивает сводку различных типов атрибута:

Тип Описание
CDATA CDATA данные по характера (текст и не повышение цены). Тип атрибута строки .
Удостоверение личности Это уникально обозначение атрибута. Оно не должен появиться больше чем раз. Тип атрибута Tokenized .
IDREF Оно использован для того чтобы снабдить ссылками удостоверение личности другого элемента. Оно использован для того чтобы установить элементы связь между. Тип атрибута Tokenized .
IDREFS Оно использован для того чтобы снабдить ссылками множественное удостоверение личности. Тип атрибута Tokenized .
РЕАЛЬНОСТЬ Она представляет внешнюю реальность в документе. Тип атрибута Tokenized .
РЕАЛЬНОСТИ Оно представляет список внешних реальностей в документе. Тип атрибута Tokenized .
NMTOKEN Оно подобен к CDATA и атрибут со значением состоит из действительного имени XML. Тип атрибута Tokenized .
NMTOKENS Оно подобен к CDATA и атрибут со значением состоит список действительного имени XML. Тип атрибута Tokenized .
НОТАЦИЯ Элемент будет снабжен ссылками к объявленной нотации в документе DTD. Перечисленный тип атрибута .
Обозначение Оно позволяет определить специфический список значений где одно из значений должно соответствовать. Перечисленный тип атрибута .

Объявление атрибута со значением

В пределах каждого объявления атрибута, вы должны определить как значение появится в документ. Вы можете определить если атрибут:, то

    смогите иметь автоматически принимаемое значение

    смогите иметь фикчированное значение

  • подразумевает

Автоматически принимаемые значения

Он содержит автоматически принимаемое значение. Значения могут быть заключили в одиночные кавычки (") или двойные цитаты (")

Синтаксис

Следование синтаксис значения:

где значени по умолчанию-значение определенный атрибут со значением.

Пример

Следование простой пример объявления атрибута с автоматически принимаемым значением:

]>

Tanmay Patil

В этом примере мы имеем элемент имени с удостоверением личности атрибута которого автоматически принимаемое значение 0 . Автоматически принимаемое значение заключено в пределах двойных цитат.

ФИКЧИРОВАННЫЕ значения

ключевое слово #FIXED следовать фикчированным значением использовано когда вы хотите определить что атрибут со значением постоянн и не может быть изменен. Общяя польза фикчированных атрибутов определяет номера версии.

Синтаксис

Следование синтаксис фикчированных значений:

где #FIXED определенный атрибут со значением.

Пример

Следование простой пример объявления атрибута с ФИКЧИРОВАННЫМ значением:

]>

В этом примере мы использовали #FIXED ключевого слова где оно показывает что значение «tutorialspoint» единственное значение для имени атрибута элемента. Если мы пробуем изменить атрибут со значением после этого, то он дает ошибку.

Следование инвалидный DTD:

]>

we are a free online teaching faculty

НЕОБХОДИМЫЕ значения

Когда вы хотите определите что атрибут необходим, используйте ключевое слово #REQUIRED.

Синтаксис

Следование синтаксис #REQUIRED:

где #REQUIRED определенный тип атрибута.

Пример

Следование простой пример объявления атрибута DTD с ключевым словом #REQUIRED:

]>

Tanmay Patil

В этом примере мы использовали ключевое слово #REQUIRED для того чтобы определить что удостоверение личности атрибута необходимо предусмотреть для имени элемент- имени

ПОДРАЗУМЕВАЕМЫЕ значения

Объявляя атрибуты вы должны всегда определять объявление значения. Если атрибут вы объявляете не имеет никакое автоматически принимаемое значение, то не имеет никакое фикчированное значение, и не требует, тогда вы должны объявить что атрибут как подразумевали . #IMPLIED ключевого слова использовано для того чтобы определить атрибут как подразумевали .

Синтаксис

Следование синтаксис #IMPLIED:

где #IMPLIED определенный тип атрибута.

Пример

Следование простой пример #IMPLIED

]>

В этом примере мы использовали #IMPLIED ключевого слова по мере того как мы не хотим определить любые атрибуты, котор нужно включить в имени элемента. Оно опционный.