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

4.2.9.3. ЭлементыattributeGroupиanyAttribute

Элемент attributeGroupиспользуется для создания группы объявлений атрибутов, используемых в определениях комплексного типа.

<префикс:attributeGroup

id = ID

name = NCName

ref = QName

>

(annotation?),((attribute | attributeGroup)*,anyAttribute?))

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

Необязательный атрибут idзадает уникальный идентификатор элемента. Атрибутыname иrefимеют тот же смысл, что и для элементаgroup.

Пример использования элемента attributeGroup:

<xs:attributeGroup name="personAttrs">

<xs:attribute name="name" type="xs:string"/>

<xs:attribute name="age" type="xs:positiveInteger"/>

</xs:attributeGroup>

<xs:complexType name="person">

<xs:attributeGroup ref="personAttrs"/>

</xs:complexType>

В этом примере в комплексном типе (personличность) используется определенная ранее группа атрибутовpersonAttrsдля имени и возраста.

Элемент anyAttributeпозволяет расширить документXMLатрибутами, которые не определены в схеме, и имеет следующий формат:

<префикс:anyAttribute

id = ID

namespace = ((##any | ##other) | List (anyURI |

(##targetNamespace | ##local))) : ##any

processContents = (strict | lax | skip) : strict

>

(annotation?)

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

Атрибуты id,namespaceиprocessContentsв этом элементе имеют тот же смысл, что и в элементеany.

Пример использования элемента anyAttribute:

<xs:element name="person">

<xs:complexType>

<xs:sequence>

<xs:element name="firstname" type="xs:string"/>

<xs:element name="lastname" type="xs:string"/>

</xs:sequence>

</xs:anyAttribute>

</xs:complexType>

</xs:element>

С помощью элемента anyAttribute можно добавить любое число атрибутов в элементеperson.

4.2.9.4. ЭлементsimpleContent

Элемент simpleContentсодержит расширения и ограничения для комплексного типа, содержащего только текст или для простого типа, не содержащего элементов, в качестве содержимого.

Элемент simpleContent имеет следующий формат:

<префикс:simpleContent

id = ID

>

(annotation?, (restriction | extension))

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

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

В свою очередь, элемент simpleContent может содержать аннотацию и должен содержать один из элементовrestrictionилиextension.

Как и в элементе simpleType, элементrestrictionопределяет ограничения, но для элементаsimpleContentон имеет следующий формат:

<префикс:restriction

base = QName

id = ID

>

(annotation?, (simpleType?, (minExclusive | minInclusive |

maxExclusive | maxInclusive | totalDigits | fractionDigits |

length | minLength | maxLength |

enumeration | whiteSpace | pattern)*)?,

((attribute | attributeGroup)*, anyAttribute?))

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

Атрибуты id и base имеют тот же смысл, что и для элемента restriction в simpleType.

Пример использования элемента restriction:

<xs:element name="shoeSize">

<xs:complexType>

<xs:simpleContent>

<xs:restriction base="xs:integer">

<xs:minInclusive value="5"/>

<xs:maxInclusive value="47"/>

</xs:restriction>

</xs:simpleContent>

</xs:complexType>

</xs:element>

В этом примере объявляется элемент комплексного типа shoeSize(размер обуви) и задаются ограничения на допустимый диапазон размеров обуви.

Элемент extensionопределяет расширения для элементовsimpleContentиcomplexContentи имеет следующий формат:

<префикс:extension

base = QName

id = ID

>

(annotation?, ((attribute | attributeGroup)*, anyAttribute?))

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

Атрибуты idиbaseимеют тот же смысл, что и для элементаrestrictionвsimpleContent.

Пример использования элемента extension:

<xs:element name="shoeSize">

<xs:complexType>

<xs:simpleContent>

<xsd:extension base="xs:positiveInteger">

<xs:attribute name="country" type="xs:string" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

В этом примере объявляется элемент комплексного типа shoeSize (размер обуви), содержимое которого имеет целый положительный тип данных и, кроме того, для элемента определен атрибутcountry(страна) с текстовым содержимым.

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