» Xml для новичков
» Главная страница
»
К оглавлению
Определение элемента
Элемент в DTD определяется с помощью дескриптора
!ELEMENT, в котором указывается название элемента и структура его
содержимого.
Например, для элемента <flower> можно определить
следующее правило: <!ELEMENT flower PCDATA>
Ключевое слово ELEMENT указывает, что данной инструкцией будет
описываться элемент XML. Внутри этой инструкции задается название
элемента(flower) и тип его содержимого.
В определении элемента мы указываем сначала название
элемента(flower), а затем его модель содержимого - определяем, какие другие
элементы или типы данных могут встречаться внутри него. В данном случае
содержимое элемента flower будет определяться при помощи специального маркера
PCDATA( что означает parseable character data - любая информация, с которой
может работать программа-анализатор). Существует еще две инструкции,
определяющие тип содержимого: EMPTY,ANY. Первая указывает на то, что элемент
должен быть пустым(например, <red/>), вторая - на то, что содержимое
элемента специально не описывается.
Последовательность дочерних для текущего элемента объектов
задается в виде списка разделенных запятыми названий элементов. При этом для
того, чтобы указать количество повторений включений этих элементов могут
использоваться символы +,*, ? : <!ELEMENT issue (title, author+, table-of-contents?)>
В этом примере указывается, что внутри элемента <issue>
должны быть определены элементы title, author и table-of-contents, причем
элемент title является обязательным элементом и может встречаться лишь однажды,
элемент author может встречаться несколько раз, а элемент table-of-contents
является опциональным, т.е. может отсутствовать. В том случае, если существует
несколько возможных вариантов содержимого определяемого элемента, их следует
разделять при помощи символа "|" : <!ELEMENT flower (PCDATA | title )*>
Символ * в этом примере указывает на то, что определяемая
последовательность внутренних элементов может быть повторена несколько раз или
же совсем не использоваться.
Если в определении элемента указывается "смешанное" содержимое,
т.е. текстовые данные или набор элементов, то необходимо сначала указать PCDATA,
а затем разделенный символом "|" список элементов.
Пример корректного XML- документа: <?xml version="1.0"?>
<! DOCTYPE journal [
<!ELEMENT contacts (address, tel+, email?)>
<!ELEMENT address (street, appt)>
<!ELEMENT street PCDATA>
<!ELEMENT appt (PCDATA | EMPTY)*>
<!ELEMENT tel PCDATA>
<!ELEMENT email PCDATA>
]>
...
<contacts>
<address>
<street>Marks avenue</street>
<appt id="4">
</address>
<tel>12-12-12</tel>
<tel>46-23-62</tel>
<email>info@j.com</email>
</contacts>
|