XML Schema group 元素

定义和用法

group 元素用于定义在复杂类型定义中使用的元素组。

元素信息

出现次数 无限制
父元素 schema、choice、sequence、complexType、restriction (complexContent)、extension (complexContent)
内容 annotation、all、choice、sequence

语法

<group
id=ID
name=NCName
ref=QName
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
Dowolne atrybuty
>
annotation?,(all|choice|sequence)?)
</group>

(? Symbol deklaracji znajduje się w elemencie group, który może występować zero lub jeden raz.)

Atrybuty

id

Opcjonalne. Określa unikalny ID elementu.

name

Opcjonalne. Określa nazwę grupy. Nazwa musi być bezkresową nazwą (NCName) zdefiniowaną w specyfikacji przestrzeni nazw XML.

Używaj tego atrybutu tylko wtedy, gdy element schema jest rodzicem elementu group. W tym przypadku group jest używany jako modelowa grupa przez elementy complexType, choice i sequence.

Atrybuty name i ref nie mogą występować jednocześnie.

ref

Opcjonalne. Wskazuje nazwę innej grupy. Wartość ref musi być QName. ref może zawierać prefiks przestrzeni nazw.

Atrybuty name i ref nie mogą występować jednocześnie.

maxOccurs

Opcjonalne. Określa maksymalną liczbę wystąpień elementu group w rodzicu. Wartość może być całkowitą liczbą większą lub równą zero. Jeśli nie ma ograniczenia maksymalnej liczby wystąpień, użyj ciąg literek "unbounded". Domyślna wartość to 1.

minOccurs

Opcjonalne. Określa minimalną liczbę wystąpień elementu group w rodzicu. Wartość może być całkowitą liczbą większą lub równą zero. Domyślna wartość to 1.

Dowolne atrybuty

Opcjonalne. Określa inne atrybuty z non-schematyczną przestrzenią nazw.

Przykład

Przykład 1

Poniżej znajduje się przykład sekwencji zawierającej cztery elementy grupy oraz jej użycie w definicji typu złożonego:

<?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>