Элемент group используется, чтобы определить группу элементов для использования в определениях сложных типов.
- Родительские элементы: schema, choice, sequence, complexType, restriction (simpleContent и complexContent), extension (simpleContent и complexContent)
Синтаксис элемента
<group
id=идентификатор
name=NCName
ref=QName
maxOccurs=целоеЧисло | unbounded
minOccurs=целоеЧисло
любые атрибуты
>
(annotation?, (all | choice | sequence)?)
</group>
(Знак ? указывает на то, что элемент может появляться ноль или один раз внутри элемента group.)
Атрибуты элемента
Атрибут | Описание |
---|---|
id | Не обязательный. Определяет уникальный идентификатор для элемента |
name | Не обязательный. Определяет имя группы. Этот атрибут используется только в том случае, если родительским элементом группы является элемент schema. Нельзя использовать вместе с атрибутом ref |
ref | Не обязательный. Определяет ссылку на имя другой группы. Нельзя использовать вместе с атрибутом name |
maxOccurs | Не обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово "unbounded". Значение по умолчанию 1 |
minOccurs | Не обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1 |
любые атрибуты | Не обязательный. Любые другие атрибуты вне пространства имен схемы |
Пример использования
В следующем примере определяется группа, содержащая последовательность из четырех элементов, которая затем используется в определении сложного типа:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:group name="custGroup">
<xs:sequence>
<xs:element name="customer" type="xs:string"/>
<xs:element name="orderdetails" type="xs:string"/>
<xs:element name="billto" type="xs:string"/>
<xs:element name="shipto" type="xs:string"/>
</xs:sequence>
</xs:group>
<xs:element name="order" type="ordertype"/>
<xs:complexType name="ordertype">
<xs:group ref="custGroup"/>
<xs:attribute name="status" type="xs:string"/>
</xs:complexType>
</xs:schema>