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">