Organizes content into a group to specify a sequence.
<group
maxOccurs="{1 | *}"
minOccurs="{0 | 1}"
order="{one | seq | many}" >
| 1 | Occurs at most once. |
| * | Unlimited number of occurrences. |
| 0 | Not required; the group is optional. |
| 1 | Must occur at least once. |
| one | Permits only one instance of each element contained in the group. (This corresponds to the | symbol in the DTD.) |
| seq | Requires the elements in the group to appear in the specified sequence. |
| many | Permits the elements in the group to appear (or not appear) in any order. |
The "seq" setting is needed to specify valid sequences. For example, it can be used to specify when a particular sequence such as "x1,y1" or "x2,y2" is valid but no other possible combinations are valid. The "seq" value serves the same role as parentheses in a DTD.
| Number of occurrences | Unlimited |
| Parent elements | ElementType |
| Child elements | element, description |
| Requires closing tag | Yes. XML Schema is an XML grammar, and like all XML grammars, all tags must have closing tags to satisfy the definition of well-formed. |
The order attribute takes the same values as the order attribute of the ElementType element.
The minOccurs and maxOccurs attributes have the default value "1." A group with neither attribute must appear once and only once in a content model.
The following example demonstrates the "one" setting:
<ElementType name="z" order="one"> <element type="x"> <element type="y"> </ElementType>
The following represents a legal instance of the schema:
<z> <x/> <y></y> </z>
The following example demonstrates the "seq" setting:
<ElementType name="x" order="one">
<group order="seq">
<element type="x1">
<element type="y1">
</group>
<group order="seq">
<element type="x2">
<element type="y2">
</group>
</ElementType>
The following two examples represent legal instances of this schema:
<x> <x1/> <y1/> </x>
and:
<x> <x2/> <y2/> </x>
The following example demonstrates the "many" setting:
<ElementType name="x" content="eltOnly" order="many"> <element type="q"> <element type="r"> </ElementType>
The following five examples represent all legal instances for this schema:
<x> </x> <x> <q> </x> <x> <r> </x> <x> <q> <r> </x> <x> <r> <q> </x>