Altova Mailing List Archives>Archive Index >xmlschema-dev Archive Home >Recent entries >Thread Prev - Best way to ensure one element out of a set >Thread Next - Doubt in non-deterministic content model RE: Best way to ensure one element out of a setTo: =?iso-8859-1?Q?'Kl=F6ck=2C_Erwin'?= <Erwin.Kloeck@--------.-->, <xmlschema-dev@--.---> Date: 2/13/2009 5:20:00 PM You don't need the named group, you could do the following which is
equivalent:
<xs:complexType name="conditions" >
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="primitive_condition_0" />
<xs:element name="primitive_condition_1" />
<xs:element name="primitive_condition_2" />
</xs:choice>
<xs:element name="complex_condition" =
type="complex_condition"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
Michael Kay
http://www.saxonica.com/
_____
From: xmlschema-dev-request@w... [mailto:xmlschema-dev-request@w...] =
On
Behalf Of Kl=F6ck, Erwin
Sent: 13 February 2009 15:41
To: xmlschema-dev@w...
Subject: Best way to ensure one element out of a set
Hi,
is this the best way to ensure that one element out of a set is used?
I have the following xml:
--- test.xml begin ---
<?xml version="1.0" encoding="ISO-8859-1"?>
<top xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd">
<conditions>
<primitive_condition_0 />
<primitive_condition_1 />
<primitive_condition_2 />
<complex_condition />
</conditions>
</top>
--- test.xml end ---
I want to make sure that at least one of the primitive_condition =
elements
ist used, but I don't care which one.
I have come up with the following solution (which works) but are now
wondering if this is the best way to do this.
My qestion is: Is there a more straight forward way to do this than to =
have
a group of choices?
--- test.xsd begin ---
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="top" >
<xs:complexType>
<xs:sequence>
<xs:element name="conditions" type="conditions" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="conditions" >
<xs:sequence>
<xs:group ref="primitive_conditon" minOccurs="0"
maxOccurs="unbounded" />
<xs:element name="complex_condition" =
type="complex_condition"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:group name="primitive_conditon" >
<xs:choice>
<xs:element name="primitive_condition_0" />
<xs:element name="primitive_condition_1" />
<xs:element name="primitive_condition_2" />
</xs:choice>
</xs:group>
<xs:complexType name="complex_condition" />
</xs:schema>
--- test.xsd end ---
Thanks for taking an interest.
Erwin
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
