Читать «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^