- From: Eddie Robertsson <erobertsson@allette.com.au>
- Date: Wed, 12 Jun 2002 10:18:55 +1000
- To: Torsten Curdt <tcurdt@dff.st>
- CC: xmlschema-dev@w3.org
Hi Torsten,
> I am trying to have a mixture of ordered and unordered elements:
>
> <root>
> <seq1/>
> <seq2/>
> <unordered2/>
> <unordered1/>
> </root>
>
> So what IMHO would make sense would be:
>
> <xs:element name="root">
> <xs:complexType>
> <xs:sequence>
> <xs:sequence>
> <xs:element name="seq1"/>
> <xs:element name="seq2"/>
> </xs:sequence>
> <xs:all>
> <xs:element name="unordered1"/>
> <xs:element name="unordered2"/>
> </xs:all>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
>
> But obviously this does not work.
> What is the proposed way to express such a schema?
How about wrapping the unordered content in an extra element:
<root>
<seq1/>
<seq2/>
<unordered>
<unordered2/>
<unordered1/>
</unordered>
</root>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="seq1"/>
<xs:element name="seq2"/>
<xs:element name="unordered">
<xs:complexType>
<xs:all>
<xs:element name="unordered1"/>
<xs:element name="unordered2"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
If this doesn't work (or the suggestion by Mark) you have to move to
RELAX-NG which can define this without problem or use embedded
Schematron rules in your W3C XML Schema (see [1])
Cheers,
/Eddie
[1] http://www.topologi.com/public/Schtrn_XSD/Paper.html
>
>
> Any help appreciated!
> --
> Torsten
Received on Tuesday, 11 June 2002 20:06:07 UTC