Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 461

Ильдар Шаукатович Хабибуллин

□ bounded — задает ограниченность или неограниченность типа значениями true или

false;

□ cardinality — задает конечность или бесконечность типа значениями finite или

countably infinite;

□ numeric — показывает, числовой этот тип или нет, значениями true или false.

Как видно из приведенных ранее и далее примеров, в одном сужении может быть несколько ограничений-фасеток. При этом фасетки <pattern> и <enumeration> задают независимые друг от друга ограничения, их можно мысленно объединить союзом "или". Остальные фасетки задают общие, совместно накладываемые ограничения, их можно мысленно объединить союзом "и".

Список

Простой тип-список — это тип элементов, в теле которых записывается, через пробел, несколько значений одного и того же простого типа. Например, в документе XML может встретиться такой элемент, содержащий список целых чисел:

<days>21 34 55 46</days>

Список определяется компонентом <list>, в котором атрибутом itemType указывается тип элементов определяемого списка. Тип элементов списка можно указать и в теле элемента <list>. Например, показанный ранее элемент документа XML <days> можно определить в схеме так:

<xsd:element name="days" type="listOfInteger" />

а использованный при его определении тип listOfInteger задать как список не более чем из пяти целых чисел следующим образом:

<xsd:simpleType name="listOfInteger">

<xsd:restriction>

<xsd:simpleType>

<xsd:list itemType="xsd:integer" />

</xsd:simpleType>

<xsd:maxLength value="5" />

</xsd:restriction>

</xsd:simpleType>

При определении списка можно применять фасетки <length>, <minLength>, <maxLength>, <enumeration>, <pattern>. В приведенном примере список — тело элемента <days> — не может содержать более пяти чисел.

Объединение

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

<xsd:union memberTypes="xsd:string xsd:integer listOfInteger" />

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

<xsd:attribute name="size">

<xsd:simpleType>

<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:union>

</xsd:simpleType>

</xsd:attribute>

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

<font size^large'XTnaBa 28</font>

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

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

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

<xsd:element name="HM^ элемента" type="тип элемента"