Click to return to the XML (Extensible Markup Language) home page    
ElementType Element     Schema Element     XML Schema Preview    
Web Workshop  |  XML (Extensible Markup Language)

group Element


Organizes content into a group to specify a sequence.

Syntax

<group
    maxOccurs="{1 | *}" 
    minOccurs="{0 | 1}" 
    order="{one | seq | many}" >

Attributes

maxOccurs
Maximum number of times the group can occur. The following values can be assigned to this attribute.
1 Occurs at most once.
* Unlimited number of occurrences.
minOccurs
Minimum number of times the group can occur. The following values can be assigned to this attribute.
0 Not required; the group is optional.
1 Must occur at least once.
order
Constraints on the sequence of elements (and other contained groups) within this group. The following values can be assigned to this attribute.
one Permits only one instance of each element contained in the group. (This corresponds to the '|' symbol in the document type definition (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.

Element Information

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.

Remarks

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.

Examples

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>


Back to topBack to top

Did you find this topic useful? Suggestions for other topics? Write us!

© 1999 Microsoft Corporation. All rights reserved. Terms of use.