Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Модель содержимого элемента



Под моделью содержимого в схеме данных понимают описание всех допустимых объектов 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>Зачем он нужен, XML?</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>

 

  1. Группировка элементов. Закрытая и открытая модели описания содержимого элемента.

Элемент group используется для того, чтобы задать некоторую последовательность вложенных объектов:

<elementType id="contacts">

<element type="#tel" occurs="ONEORMORE">

<group occurs="OPTIONAL">

<element type="#email">

<element type="#url">

</group>

</elementType>

Группировка объектов позволяет определять сразу группу объектов различных типов, которые могут находится внутри данного объекта. В приведенном примере мы указали, что внутри объекта типа contacts могут быть включены элементы tel, email, и url, причем атрибутом occurs мы указали, что элементы в группе являются необязательными. Корректным для таких схем будут являться следующие фрагменты документов:

<contacts>

<tel>12-12-12</tel>

<email>[email protected]</email>

<url>http://www.j.com</url>

</contacts>

...

<contacts>

<tel>12-12-12</tel>

</contacts>

...

<contacts>

<tel>12-12-12</tel>

<email>[email protected]</email>

</contacts>

При помощи атрибута groupOrder можно также задавать режим использования группированных элементов При установленном значении OR возможно использование не всех элементов группы, а лишь некоторых из них. Если задано значение AND, то оба элемента должны быть включены в обязательном порядке. Например, для следующей группы правил:

<elementType id="contacts">

<element type="#tel" occurs="ONEORMORE">

<group groupOrder="AND" occurs="OPTIONAL">

<element type="#email">

<element type="#url">

</group>

</elementType>

будут считаться правильными только следующие варианты:

<contacts>

<tel>12-12-12</tel>

<email>[email protected]</email>

<url>http://www.j.com</url>

</contacts>

или

<contacts>

<tel>12-12-12</tel>

</contacts>


Поделиться:



Последнее изменение этой страницы: 2019-04-10; Просмотров: 214; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь