Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 14.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
102.29 Кб
Скачать

Объединение

Простой тип-объединение определяется компонентом <union>, в котором атрибутом memberTypes можно указать имена объединяемых типов. Например:

<xsd:union memberTypes="xsd:string xsd:integer listOfinteger” />

Другой способ — записать в теле компонента <union> определения простых типов, входящих в объединение. Например:

<xsd:attribute name="size">

<xsd: simpleTyре>

<xsd;union>

<xsd:simpleType>

<xsd;restriction base="xsd:positiveInteger">

<xsd; minInclusive value="8"/>

<xsd;maxInclusive value="72"/>

</xsd:restriction>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:NMTOKEN">

<xsd:enumeration value= "small”/>

<xsd:enumeration value="medium"/>

<xsd:enumeration value="large"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:union>

</xsd:simpleType>

</xsd:attribute>

После этого атрибут size можно использовать, например, так:

<font size=‘large’>Глава </font>

<font size=’12‘>Простой TeKCT</font>

Описание элементов и их атрибутов

Элементы, которые будут применяться в документе XML, описываются в схеме компонентом <element>:

<xsd:element namе="имя элемента" туре="тип элемента"

minOccurs="наименьшее число появлений элемента в документе" maxOccurs-''наибольшее число появлений" />

Значение по умолчанию необязательных атрибутов minOccurs и maxOccurs равно 1. Это означает, что если эти атрибуты отсутствуют, то элемент должен появиться в документе XML ровно один раз. Определение типа элемента можно вынести в тело элемента <element>:

<xsd:element namе="имя элемента" >

Определение типа элемента

</xsd:element>

Описание атрибута элемента тоже несложно:

<xsd: attribute namе=" имя атрибута" type="тип атрибута"

use="обязательность атрибута" default="значение по умолчанию" />

Необязательный атрибут use принимает три значения:

  • optional — описываемый атрибут необязателен (это значение по умолчанию);

  • required — описываемый атрибут обязателен;

  • prohibited — описываемый атрибут неприменим. Это значение полезно при определении подтипа, чтобы отменить некоторые атрибуты базового типа.

Если описываемый атрибут необязателен, то атрибутом default можно задать его значение по умолчанию.

Определение типа атрибута, — а это должен быть простой тип, — можно вынести в тело элемента <attribute>:

<xsd:attribute namе="имя атрибута">

Тип атрибута

</xsd:attribute>

Определение сложных типов

Напомним, что тип элемента называется сложным, если в элемент вложены другие элементы и/или в открывающем теге элемента есть атрибуты.

Сложный тип определяется компонентом <comрlехТуре>, имеющим вид: <xsd:complexType namе="имя типа">Определение типа</xsd:complexType>

Необязательный атрибут name задает имя типа, а в теле компонента <complexType> описываются элементы, входящие в сложный тип, и/или атрибуты открывающего тега.

Определение сложного типа можно разделить на определение типа пустого элемента, элемента с простым телом, и элемента, содержащего вложенные элементы. Рассмотрим эти определения подробнее.

Определение типа пустого элемента

Проше всего определяется тип пустого элемента — элемента, не содержащего тела, а содержащего только атрибуты в открывающем теге. Таков, например, элемент <name> листинга 14.2. Каждый атрибут описывается одним компонентом <attribute>, как в предыдущем разделе, например:

<xsd:complexType name="imageType">

<xsd: attribute name="href" type="xsd:anyURI” />’

</xsd:complexType>

После этого определения можно в схеме описать элемент <image> типа imageType:

<xsd: element name="image" type="imageType" />

а в документе XML использовать это описание:

<image href ="http://some, com/images/myfасе. gif'” />