logo search
metoda / Metod_sam_IT_ta_tehnol_Internet_2010_ukr

4.4 Dtd (Document Type Definition)

4.4.1 Вступ

DTD – це визначення типу документа, що задає структуру XML-документа (які елементи, атрибути, тощо можуть бути присутніми в документі). XML-документ не обов'язково повинен мати DTD. Однак DTD рекомендується використовувати, щоб забезпечити узгодженість при електронному обміні XML-документами. DTD задає структуру XML-документа й складається з використанням розширеної форми Бекуса-Наура (EBNF), а не синтаксису XML.

4.4.2 Робота з DTD

Наступний XML-документ note.xml необхідно формалізувати за допомогою DTD-опису:

<?xml version = “1.0” ?>

<note>

<to>Tom</to>

<from>…</from>

<heading >…</heading>

<body>…</body>

</note>

Створюємо файл myDTD.dtd:

<!ELEMENT note (to, from, heading, body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

Підключаємо DTD-опис до XML-документа note.xml:

<?xml version ="1.0"?>

<DOCTYPE note SYSTEM "myDTD.dtd">

<note>

…………..

</note>

4.4.3 Оголошення елементів

Оголошення порожніх елементів <br/>:

<!ELEMENT br EMPTY>

Елемент, що включає в себе текстові дані:

<!ELEMENT from (#PCDATA)>

Входження не менш одного разу:

<!ELEMENT note (from+,...)>

Елемент може входити або не входити:

<!ELEMENT note (from?,...)>

Входження будь-яку кількість:

<!ELEMENT note (from*,...)>

4.4.4 Оголошення атрибутів

Оголошення атрибутів задає список атрибутів для елемента за допомогою оголошення списку атрибутів ATTLIST. Елемент може мати будь-яку кількість атрибутів. Наприклад, рядками

<!ELEMENT x EMPTY>

<!ATTLIST x y CDATA #REQUIRED>

оголошується порожній (EMPTY) елемент х. Оголошення атрибута вказує, що у є атрибутом х. Ключове слово CDATA вказує, що у може містити будь-які символи за винятком символів <, >, &, ’ та ". Ключове слово CDATA в оголошенні атрибута має інше значення, ніж розділ CDATA в XML-документі. У розділі CDATA припустимі будь-які символи, за винятком кінцевого тега ]]>. Ключове слово #REQUIRED вказує, що атрибут є обов'язковим для елемента х.

Ключове слово #IMPLIED вказує, що якщо атрибут в елементі відсутній, то програма, що використовує XML-документ, може використовувати будь-яке значення (якщо воно є) за своїм вибором.

Оголошення атрибута зі значенням за замовчуванням #FIXED вказує, що значення атрибута є константою та не може мати інше значення в XML-документі.

Наприклад, <!ATTLIST address postalindex #FIXED “61166”>

вказує, що значення 61166 є єдиним, яке може приймати атрибут postalindex. XML-документ не є припустимим, якщо атрибут postalindex містить значення, відмінне від 61166.