
14
Элемент <CAR> определяется как принадлежащий простому типу. На
содержание этого элемента наложено ограничение, основывающееся на
встроенном в XML-схемы типе данных string, значение элемента может
принимать только несколько значений из приведенного списка: Audi,
Mercedes, Volvo. Чаще всего перечисление применяется в виде грани для
строкового типа , но можно использовать и числовые элементы . По сути дела,
перечислимый тип можно определить на основе любого простого типа , за
исключением Boolean (где перечислять нечего , поскольку существует всего
два логических значения).
Важным свойством граней является использование регулярных
выражений (regular expression) для формирования масок данных. С помощью
этих масок можно определять типы данных для телефонных номеров,
почтовых кодов, которые невозможно или нецелесообразно представлять
целыми числами (например, содержащих смесь цифр и букв). Регулярное
выражение - это символьное представление шаблона , описывающего текст.
Подобно арифметическим выражениям , в регулярных выражениях отдельные
мелкие части объединяются в сложную конструкцию (как (x + y) в
арифметике).
Простой пример использования шаблона :
<xs:element name=”BUREAULDTYPE”>
<xs:sipleType>
<xs:restriction base=”xs:string”>
<xs:pattern value=”[A-Z] –d{2}”/>
</xs:restriction>
</xs:sipleType>
</xs:element>
Элемент <BUREAULDTYPE> строится по шаблону: одна прописная
буква (в верхнем регистре), один дефис, две цифры .
3.5. Сложные типы элементов
Сложный тип (complex type) служит основным контейнером для
допустимых в схеме элементов. Он может содержать элементы и атрибуты .
Сложные типы строятся на основе элемента complexType.
Так выглядит элемент сложного типа в XML-документе
<employee>
<firstname>Петр </firstname>
<lastname>Петров</lastname>
</employee>