
- •Лекция 4-03
- •Тема 4.2. Схемы xml
- •Тема 4.2. Схемы xml
- •4.2.1. Формирование описания документа с помощью схем
- •4.2.2. Задание данных в схемеXml
- •4.2.2.1. Типы данных в схеме xml
- •4.2.2.2. Компоненты типов данных в схеме xml
- •4.2.2.3. Свойства типов данных в схеме xml
- •4.2.3. Встроенные типы данных схемыXml
- •4.2.3.1.4. Представление шестнадцатеричных данных
- •4.2.3.1.5. Представление продолжительности, даты и времени
- •2002-12-30T13:20:00
- •4.2.3.1.6. ПредставлениеUri
- •4.2.3.2.2. Производные числовые типы данных
- •4.2.4. Компоненты схемыXml
- •4.2.5. Объявление аннотации в схемеXml
- •4.2.5.1. Элементannotation
- •4.2.5.2. Элементdocumentation
- •4.2.1.3. Элементappinfo
- •4.2.6. Определение простого типа в схемеXml
- •4.2.6.1. ЭлементsimpleType
- •4.2.6.2. Элементы ограничивающих свойств
- •4.2.6.2.1. Элемент length
- •4.2.6.2.2. Элементы minLength и maxLength
- •4.2.6.2.3. Элементpattern
- •4.2.6.2.4. Элементenumeration
- •4.2.6.2.5. ЭлементwhiteSpace
- •4.2.6.2.6. ЭлементыminExclusive иmaxExclusive
- •4.2.6.2.7. ЭлементыminInclusive иmaxInclusive
- •4.2.6.2.8. ЭлементыtotalDigitsиfractionDigits
- •4.2.6.3. Элементrestriction
- •4.2.6.4. Элементlist
- •4 4 5 3
- •3 3 1 3
- •4.2.1.5. Элементunion
4.2.6.2. Элементы ограничивающих свойств
Значения ограничивающих свойств задаются в элементах схемы, имена которых совпадают с наименованиями свойств: length, minLength, maxLength, pattern, enumeration, whitespace, maxInclusive, maxExclusive, minExclusive, minInclusive, totalDigitsиfractionDigits.
4.2.6.2.1. Элемент length
Элемент lengthзадает значение длины данного, и имеет следующий формат:
<префикс:length
id = ID
value = nonNegativeInteger
fixed = boolean : false
>
(annotation?)
</префикс:length>
Необязательный атрибут idзадает уникальный идентификатор элемента. Атрибутvalueзадает значение длины данного (единица измерения длины зависит от типа данного), а атрибутfixed– фиксацию длины данного. Если значение атрибутаfixedравноtrue, то типы данных, для которых текущий тип является базовым, не могут иметь длину, отличную от длины, заданной в значении атрибутаvalue. По умолчанию или, если значение атрибутаfixedравноfalse, типы данных могут иметь другую длину.
Примеры задания элемента length:
1. <xs:length value="8" fixed="true"/>
Длина данного является фиксированной и равна 8.
2. <xs:length value="32">
<xs:annotation>
<xs:documentation>Размер строки</xs:documentation>
</xs:annotation>
</xs:length>
Длина данного (строки) равна 32 символам и может быть изменена.
4.2.6.2.2. Элементы minLength и maxLength
Элементы minLengthиmaxLengthзадают соответственно значения минимальной и максимальной допустимой длины данного, и имеют следующий формат:
<префикс:minLength
id = ID
value = nonNegativeInteger
fixed = boolean : false
>
(annotation?)
</префикс:minLength>
<префикс:maxLength
id = ID
value = nonNegativeInteger
fixed = boolean : false
>
(annotation?)
</префикс:maxLength>
Назначение атрибутов id,valueиfixed– такое же, как и одноименных атрибутов элементаlength.
Примеры задания элементов minLength и maxLength:
1. <xs:minLength value="1"/>
Минимальная длина данного равна 1.
2. <xs:maxLength value="10">
Максимальная длина данного равна 10.
4.2.6.2.3. Элементpattern
Элемент patternзадает значение шаблона регулярного выражения для данного, и имеет следующий формат:
<префикс:pattern
id = ID
value = string
>
(annotation?)
</префикс:pattern>
Необязательный атрибут idзадает уникальный идентификатор элемента, а атрибутvalueзадает строку – значение шаблона в соответствии с правилами записи регулярных выражений (аналогичны правилам записи регулярных выражений вJavaScript,Javaи PHP).
Примеры задания элемента pattern:
1. <xs:pattern value="\d{3}-\d{3}-\d{2}-\d{2}"/>
Задание шаблона для номера телефона.
2. <xs:pattern value="[A-Я][а-я]{1,18} [A-Я]\. [A-Я]\.">
<xs:annotation>
<xs:documentation>ФИО абонента</xs:documentation>
</xs:annotation>
</xs:pattern>
Задание шаблона для фамилии и инициалов абонента.
4.2.6.2.4. Элементenumeration
Элемент enumerationограничивает пространство имен данного заданным набором значений и имеет следующий формат:
<префикс:enumeration
id = ID
value = anySimpleType
>
(annotation?)
</префикс:enumeration>
Необязательный атрибут idзадает уникальный идентификатор элемента, а атрибутvalueзадает из допустимых значений данного, которое может иметь как примитивный тип, так любой ранее заданный (с помощью элементаsimpleType) простой тип. Для каждого значения набора задается свой элементenumeration.
Пример задания элемента enumeration:
<xs:enumeration value="red"/>
<xs:enumeration value="green"/>
<xs:enumeration value="blue"/>
Задание набора значений для цветов модели RGB.