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>