Document Type Definition
Визначення Типу Документу (англ. Document Type Definition, DTD ) включає в себе два поняття:
- Термін, що застосовується для опису схеми документу чи його частини мовою схем DTD.
- Мова схем DTD (DTD schema language) — штучна мова, яку використовують для запису фактичних синтаксичних правил метамов розмітки тексту SGML та XML. З моменту її впровадження інші мови схем для специфікацій, такі як XML Schema та RELAX NG, випускаються з додатковою функціональністю.
Через певні відмінності між XML та SGML, застосування DTD також має певні особливості в залежності від мови цільового документа.
Зміст |
Опис схеми документу [ред.]
DTD описує схему документу для певної мови розмітки через набір оголошень (об'єктів-параметрів, елементів та атрибутів), що описують його клас (чи тип) з точки зору синтаксичних обмежень цього документу. Також DTD може оголошувати конструкції, які не завжди необхідні для визначення структури документу, але, натомість, можуть впливати на інтерпретацію певних документів.
Оголошення об'єктів-параметрів [ред.]
Оголошення об'єкта-параметра визначає макрос певного типу, на який можна посилатися і який може бути розгорнутий де-небудь в DTD. Ці макроси можуть не з'являтися в самому документі, а бути лише в DTD. Якщо на об'єкт-параметр посилаються за ім'ям з DTD, то він розгортається в строку, в якій вказано вміст цього об'єкта. Приклади:
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
Об’єкт-параметр fontstyle містить в собі групу тегів TT | I | B | BIG | SMALL.
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
Об’єкт-параметр inline містить в собі текстові дані та ще три об’єкта-параметра phrase, special та formctrl.
Оголошення елементів [ред.]
Оголошення елементів утворюють перелік дозволених назв елементів в документі, а також зазначає інформацію щодо тегів (чи є вони обов’язковими) та моделі вмісту для кожного елемента.
Приклади:
<!ELEMENT DL - - (DT|DD)+>
Елемент DL має містити один або більше елементів DT чи DD в будь-якому порядку.
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>
Елемент FORM має містити в собі один або більше елементів з об’єкта-параметра block чи елементи SCRIPT в будь-якому порядку, проте виключена можливість містити ще один елемент FORM.
Оголошення атрибутів [ред.]
Оголошення атрибутів являє собою дозволений набір атрибутів для кожного визначеного елемента, а також зазначає інформацію щодо типу значень атрибутів (чи одразу вказаний список можливих значень) та інформацію щодо потреби встановлювати значення атрибутів за замовчанням. Наприклад:
<!ATTLIST MAP name CDATA #IMPLIED >
В цьому прикладі визначений атрибут name для елемента MAP. Він не є необхідним.
Зв'язок документа з певним DTD [ред.]
Щоб пов'язати документ з певним DTD, треба на початку тексту документу зазначити елемент Оголошення Типу Документу.
В залежності від місцезнаходження DTD, Оголошення Типу Документу можуть бути двох видів:
- Внутрішня підмножина DTD
Набір оголошень DTD міститься в самому тексті документу. Наприклад:
<!DOCTYPE foo [ <!ENTITY greeting "helloworld"> ]> <!DOCTYPE bar [ <!ENTITY greeting "helloworld"> ]>
- Зовнішня підмножина DTD
Набір оголошень DTD міститься в окремому текстовому файлі з розширенням .dtd В такому разі посилання на файл можна робити через публічний ідентифікатор та (або) через системний ідентифікатор. Наприклад:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
