Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   XML (http://www.velocityreviews.com/forums/f32-xml.html)
-   -   xs:choice and child elements with minOccurs=0 (http://www.velocityreviews.com/forums/t626932-xs-choice-and-child-elements-with-minoccurs-0-a.html)

Peter Larsen 07-21-2008 10:30 PM

xs:choice and child elements with minOccurs=0
 
Is this really a valid schema design?

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="e1" minOccurs="0" />
<xs:element name="e2" minOccurs="0"/>
<xs:element name="e3" minOccurs="0"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Doesn't the W3C specs say that xs:choice HAS to return at least one
element? Maybe I'm interpreting the "element" a bit too specific here
- because it even allows me to add maxOccurs="Unlimited" to a child of
a choice and it allows me to repeat the element of that has the
unlimited occurrence on it within the choice.

If the above is valid - which I sorta doubt - is that because it's
specifically NOT forbidden by the w3c specs (http://www.w3.org/TR/2001/
REC-xmlschema-1-20010502)?

My basic problem is that the modifiers on these particles violate the
xs:choice rules. And that seems to be allowed? I've also noticed it
just takes one of the child elements to have a minOccurs="0" to make
the whole choice construct optional. Is there any difference if just
one is "optional" versus all children of a xs:choice being optional?

xerces 2.8 seems to validate the above schema just fine - and run it
with data that (to me) violates the xs:choice. For instance, <root></
root> is valid in the above example. If the choice needs to be
optional why not simply use minOccurs="0" on the xs:choice element
instead of it's children?


All times are GMT. The time now is 09:39 PM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57