DTD Document Type Definition суббота, 7 мая 2016 г. Требования к приложениям XML описывать структуру документа, желательно строго и формально передавать информацию о структуре документа сторонним лицам и приложениям проверять наличие необходимых элементов отслеживать появление неразрешимых элементов в документе отслеживать содержание элементов и атрибутов контролировать древовидность структуры документа если у атрибута значение не указано, подставлять значение по умолчанию Действительные документы XML Действительным (valid) документом XML называется формально корректный документ, который отвечает правилам синтаксиса и структуры. Действительный документы также часто называют допустимыми. Нужны технологии описания синтаксиса и структуры документов XML DTD Document Type Definition (определение типа документа) – специальный язык, позволяющий описывать структуру и синтаксис XMLдокументов и накладывать простейшие ограничения DTD в документе XML <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE root [ <!-- Определения DTD --> ]> <root> <!-- XML-содержимое --> </root> Содержимое DTD Объявления типов элементов Объявления списков атрибутов Объявления примитивов Объявления нотаций Инструкции по обработке Ссылки на примитивы Объявления типов элементов <!ELEMENT имя_элемента описание_содержимого> Описание содержимого: Пустое содержимое (EMPTY) Любое содержимое (ANY) Дочернее содержимое Смешанное содержимое Задание содержимого элемента <!ELEMENT root (book)> Множественные дочерние элементы: a+ Одно или большее количество вхождений элемента а a* Нуль или большее количество вхождений элемента а a? Нуль или одно вхождение элемента а a,b После элемента а следует элемент b a|b Элементы a или b, но не оба сразу (expression) Выражение <!ELEMENT root (book)*> Задание содержимого элемента <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE root [ <!ELEMENT root (book)*> <!ELEMENT book (title, (author|authors))> <!ELEMENT authors (author)+> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> ]> <root> <!– XML-содержимое --> </root> Объявления атрибутов <!ATTLIST имя_элемента определения_атрбутов> Определение атрибута: имя_атрибута тип_атрибута объявление_по_умолчанию Типы атрибутов Строковый (ключевое слово CDATA) Маркерный Перечислимый <!ATTLIST book year CDATA #REQUIRED> Маркерный тип ID IDREF IDREFS ENTITY ENTITIES NMTOKEN NMTOKENS Перечислимые типы <!ATTLIST book genre (computer, biography, fiction) computer> Значения по умолчанию #REQUIRED #IMPLIED AttValue #FIXED AttValue Внешние DTD <!DOCTYPE root [DTD]> <!DOCTYPE root SYSTEM URL> <!DOCTYPE root SYSTEM URL [DTD]> <!DOCTYPE root PUBLIC FPI URL> <!DOCTYPE root PUBLIC FPI URL [DTD]> FPI – Formal Public Identifier