7
votes

What is the difference between XSD choice and enumeration?

3

3 Answers

5
votes

They are completely unrelated.

Choice indicates that within the content model of an element, you can use one of several child elements: for example within a document you have a choice of chapter or appendix as child elements.

Enumeration is used to restrict the values that can appear in a text or attribute node, for example to say that the value of a color attribute must be red, green, or blue.

3
votes

XSD choice allows you to choose between zero or one elements/attributes. These can be of any type.

Enumeration are used in XSD simpleTypes to either restrict or extend one particular type to a set of values.

0
votes

Gathering from the previous answers, and putting them together in clear, concise way:

The differences are two-fold:

  • choice is for element tag, and enumeration is for a node's text or attribute.

  • choice allows for zero instances, while enumeration requires one.