Dtd файл что это
DTD (англ. Document Type Definition определение типа документа) — включает в себя два понятия:
- Термин, который используется для описания схемы документа или его части языком схем DTD.
- Язык схем DTD (DTD schema language) — искусственный язык, который используется для записи фактических синтаксических правил метаязыков разметки текста SGML и XML. С момента его внедрения другие языки схем для спецификаций, такие как XML Schema и RELAX NG, выпускаются с дополнительной функциональностью.
Из-за определённых отличий между XML и SGML, применение DTD также имеет некоторые особенности в зависимости от целевого документа
Сейчас идёт отказ от использования DTD в XML-технологии по ряду причин:
- Используется отличный от XML синтаксис.
- Отсутствует типизация узлов.
- Отсутствует поддержка пространств имён.
На смену DTD пришёл стандарт консорциума W3C XML Schema.
Другие программы, связанные с расширением DTD
-
Файл чертежа Design Tools от TechSoft UK
Файл DTD – рисунок, который создан в программе 2D-проектирования, используемой для создания двумерных конструкций; может содержать линии, формы, цвета и другие элементы чертежа; может быть изменен без потери качества изображения, используется для различных типов рисунков, в том числе зданий, транспортных средств, машин и логотипы.
DTD файлы могут быть экспортированы в различные форматы файлов, включая .DXF, .EMF, .WMF, .BMP, .GIF, .JPG, .PNG, .TIF, и .PLT файлов. Относится к разделу CAD, 3D-графика.
Популярность:
HEX код: 07 64 74 32 64 64 74 64
ASCII код: dt2ddtd
-
ArcView UNIX Hyperhelp файл от Esri
Файл ArcView для версии UNIX. Относится к разделу Другие файлы.
Популярность:
-
Файл настроек ICQ 6 от ICQ LLC
Текстовый файл содержит настройки/конфигурацию для ICQ 6. Относится к разделу Конфигурационные файлы.
Популярность:
-
Файл Orgadata LogiKal от Orgadata AG
Расширение файла DTD, связанно с приложением Orgadata LogiKal. Относится к разделу Другие файлы.
Популярность:
В XML- документах DTD определяет набор действительных элементов, идентифицирует элементы, которые могут находиться в других элементах, и определяет действительные атрибуты для каждого из них. Синтаксис DTD весьма своеобразен и от автора-разработчика требуются дополнительные усилия при создании таких документов(сложность DTD является одной из причин того, что использование SGML, требующего определение DTD для любого документа, не получило столь широкого распространения как, например, HTML). Как уже отмечалось, в XML использовать DTD не обязательно - документы, созданные без этих правил, будут правильно обрабатываться программой-анализатором, если они удовлетворяют основным требованиям синтаксиса XML. Однако контроль за типами элементов и корректностью отношений между ними в этом случае будет полностью возлагаться на автора документа. До тех пор, пока грамматика нашего нового языка не описана, его сможем использовать только мы, и для этого мы будем вынуждены применять специально разработанное программное обеспечение, а не универсальные программы-анализаторы..
В DTD для XML используются следующие типы правил: правила для элементов и их атрибутов, описания категорий(макроопределений), описание форматов бинарных данных. Все они описывают основные конструкции языка - элементы, атрибуты, символьные константы внешние файлы бинарных данных.
Для того, чтобы использовать DTD в нашем документе, мы можем или описать его во внешнем файле и при описании DTD просто указать ссылку на этот файл или же непосредственно внутри самого документа выделить область, в которой определить нужные правила. В первом случае в документе указывается имя файла, содержащего DTD- описания:
Внутри же документа DTD- декларации включаются следующим образом:
В том случае, если используются одновременно внутренние и внешние описания, то программой-анализатором будут сначала рассматриваться внутренние, т.е. их приоритет выше. При проверке документа XML- процессор в первую очередь ищет DTD внутри документа. Если правила внутри документа не определены и не задан атрибут standalone ="yes" , то программа загрузит указанный внешний файл и правила, находящиеся в нем, будут считаны оттуда. Если же атрибут standalone имеет значение "yes", то использование внешних DTD описаний будет запрещено.
См. также
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
Wikimedia Foundation . 2010 .
Пример
Пример очень простого XML DTD, описывающего список людей:
Начиная с первой строки:
- Элемент содержит любое число элементов . Знак означает что возможно 0, 1 или более элементов внутри элемента .
- Элемент содержит элементы , , и . Знак означает что элемент необязателен. Элемент не содержит , что означает что элемент обязательно должен содержать элемент .
- Элемент содержит данные.
- Элемент содержит данные.
- Элемент содержит данные.
- Элемент содержит данные.
Пример XML-документа, использующего этот DTD:
Смотреть что такое "DTD" в других словарях:
DTD — [Abk. für Document Type Definition, dt. »Dokumenttypdefinition«], die in einer ASCII Datei (ASCII) abgelegte Beschreibung der Struktur von Dokumenten, welche alle vom selben Typ sind. Eine DTD wird nach den Regeln der international anerkannten… … Universal-Lexikon
DTD — may stand for: Contents 1 Media 2 Music 3 Sports 4 Technologies 4.1 Computing … Wikipedia
DTD — steht für: Inhaltsverzeichnis 1 Medien 2 Music 3 Technologien 3.1 Computer 3.1.1 Spiele … Deutsch Wikipedia
Dtd — steht für: Darwin Digital Television, eine australische Fernsehstation Delta Tau Delta, eine US amerikanische Studentenorganisation Document Type Definition, siehe Dokumenttypdefinition … Deutsch Wikipedia
DTD — (dē tē dēʹ) n. A set of rules for marking up a document in SGML. [document + type + definition.] * * * … Universalium
DTD — (document type definition) specification written in the Standard Generalized Markup Language and containing information about the format of a particular document (Computers) … English contemporary dictionary
DTD — Document Type Definition La Document Type Definition (DTD), ou Définition de Type de Document, est un document permettant de décrire un modèle de document SGML ou XML. Une DTD indique les noms des éléments pouvant apparaître et leur contenu, c… … Wikipédia en Français
DTD — dokumento tipo apibrėžtis statusas T sritis informatika apibrėžtis ↑SGML arba ↑XML dokumento elementų, struktūros ir ženklinimo formalioji apibrėžtis. Pavyzdžiui, DTD apibrėžtyje naudojant specialią sintaksę gali būti aprašytos XML dokumente… … Enciklopedinis kompiuterijos žodynas
DTD — Siglas de Document Type Definition. El DTD es una definición en un documento SGML ó XML que especifica restricciones en la estructura del mismo. El DTD puede ser incluido dentro del archivo del documento, pero normalmente se almacena en un… … Enciclopedia Universal
DTD — comp. abbr. Data Transfer Done nucl. abbr. Dimethyl Tin Diffluoride abbr. Document Type Definition (SGML, XML. HTML, DTD) comp. abbr. Document Type Definition … United dictionary of abbreviations and acronyms
В Windows: Altova XMLSpy, Progress Stylus Studio, SyncRO Soft oXygen XML Editor, Liquid Technologies Liquid XML Studio, JAPISoft EditiX, Microsoft Visual Studio 2010, Microsoft Notepad, Adobe ExtendScript, Adobe Dreamweaver, NotePad++ text editor, Microsoft Internet Explorer, Nvu, любой другой текстовый редактор
В Mac OS: Altova XMLSpy, MacroMates TextMate, SyncRO Soft oXygen XML Editor, Apple TextEdit, любой другой текстовый редактор
В Linux: Altova XMLSpy, SyncRO Soft oXygen XML Editor, gedit
Типизация данных
Довольно часто при создании XML- элемента разработчику требуется определить, данные какого типа могут использоваться в качестве его содержимого. Т.е. если мы определяем элемент
Если в качестве программы на стороне клиента используется верифицирующий XML-процессор, то информацию о типе можно передавать при помощи специально созданного для этого атрибута элемента, имеющего соответствующее DTD- определение. В процессе разбора программа-анализатор передаст значение этого атрибута клиентскому приложению, которое сможет использовать эту информацию должным образом. Например, чтобы указать, что содержимое элемента должно быть длинным целым, можно использовать следующее DTD- определение:
Задав атрибуту значение по умолчанию LONG и определив его как FIXED, мы позволили тем самым программе-клиенту получить необходимую информацию о типе содержимого данного элемента, и теперь она может самостоятельно определить соответствие типа этого содержимого указанному в DTD- определении .
Вот пример XML- документа, в котором определяются и используются несколько элементов с различными типами данных:
Как видно из примера, механизм создания элементов документа при этом нисколько не изменился. Все необходимая для проверки типов данных информация заложена в определения элементов внутри блока DTD.
В заключении хотелось бы отметить, что DTD предоставляет нам весьма удобный механизм осуществления контроля за содержимым документа. На сегодняшний день, практически все программы просмотра документов Интернет используют DTD-правила. Однако это далеко не единственный способ проверки корректности документа. В настоящий момент в W3 консорциуме находится на рассмотрении новый стандарт языка описания структуры документов, называемый схемами данных. Следующий раздел посвящен работе с ними.
Элементы XML могут быть определены как строительные блоки документа XML. Элементы могут вести себя как контейнер для хранения текста, элементов, атрибутов, объектов мультимедиа или их комбинации.
Элемент DTD объявляется с объявлением ELEMENT. Когда файл XML проверяется DTD, анализатор сначала проверяет корневой элемент, а затем проверяются дочерние элементы.
правила
Мы должны следовать определенным правилам, если есть более одного элемента контента –
Последовательности – часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.
Объявление указывает, что у элемента должно быть ровно три дочерних элемента – , и – и что они должны появляться в этом порядке. Например –
Последовательности – часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.
Объявление указывает, что у элемента должно быть ровно три дочерних элемента – , и – и что они должны появляться в этом порядке. Например –
Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например –
Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например –
Что такое DTD в XML и для чего он нужен
DTD – это язык описания, который позволяет нам определить, какие элементы должны быть в XML-документе, сколько раз они должны повторяться, какие атрибуты должны быть у этих элементов, какие атрибуты обязательные и какие не обязательные, а также какие сущности могут использоваться в документе. Подробнее про конструкции XML читайте в статье «Элементы, теги и атрибуты XML».
Если говорить кратко, то DTD в XML используется для проверки грамматики документа и соответствия его стандарту (тому, который придумал разработчик или вы сами). Это позволяет парсеру (обработчику) на этапе обработки определить, соответствует ли документ нашим требованиям. То есть, проходит валидация XML-документа.
Необходимость проверки грамматики XML-документов заключается в следующем:
- XML-документ может быть предназначен не для вашей системы.
- XML-документ может содержать неправильные данные.
- XML-документ может содержать ошибки в структуре (Разметка и структура XML документов).
Итак, мы разобрались с тем, что такое XML DTD и зачем он нужен. Теперь давайте кратко рассмотрим недостатки DTD, после чего перейдем непосредственно к рассмотрению процесса создания DTD файлов для валидации XML-документов.
Список операторов и синтаксических правил
Ниже в таблице приведен список операторов и синтаксических правил, которые можно применять при определении дочерних элементов.
Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента.
Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента.
Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента.
Последовательность дочерних элементов name , company , которая должна встречаться в том же порядке внутри адреса имени элемента.
Он позволяет вам выбрать любой из дочерних элементов, т. Е. Имя или компанию , которые должны находиться внутри адреса имени элемента.
Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента.
Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента.
Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента.
Последовательность дочерних элементов name , company , которая должна встречаться в том же порядке внутри адреса имени элемента.
Он позволяет вам выбрать любой из дочерних элементов, т. Е. Имя или компанию , которые должны находиться внутри адреса имени элемента.
Содержание смешанного элемента
Ниже приведен общий синтаксис для содержимого смешанных элементов:
ELEMENT – тег объявления элемента.
elementname – это имя элемента.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы
ELEMENT – тег объявления элемента.
elementname – это имя элемента.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы
Ниже приведен простой пример, демонстрирующий объявление смешанного элемента содержимого в DTD.
Недостатки XML DTD
- Отличный от XML синтаксис языка. Это вызывает множество проблем, таких как, например, проблемы с кодировкой или невозможность отслеживать ошибки.
- Нет проверки типов данных. В DTD есть только один тип – строка.
- В DTD нет пространств имен. Нельзя поставить в соответствие документу два и более DTD описаний.
Это был краткий список недостатков DTD, которые с успехом исправлены в XML схемах, о которых мы поговорим в следующих статьях.
Объявление элементов, атрибутов и сущностей в DTD. Модификаторы «*», «?», «+»
Для объявления элементов, атрибутов и сущностей в DTD используются специальные декларации и модификаторы. Чтобы подробно во всем разобраться, давайте для начала рассмотрим теоритическую информацию, а затем во второй части статьи перейдем к практическим примерам.
Определение элемента XML и последовательности элементов XML
Элемент book содержит по одному элементу title, author, price и description.
Альтернативы элементов
Элемент pricelist содержит элементы title, price и один элемент из трех на выбор – author, company либо sample.
Пустые элементы
Элемент none должен быть пустым.
Объявление атрибута
Определение сущностей
Если встретится сущность «&myname;», то вместо нее автоматически подставится «Дмитрий Денисов».
Модификаторы (объясняют повторения элементов)
* — ноль или много.
? – ноль или один.
+ — один или много.
Элемент books может содержать один или более элементов book.
Теперь давайте рассмотрим, как это все выглядит на более практических примерах.
Создание DTD-файла для валидации XML-документа на примере прайс-листа книг
Пусть у нас будет все тот же прайс-лист книг, который мы используем для примеров практически в каждой статье про XML. Сам XML-документ будет выглядеть примерно следующим образом.
Конечно, вышеприведенный пример не является пределом мечтаний, но для примера вполне сойдет. Как видно с примера, у нас есть корневой элемент pricelist, который содержит вложенные элементы book. Внутри элементов book находятся элементы title, author, price и возможно description, которые могут содержать какие-то текстовые данные.
Для валидации данного прайс-листа мы можем использовать DTD-документ следующего содержания.
Теперь разберем все более подробно.
Подключение DTD для валидации XML-документов
Декларативный способ
Данный способ очень редко используется, так как его суть состоит в создании самодостаточных документов. То есть, документ будет сразу содержать и DTD и XML. Для добавления DTD в XML используется следующая конструкция.
где вместо DOCUMENT указываем корневой элемент XML-документа.
Для наглядности рассмотрим пример готового самодостаточного документа с декларативным способом включения DTD.
Внешнее определение DTD — подключение DTD-документа
Суть данного метода состоит в том, чтобы подключить к XML-документу файл DTD при помощи следующей конструкции.
где DOCUMENT – указываем корневой элемент XML-документа.
file.dtd – ссылка на файл DTD.
Для наглядности рассмотрим следующий пример.
На этом данная статья подошла к концу. Все основные моменты при работе с XML DTD мы рассмотрели и, надеюсь, у меня получилось понятно все объяснить. Если вы не хотите пропустить выпуска других уроков по XML и XSLT, рекомендую подписаться на новостную рассылку, воспользовавшись формой ниже.
Описание расширения DTD
Популярность:
Расширение DTD (англ. Document Type Definition определение типа документа) – это текстовый файл, который определяет элементы и атрибуты, используемые в XML, SGML, HTML или документе XHTML, может также определить порядок и вложенность элементов и их атрибутов. Документ DTD описан специальным языком DTD (DTD schema language). DTD может быть описан как внутри документа, так и вынесен в отдельный файл, по аналогии с каскадными таблицами стилей CSS. DTD файлы используются для проверки, является ли файл действительным документом. Например, до разбора XML-файла, программа может сначала проверить объявления разметки с помощью файла DTD, чтобы убедиться, что XML может быть проанализирован должным образом. Т.к. форматы XML и SGML различны, то и соответствующие файлы DTD будут иметь некоторые особенности в зависимости от документа.
– это элемент документа, который указывает, что элементы to, from, heading, body должны обязательно содержатся внутри корневого элемента note.
Mime тип: application/xml,text/xml
Объявление элементов
Объявления элементов образовывают перечень разрешенных названий элементов в документе, а также определяют информацию относительно тегов (являются ли они обязательными) и модели содержимого для каждого элемента.
Различные ключевые слова и символы определяют содержимое элемента:
- EMPTY — пустое содержимое
- ANY — любое содержимое
- , — указывает порядок
- | — разделение альтернатив
- () — группировка
- * — любое количество элементов (ноль и более)
- + — по крайней мере один элемент (один и более)
- ? — необязательное наличие элемента (ноль или один)
- Если нет *, + или ? — элемент должен быть только один
Элемент DL должен содержать один и более элементов DT или DD в произвольном порядке.
Элемент FORM должен содержать в себе один или более элементов с объектом-параметром block или элементы SCRIPT в произвольном порядке, однако исключена возможность содержать ещё один элемент FORM .
Пустой контент
Это особый случай объявления элемента. Это объявление элемента не содержит никакого содержимого. Они объявлены с ключевым словом EMPTY .
Ниже приводится синтаксис объявления пустого элемента –
В приведенном выше синтаксисе –
ELEMENT – объявление элемента категории EMPTY
elementname – имя пустого элемента.
ELEMENT – объявление элемента категории EMPTY
elementname – имя пустого элемента.
Ниже приведен простой пример, демонстрирующий объявление пустого элемента –
В этом примере адрес объявлен как пустой элемент. Разметка для элемента address будет выглядеть как .
Определение компонентов(макроопределений)
Компонент (entity) представляет собой определения, содержимое которых может быть повторно использовано в документе . В других языках программирования подобные элементы называются макроопределениями. Создаются DTD- компоненты при помощи инструкции !ENTITY:
Программа-анализатор, просматривая в первую очередь содержимое области DTD- определений, обработает эту инструкцию и при дальнейшем разборе документа будет использовать содержимое DTD- компонента в том месте, где будет встречаться его название. Т.е. теперь в документе мы можем использовать выражение &hello; , которое будет заменено на строчку "Мы рады приветствовать Вас"
В общем случае, внутри DTD можно задать три типа макроопределений:
Внутренние макроопределения - предназначены для определения строковой константы, с их помощью можно организовывать ссылки на часто изменяемую информацию, делая документ более читабельным. Внутренние компоненты включаются в документ при помощи амперсанта &
В XML существует пять предустановленных внутренних символьных констант:
- < - символ "
- > - символ ">"
- & - символ "&"
- ' - символ апострофа "'"
- " - символ двойной кавычки """
Внешние макроопределения - указывают на содержимое внешнего файла, причем этим содержимым могут быть как текстовые, так и двоичные данные. В первом случае в месте использования макроса будут вставлены текстовые строки, во втором - бинарные данные, которые анализатором не рассматриваются и используются внешними программами
Макроопределения правил - макроопределения параметров могут использоваться только внутри области DTD и обозначаются специальным символом %, вставляемым перед названием макроса. При этом содержимое компонента будет помещено непосредственно в текст DTD- правила
Например, для следующего фрагмента документа:
можно использовать более короткую форму записи:
Макроопределения часто используются для описания параметров в правилах атрибутов. В этом случае появляется возможность использовать одинаковые определения атрибутов для различных элементов:
Элемент Содержимое
В объявлении элемента с содержимым элемента содержимое будет допустимым элементом в скобках. Мы также можем включить более одного элемента.
Ниже приведен синтаксис объявления элемента с содержимым элемента:
ELEMENT – тег объявления элемента
elementname – это имя элемента.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
ELEMENT – тег объявления элемента
elementname – это имя элемента.
child1, child2 .. являются элементами, и каждый элемент должен иметь свое собственное определение в DTD.
Ниже приведен простой пример объявления элемента с содержимым элемента –
В приведенном выше примере address является родительским элементом, а name , company и phone_no являются его дочерними элементами.
ЛЮБОЙ элемент контента
Вы можете объявить элемент, используя ключевое слово ANY в содержимом. Это чаще всего упоминается как элемент смешанной категории. ЛЮБОЙ полезно, когда вам еще предстоит определить допустимое содержимое элемента.
Ниже приведен синтаксис объявления элементов с ЛЮБЫМ контентом:
Здесь ключевое слово ANY указывает, что текст (PCDATA) и / или любые элементы, объявленные в DTD, могут использоваться в содержимом элемента . Их можно использовать в любом порядке любое количество раз. Однако ключевое слово ANY не позволяет включать элементы, которые не объявлены в DTD.
Ниже приведен простой пример, демонстрирующий объявление элемента с ЛЮБОЙ информацией.
Это очередная статья в цикле «Основы XML» и в ней мы рассмотрим основы описания структуры XML данных при помощи DTD. Это довольно таки старый способ описания структуры XML-документов, но он до сих пор используется, поэтому мы его все же рассмотрим.
Также хочу отметить, что это отличный способ показать, как в XML идет проверка содержимого документа, его грамматики и т.д. Более новый и совершенный способ описания структуры XML-документов с использованием технологии XML Schema мы рассмотрим в следующей статье, ну а пока перейдем непосредственно к изучению DTD XML.
В рамках данной статьи мы рассмотрим сразу несколько важных моментов. Это что такое XML DTD и для чего он нужен, поговорим о недостатках DTD, а также научимся самостоятельно составлять собственный DTD для валидации XML-документов. Все это, как обычно, будет изложено пошагово, максимально кратко и понятно с целью экономии вашего времени.
Полезное
Связь документа с определённым DTD
Чтобы связать документ с определённым DTD, необходимо в начале текста документа указать элемент Объявление Типа Документа.
В зависимости от места расположения DTD, Объявление Типа Документа может быть двух видов:
Набор объявлений DTD содержится в самом тексте документа. Например:
Набор объявлений DTD располагается в отдельном текстовом файле с расширением .dtd В этом случае ссылку на файл можно сделать через публичный идентификатор и (или) через системный идентификатор. Например:
Типы содержимого элемента
Содержимое объявления элементов в DTD можно классифицировать следующим образом:
Определение элемента
Элемент в DTD определяется с помощью дескриптора !ELEMENT, в котором указывается название элемента и структура его содержимого.
Например, для элемента можно определить следующее правило:
Ключевое слово ELEMENT указывает, что данной инструкцией будет описываться элемент XML. Внутри этой инструкции задается название элемента(flower) и тип его содержимого.
В определении элемента мы указываем сначала название элемента(flower), а затем его модель содержимого - определяем, какие другие элементы или типы данных могут встречаться внутри него. В данном случае содержимое элемента flower будет определяться при помощи специального маркера PCDATA( что означает parseable character data - любая информация, с которой может работать программа-анализатор). Существует еще две инструкции, определяющие тип содержимого: EMPTY,ANY. Первая указывает на то, что элемент должен быть пустым(например, ), вторая - на то, что содержимое элемента специально не описывается.
Последовательность дочерних для текущего элемента объектов задается в виде списка разделенных запятыми названий элементов. При этом для того, чтобы указать количество повторений включений этих элементов могут использоваться символы +,*, ? :
В этом примере указывается, что внутри элемента должны быть определены элементы title, author и table-of-contents, причем элемент title является обязательным элементом и может встречаться лишь однажды, элемент author может встречаться несколько раз, а элемент table-of-contents является опциональным, т.е. может отсутствовать. В том случае, если существует несколько возможных вариантов содержимого определяемого элемента, их следует разделять при помощи символа "|" :
Символ * в этом примере указывает на то, что определяемая последовательность внутренних элементов может быть повторена несколько раз или же совсем не использоваться.
Если в определении элемента указывается "смешанное" содержимое, т.е. текстовые данные или набор элементов, то необходимо сначала указать PCDATA, а затем разделенный символом "|" список элементов.
Пример корректного XML- документа:
Синтаксис
Все объявления элементов DTD имеют эту общую форму –
Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.
elementname – это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.
content определяет, какой контент (если есть) может идти внутри элемента.
Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.
elementname – это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.
content определяет, какой контент (если есть) может идти внутри элемента.
Содержание
Определение атрибутов
С каждым элементом DTD-документа можно сопоставить список атрибутов. Для этого используется директива !ATTLIST, в которой указываются имя элемента, с которым может быть сопоставлен список атрибутов и параметры каждого атрибута: его имя, тип и свойства по умолчанию.
В этом примере определен атрибут name для элемента MAP . Он является обязательным.
Существуют такие типы атрибутов:
- CDATA (Character set of data) — значением атрибута могут быть любые символьные данные
- ID — значением атрибута должен быть уникальный идентификатор элемента
- IDREF — значением элемента является ссылка на элемент по его ID
- IDREFS — тоже что и IDREF, но с возможностью ссылок не по одному идентификатору, а по нескольким
- NMTOKEN — значением атрибута может быть последовательность символов, в чём-то схожая с именем (отсюда и названием — name token). Это строка, которая содержит любую комбинацию тех символов, которые разрешено использовать для имен XML.
- NMTOKENS — значением атрибута является список значений
- ENTITY — значение используется для ссылки на внешнюю сущность.
- ENTITIES — позволяет задать список внешних сущностей, разделённых пробелами.
- NOTATION — значением атрибута может быть одна из ранее определённых нотаций
- NOTATIONS — позволяет задать список нотаций.
- Listings и NOTATION-listings
- ENUMERATION — задаёт список возможных альтернатив значений.
Существуют такие свойства по умолчанию:
- IMPLIED — значение атрибута указывать не обязательно;
- REQUIRED — значение атрибута обязательно должно быть указано;
- FIXED — значение этого атрибута задано как константа в DTD и в документе не может быть изменено;
- некоторое конкретное значение, которое используется по умолчанию.
Описание схемы документа
DTD описывает схему документа для конкретного языка разметки посредством набора объявлений (объектов-параметров, элементов и атрибутов), которые описывают его класс (или тип) с точки зрения синтаксических ограничений этого документа. Также DTD может объявлять конструкции, которые всегда необходимы для определения структуры документа, но, зато, могут влиять на интерпретацию определённых документов.
Объявление объектов-параметров
Объявление объекта-параметра определяет макрос определённого типа, на который можно ссылаться и который может быть развернут где-нибудь в DTD. Эти макросы могут не появляться в самом документе, а быть только в DTD. Если на объект-параметр ссылаются по имени их DTD, то он разворачивается в строку, в которой указано содержимое этого объекта.
Объект-параметр fontstyle содержит в себе группу тегов TT | I | B | BIG | SMALL .
Объект-параметр inline содержит в себе текстовые данные и ещё четыре объекта-параметра fontstyle , phrase , special и formctrl .
Определение атрибутов
Списки атрибутов элемента определяются с помощью ключевого слова !ATTLIST. Внутри него задаются названия атрибутов, типы их значений и дополнительные параметры. Например, для элемента могут быть определены следующие атрибуты:
В данном примере для элемента article определяются три атрибута: id, about и type, которые имеют типы ID(идентификатор), CDATA и список возможных значений соответственно. Всего существует шесть возможных типов значений атрибута:
- CDATA - содержимым документа могут быть любые символьные данные
- ID - определяет уникальный идентификатор элемента в документе
- IDREF( IDREFS )- указывает, что значением атрибута должно выступать название(или несколько таких названий, разделенных пробелами во втором случае) уникального идентификатора определенного в этом документе элемента
- ENTITY( ENTITIES) - значение атрибута должно быть названием(или списком названий, если используется ENTITIES) компонента (макроопределения), определенного в документе
- NMTOKEN (NMTOKENS) - содержимым элемента может быть только одно отдельное слово(т.е. этот параметр является ограниченным вариантом CDATA)
- Список допустимых значений - определяется список значений, которые может иметь данный атрибут.
Также в определении атрибута можно использовать следующие параметры:
Читайте также: