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

4.2.6.4. Элементlist

Элемент listопределяет элемент простого типа как список значений заданного типа и имеет следующий формат:

<префикс:list

id = ID

itemType = QName

>

(annotation?, (simpleType?))

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

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

Примеры задания элемента list:

1. <xs:simpleType name="valueList">

<xs:list itemType="xs:string"/>

</xs:simpleType>

В этом примере задается простой тип valueList, который определяется как список, содержащий данные типа string(строки).

2. <xs:simpleType name="markList">

<xs:restriction>

<xs:simpleType>

<xs:list itemType="xs:positiveInteger"/>

</xs:simpleType>

<xs:length value="4"/>

<xs:minInclusive value="2"/>

<xs:maxInclusive value="5"/>

</xs:restriction>

</xs:simpleType>

В этом примере задается простой тип markList(список оценок на экзаменах в семестре). Количество экзаменов в семестре равно 4, а оценки должны иметь значения в диапазоне от 2 до 5.

Так, список в значении атрибута или элемента

4 4 5 3

удовлетворяет заданным ограничениям, а список

3 3 1 3

не удовлетворяет, поскольку содержит недопустимое значение – 1.

4.2.1.5. Элементunion

Элемент unionопределяет элемент простого типа как объединение значений заданных данных типовsimpleTypeи имеет следующий формат:

<префикс:union

id = ID

memberTypes = список QName

>

(annotation?, (simpleType*))

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

Необязательные атрибуты idиmemberTypesопределяют соответственно уникальный идентификатор элемента и список данных, содержащих встроенные типы или ранее определенные простые типы. Если атрибутmemberTypesне задан, типы данных элементов объединения задаются как содержимое элемента.

Значение атрибута или элемента, определенное как данное типа union, может иметь значение одно из типов, определенных в элементеunion.

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

1. <xs:simpleType name="weekDayIndex">

<xs:union>

<xs:simpleType>

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

<xs:minInclusive value="1"/>

<xs:maxInclusive value="7"/>

</xs:restriction>

</xs:simpleType>

<xs:simpleType name="weekDayName">

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

<xs:enumeration value="Понедельник"/>

<xs:enumeration value="Вторник"/>

<xs:enumeration value="Среда"/>

<xs:enumeration value="Четверг"/>

<xs:enumeration value="Пятница"/>

<xs:enumeration value="Суббота"/>

<xs:enumeration value="Воскресенье"/>

</xs:restriction>

</xs:simpleType>

</xs:union>

</xs:simpleType>

В этом примере задается объединение из двух значений простого типа: индексов дней недели и weekDayNameнаименований дней недели. В документе XML для атрибута или элемента, тип значения которого определен в схеме какweekDayValue, можно задать, например, либо значение"3", либо значение="Среда".

2. <xs:simpleType name="durationValue">

<xs:union memberTypes="xs:unsignedLong xs:duration"/>

</xs:simpleType>

В этом примере задается простой тип durationValueкак объединение из двух значений встроенных типов: длинного числа без знака (unsignedLong) и продолжительности (duration), т.е. промежуток времени между двумя событиями может быть задана как в секундах, так и как данное типаduration. В документе XML для атрибута или элемента, тип значения которого определен в схеме какdurationValue, можно задать, например, для промежутка в сутки либо значение"8640", либо значение"T24H00M00S".

Файл: Создан: 13.02.2008 Модифицирован: 29.07.2008 Автор: Шонин В.А.

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