I'm trying to set up part of a schema that's like a "Sequence" where all child elements are optional, but at least one of the elements must be present, and there could be more than one of them.
I tried doing the following, but XMLSpy complains that "The content model contains the elements <element name="DateConstant"> and <element name="DateConstant"> which cannot be uniquely determined.":
<xs:choice>
<xs:sequence>
<xs:element name="DateConstant"/>
<xs:element name="TimeConstant"/>
</xs:sequence>
<xs:element name="DateConstant"/>
<xs:element name="TimeConstant"/>
</xs:choice>
Can this be done (and if so, how)?
Some clarification:
I only want to allow one of each element of the same name. There can be one "DateConstant" and/or one "TimeConstant", but not two of either.
Gizmo's answer matches my requirements, but it's impractical for a larger number of elements.
Hurst's answer allows two or more elements of the same name, which I don't want.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…