Altova Mailing List Archives>Archive Index >xmlschema-dev Archive Home >Recent entries >Thread Prev - RE: Best way to ensure one element out of a set [Thread Next] AW: Best way to ensure one element out of a setTo: "Michael Kay" <mike@--------.--->, <xmlschema-dev@--.---> Date: 2/16/2009 11:35:00 AM Thank you for the simplification of my code. This was exactly what I = needed. Erwin ________________________________ Von: Michael Kay [mailto:mike@s...] Gesendet: Freitag, 13. Februar 2009 18:20 An: Kl=F6ck, Erwin; xmlschema-dev@w... Betreff: RE: Best way to ensure one element out of a set =09 =09 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> =09 <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 =09 =09 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 | |||
|
