Document Type Definition;
Зміст
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">