- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Thu, 1 Nov 2001 18:59:17 +0000
- To: "Rekha Chintalacharuvu" <rchintalacharuvu@hotmail.com>
- CC: xmlschema-dev@w3.org
Hi Rekha,
> Is it possible to specify,
>
> a) that GrpA, GrpB, and Element1 can occur in any
> order within the RootElement.
Not with xs:all, and therefore not without either (a) creating content
models that spell out the possible combinations using xs:choice and
xs:sequence or (b) creating an open content model with a repeating
xs:choice and then using a something else (e.g. Schematron) to test
whether the required elements are present.
> b) that the elements inside GrpA, i.e. GrpAElem1,
> GrpAElem2, and GrpAElem3 can occur in any order.
Since all the elements in GrpA are optional and can be repeated any
number of times, you can achieve a mix between them by defining GrpA
as a choice (rather than a sequence) between the elements and using
minOccurs="0" maxOccurs="unbounded" on the reference to the group (you
don't have to specify minOccurs or maxOccurs on any of the element
declarations within the group if you do this).
> /-----Child1 (optional) max=unbounded
> Parent----------Child2 (optional) max=unbounded
> \ -----Child3 (optional) max= unbounded
>
> But Child1 or Child2 or both Child1 and Child2,
> should be present. Also, I would like to see if I
> can specify without restricting the sequence of
> occurance for Child1 and Child2(Child1 or Child2
> can be specified first).
You can do this with:
<xs:sequence>
<xs:choice>
<xs:sequence>
<xs:element ref="Child1" />
<xs:group ref="Child1Child2Choice" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:sequence>
<xs:element ref="Child2" />
<xs:group ref="Child1Child2Choice" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:choice>
<xs:element ref="Child3" />
</xs:sequence>
where Child1Child2Choice is defined as:
<xs:group name="Child1Child2Choice">
<xs:choice>
<xs:element ref="Child1" />
<xs:element ref="Child2" />
</xs:choice>
</xs:group>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
Received on Thursday, 1 November 2001 13:59:19 UTC