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

4.2.9.5. ЭлементcomplexContent

Элемент complexContentопределяет расширения или ограничения для комплексного типа, содержащего только элементы или имеющего смешанное содержимое (текст и элементы). Определение элемента имеет следующий формат:

<префикс:complexContent

id =ID

mixed =boolean:false

>

(annotation?, (restriction | extension))

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

В этом определении необязательный атрибут idзадает уникальный идентификатор элемента, а необязательный атрибутmixedразрешает или запрещает включение символьных данных между дочерними элементами элементаcomplexContent.

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

<префикс:restriction

base = QName

id = ID

>

(annotation?, (sequence | choice| group | all)?,

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

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

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

Дочерний элемент extension, так же, как и для элементаsimpleContent, определяет расширения элемента, но имеет другой формат объявления:

<префикс:extension

base = QName

id = ID

>

(annotation?, (sequence | choice| group | all)?,

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

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

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

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

<xs:complexType name="personinfo">

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

<xs:complexType name="fullPersonInfo">

<xs:complexContent>

<xs:extension base="personInfo">

<xs:sequence>

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

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

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

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

В этом примере комплексный тип с именем fullPersonInfo(полная информация о сотруднике) является производным от другого комплексного типаpersonInfo(информация о сотруднике) с помощью расширения наследуемого типа тремя элементами (address,cityиcountry).

4.2.10. Объявление нотации в схемеXml

Элемент notationописывает формат данных, не являющихся даннымиXML, в документеXML.

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

<префикс:notation

id = ID

name = NCName

public = anyURI

system =anyURI

>

(annotation?)

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

Для элемента определены следующие атрибуты:

  • id– уникальный идентификатор элемента (необязательный атрибут);

  • name– имя элемента (обязательный атрибут);

  • public– определяет ссылку на общедоступноеURI(обязательный атрибут);

  • system– определяет ссылку на системноеURI(необязательный атрибут).

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

<xs:notation name="gif"

public="image/gif" system="view.exe"/>

<xs:notation name="jpeg" public="image/jpeg"

system="view.exe"/>

<xs:element name="image">

<xs:complexType>

<xs:simpleContent>

<xs:attribute name="type">

<xs:simpleType>

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

<xs:enumeration value="gif"/>

<xs:enumeration value="jpeg"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

</xs:simpleContent>

</xs:complexType>

</xs:element>

В этом примере задается нотация для изображений в форматах gifиjpegс использованием программы просмотраview.exe.

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