- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Thu, 29 Aug 2002 09:14:10 +0100
- To: xmlschema-dev@w3.org, Eddie Robertsson <erobertsson@allette.com.au>
- CC: "Gregory M. Messner" <gmessner@breezefactor.com>
Hi Eddie, >>Since the "agroup" reference in the "test" element has an implied >>minOccurs="1" would a document with an empty "test" element be valid against >>the schema? > > Yes, I believe this would be valid. I think the place for this in > the spec is "3.8.4 Model Group Validation Rule" [1] which has the > following paragraph: > > "Nothing in the above should be understood as ruling out groups whose > {particles} is empty: although no sequence can be ·valid· with respect > to such a group whose {compositor} is choice, the empty sequence is > ·valid· with respect to empty groups whose {compositor} is sequence or > all. " > > So, this means that for <all> and <sequence> you are allowed to have > empty particles but for <choice> this would not be valid. I agree with your conclusion, but now with how you got to it. A group whose {particles} is empty is a group that doesn't specify any particles, for example: <xs:sequence /> or: <xs:choice /> or: <xs:all /> A sequence or an all group with no particles, as above, is fine -- it just means that it matches an empty sequence of elements in the instance. Having a choice between an empty set of particles is invalid, on the other hand, because each time you have a choice you must choose something, and if you have nothing to choose from then you cannot choose anything :) A model group like: <xsd:choice> <xsd:element name="A" minOccurs="0" type="xsd:string" /> <xsd:element name="B" minOccurs="0" type="xsd:string" /> <xsd:element name="C" minOccurs="0" type="xsd:string" /> </xsd:choice> is a choice model group that has three element particles. All those particles are *optional* (have a minimum occurrence of 0) but the model group still has particles. So this is perfectly valid (thankfully!). Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Thursday, 29 August 2002 04:14:22 UTC