Name
xs:choice(outside a group) — Compositor to define group of mutually exclusive elements or compositors.
Synopsis
<xs:choice
id = xs:ID
maxOccurs = ( xs:nonNegativeInteger | “unbounded” ) : “1”
minOccurs = xs:nonNegativeInteger : “1”
{any attributes with non-schema namespace}
>
Content: (xs:annotation?, (xs:element | xs:group | xs:choice |
xs:sequence | xs:any)
)*)
</xs:choice>
May be included in: xs:choice (outside a group), xs:choice (within a group), xs:complexType (local definition), xs:complexType (global definition), xs:extension (complex content), xs:restriction (complex content), xs:sequence (within a group), xs:sequence (outside a group)
Description
xs:choice is a compositor that defines a group of
mutually exclusive particles. Only one can be found in the instance
document per occurrence of the xs:choice
compositor. The number of occurrences of the compositor itself is
controlled by its minOccurs and
maxOccurs attributes, while the number of
occurrences of each particle within a single occurrence of
xs:choice can be controlled by the
minOccurs and maxOccurs
attributes of the particles.
In addition to situations where simple choices are expressed (element
“a” or
“b” can be accepted here),
xs:choice is often used to work around the
limitations of xs:all and to define content models
where an unlimited number of elements can be found in any order (see
the example).
When the particle used in a xs:choice compositor is an element, a similar effect may be achieved using substitution ...