- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 27 Jun 2007 15:51:49 -0400
- To: "Markus Gamperl" <markus.gamperl@gmx.at>
- Cc: xmlschema-dev@w3.org, xmlschema-dev-request@w3.org
If the order of a and b doesn't matter, then:
<xs:all>
<xs:element name="a" type="xs:string" minOccurs="0"/>
<xs:element name="b" type="xs:string" minOccurs="0"/>
</xs:all>
If when both are present, the "a" must come first:
<xs:sequence>
<xs:element name="a" type="xs:string" minOccurs="0"/>
<xs:element name="b" type="xs:string" minOccurs="0"/>
</xs:sequence>
The reason for the editor error in your model is that when an <a> shows up
as the first element in your instance, a parser can't know with out
looking further into the document whether to match the first or second
reference to "a" in your content model. Schemas that raise such
challenges violate what the Schema Recommendation calls the Unique
Particle Attribution constraint, or in the terms of the error message, are
to some degree nondeterministic. Anyway, your schema is not a legal one,
which is why the editor is complaining.
Noah
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
"Markus Gamperl" <markus.gamperl@gmx.at>
Sent by: xmlschema-dev-request@w3.org
06/27/2007 03:21 PM
To: xmlschema-dev@w3.org
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: xs:choice question
Hello!
I have the following xml fragment example:
<data>
<a>a test</a>
<b>b test</a>
<data>
the schema should check the following rules (three options):
- element a must exist, b may not
- element b must exist, a may not
- element a and b must exist
Therefor I have defined the following choice:
...
<xs:choice>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="xs:string"/>
<xs:sequence>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="xs:string"/>
</xs:sequence>
</xs:choice>
...
The xml editor raises an error - something about non determenistic
declaration...
Do you have a suggestion how to define these three rules?
Thanks for your help!
Markus
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
Received on Wednesday, 27 June 2007 19:51:39 UTC