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

Див. також[ред.ред. код]

Ресурси інтернету[ред.ред. код]