11

What is the difference between <all> <sequence> <choice> and <group> in XML Schema?

kjhughes
  • 98,039
  • 18
  • 159
  • 218
huangweiwei
  • 151
  • 1
  • 9

1 Answers1

21

When to use xsd:all, xsd:sequence, xsd:choice, or xsd:group:

  • Use xsd:all when all child elements must be present, independent of order.
  • Use xsd:sequence when child elements must be present per their occurrence constraints and order does matters.
  • Use xsd:choice when one of the child element must be present.
  • Use xsd:group as a way to wrap any of the above in order to name and reuse in multiple locations within an XSD.

Note that occurrence constraints can appear on xsd:all, xsd:sequence, or xsd:choice in addition to the child elements to achieve various cardinality effects.

kjhughes
  • 98,039
  • 18
  • 159
  • 218