Инструменты пользователя

Инструменты сайта


xml_dtd

Назад

DTD- Используется для проверки написанного XML документа на корректность и валидность данных.

Подключение DTD внутри документа:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE pricelist SYSTEM "mydoc.dtd">
<pricelist>
  <book id="1">
    <title>XML и IE5</title>
    <author>Алекс Гомер</author>
    <price currency="RUR" >200</price>
  </book>
</pricelist>

Сам DTD:

<!ELEMENT precelist (book+)>
<!ELEMENT book (title,author,price,exists)>
<!ELEMENT title (#PCDATA)>
<!ATTLIST title id #IMPLIED>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST title currency #IMPLIED>

Основные декларации разметки

Конструкция DTDЗначение
ELEMENTОпределение элементов
ATTLISTОпределении атрибутов
ENTITYОпределение сущности

Модификаторы

? - элемент или список может встретиться нуль или один раз;

* - элемент или список может встретиться нуль или несколько раз;

+ - элемент или список может встретиться один или несколько раз.

Объявления элементов

  • Пустой элемент - может иметь атрибуты, но не содержит текст или порожденные элементы. Объявляется следующим образом: после имени элемента указывается ключевое слово EMPTY.
<!ELEMENT element_name EMPTY>
  • Элемент содержит только порожденные элементы, но не текст. Объявляется следующим образом: после имени элемента в скобках через запятую перечисляются все вложенные элементы. Причем вложенные элементы должны следовать в XML документе в том порядке, в каком они перечислены в объявлении.
<!ELEMENT element_name ( elem_1,elem_2)>
  • Элемент содержит не только порожденные элементы, но и текст. Объявляется следующим образом: после имени элемента в скобках указывается ключевое слово #PCDATA, после которого через запятую, как и в предыдущем случае, перечисляются все вложенные элементы (если они имеются).
<!ELEMENT element_name (#PCDATA, elem_1,elem_2)>
<!ELEMENT element_name (#PCDATA)>
  • Элемент, открытый для любого содержания. Объявляется следующим образом: после имени элемента указывается ключевое слово ANY
<!ELEMENT element_name  ANY>

Объявления атрибутов

  • Должен присутствовать атрибут
<!ATTLIST element_name attr_name #REQUIRED>
  • Необязательное присутствие атрибута
<!ATTLIST element_name attr_name #IMPLIED>

Объявления сущностей

<!ENTITY today "october 15, 2007">

Сущность вызывается так &today в коде xml элементов.