Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-04.doc
Скачиваний:
5
Добавлен:
12.05.2015
Размер:
192 Кб
Скачать

4.2.8. Объявление элементов в схемеXml

Объявление элемента выполняет

  • локальную проверку значений элемента с использованием определения типа;

  • задание значения по умолчанию или фиксированного значения для элемента;

  • обеспечение уникальности и ограничений на отношения на значения связанных элементов и атрибутов;

  • управление подстановками элементов через группы подстановок элемента.

4.2.8.1. Формат объявления элементаelement

Объявление элемента elementимеет следующий формат:

<префикс:element

name = NCName

ref = QName

type = QName

id = ID

default = string

form = (qualified | unqualified)

fixed = string

abstract = boolean : false

block = (#all| List(extension | restriction | substitution))

final = (#all | List(extension | restriction))

maxOccurs = (nonNegativeInteger | unbounded) : 1

minOccurs = nonNegativeInteger : 1

nillable = boolean : false

substitutionGroup = QName

>

(annotation?, ((simpleType | complexType)?, (unique | key | keyref)*))

</префикс:element>

Атрибуты name,ref,type,id,default,formиfixedв элементеelementимеют тот же смысл, что и в элементеattribute (атрибут nameявляется обязательным только в том случае, если родительским элементом данного элемента является элементschemaили элементredefine). Остальные атрибуты задают следующие свойства:

  • abstract– указывает, что элемент просто задает другие элементы, которые находятся в его группе подстановки (substitutionGroup);

  • block– запрещает замену этого элемента элементом его группы подстановки (значениеsubstitution) или запрещает замену этого типа элемента производным сужающим типом (значениеrestriction) или расширенным типом (значениеextension), если же задано значение#all, то блокируются все приведенные выше замены;

  • final– действует аналогично атрибутуblock, но блокирует только замены типаrestrictionи/илиextension;

  • maxOccurs– задает максимальное число появлений элемента в документе (элемент может также появляться в документе сколько угодно раз – значениеunbounded), по умолчанию элемент может появиться в документе только один раз;

  • minOccurs– задает минимальное число появлений элемента (по умолчанию значение этого атрибута равно1);

  • nillableуказывает, что для элемента недоступно никакое значение, когда для него задается атрибутnil;

  • substitutionGroup– указывает, что данный элемент может замещаться элементом, заданным в группе подстановки.

Примеры объявления элементов:

1. <xs:element name="birthDate" type="xs:date"/>

Объявление элемента birthDate(дата рождения) с типом данныхdate.

2. <xs:element name="author" minOccurs="1" maxOccurs="5">

<xs:simpleType>

<xs:restriction>

<xs:pattern

value="[A-Я][а-я]{1,18} [A-Я]\. [A-Я]\.">

</xs:restriction>

</xs:simpleType>

</xs:element>

Объявление элемента author(автор). Минимальное количество элементов в документеXML– 1, максимальное – 5. Значением элемента является шаблон для фамилии и инициалов автора.

4.2.8.2. Элементыunique,selectorиfield

Дочерний элемент elementuniqueопределяет, что значение элемента или атрибута должно быть уникальным в области определения данного элемента или атрибута. Элемент имеет следующий формат:

<префикс:unique

id = ID

name = NCName

>

(annotation?, (selector, field+))

</префикс:unique>

Необязательный атрибут idзадает уникальный идентификатор элемента, а обязательный атрибутname – имя элемента.

Дочерний элемент selectorэлементаuniqueопределяет выражениеXPath, которое задает набор элементов для ограничений идентификации (элементыunique,keyиkeyref) и имеет следующий формат:

<префикс:selector

id = ID

xpath =подмножество-выражений-XPath

>

(annotation?)

</префикс:selector>

Необязательный атрибут idзадает уникальный идентификатор элемента, а обязательный атрибутxpath определяет выражениеXPathотносительно объявленного элемента, идентифицирующее элементы, к которым применяются ограничения идентификации.

Дочерний элемент fieldэлементаuniqueопределяет выражениеXPath, которое задает значение, используемое для определения ограничений идентификации, и имеет следующий формат:

<префикс:field

id = ID

xpath =подмножество-выражений-XPath

>

(annotation?)

</префикс:field>

Необязательный атрибут idзадает уникальный идентификатор элемента, а обязательный атрибутxpath определяет единственный элемент или атрибут, содержимое или значение которого используется в качестве ограничения.

Пример использования элементов unique, selector и field:

<xs:unique name="unique-index">

<xs:selector xpath=".//header"/>

<xs:field xpath="index"/>

</xs:unique>

Значение элемента index– дочернего элементаheaderдолжно быть уникальным.

Соседние файлы в папке Лекции