» Xml для новичков
» Главная страница
»
К оглавлению
Модель содержимого элемента
Под моделью содержимого в схеме данных понимают описание
всех допустимых объектов XML- документа, использование которых внутри данного
элемента является корректным. Модель содержимого определяется инструкциями,
расположенными внутри блока <elementType>.
<elementType id="article"> <attribute name="id" atttype="ID"> <element type="#title"> <string/> </elementType>
Для этого правила
корректным будет являться следующий фрагмент документа:
<article id="0"> <title>Психи и маньяки в Интернет</title> </article>
Вложенные элементы
описываются при помощи инструкции element, в которой параметром type
указывается класс объекта - ссылка на его определение:
<elementType id="article"> <element type="#title"/> <element type="#author"/> </elementType>
Если требуется указать
режим использования вложенного элемента, то надо определить параметр occurs:
<elementType id="article"> <element type="#title" occurs="REQUIRED"/> <element type="#author" occurs="OPTIONAL"/> <element type="#subject" occurs="ONEORMORE"/> </elementType>
Возможные
значения этого параметра таковы:
REQUIRED - элемент должен быть обязательно
определен
OPTIONAL - использование элемента не является
обязательным
ZEROORMORE - вложенный элемент может встречаться
несколько раз или ни разу
ONEORMORE - элемент должен встречаться хотя бы один
раз
Примеры правильных
XML-документа, использующих приведенную выше схему:
<article> <title>Зачем он нужен, XML?</title> <author>Иван Петров</author> <subject>Что такое XML?</subject> <subject>Нужен ли он нам?</subject> </article>
или
<article> <title>Web дизайн от новичков до профи!</title> <subject>Что такое XML?</subject> </article>
Кроме элементов,
содержимым XML-документа могут также является обычный текст и области CDATA.
Для обозначения типов содержимого текущего элемента в схемах используются
следующие инструкции:
<string/> - указывает на то, что содержимым
элемента является только свободная текстовая информация(секция PCDATA) :
<elementType id="flower"> <string/> </elementType>
<any/> - указывает на то, что содержимым
элемента должны являться только элементы,
без текста, незаключенного ни в
один элемент:
<elementType id="issue"> <any/> </elementType>
<mixed> - любое сочетание элементов и текста
<elementType id="contacts"> <mixed/> </elementType>
<empty> - пустой элемент
Пример:
<elementType id="title"> <string/> </elementType> <elementType id="chapter"> <string/> </elementType> <elementType id="chapters-list"> <any/> </elementType> <elementType id="content"> <element type="#chapters-list" occurs="OPTIONAL"> </elementType> <elementType id="article"> <mixed><element type="#title"></mixed> <element type="#content" occurs="OPTIONAL"> </elementType> О типах данных, которые можно определять с помощью схем, мы
поговорим чуть позже.
|