- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Thu, 28 Mar 2002 09:07:19 +0000
- To: dbowen@es.com
- CC: xmlschema-dev@w3.org
Hi Daniel, > The problem is that minOccurs and maxOccurs for <xs:element> under > <xs:all> have to be "0" or "1". It seems that the Schema's > definition of <xs:group name="allModel"> ... is the part that's > placing this restriction. Is there some fundamental reason why > <xs:all> places such restrictions on the child element's minOccurs > and maxOccurs? Or is there another way to define the schema to have > the same effect that I'm after? There's no way of expressing the constraints that you're after on a content model using XML Schema alone. I'm not sure about the rationale for this restriction, but I think it's something to do with the semantics of an xs:all that contains particles with a maxOccurs greater than one being ambiguous (does it mean that the elements of the same type have to be next to each other or not? - in your case not, in other cases it does). There are two approaches that you could consider: - defining the schema to give a canonical ordering, and then having a script or stylesheet that reorders the instance documents into that canonical ordering prior to validation - defining the schema to give a loose definition of the content model (e.g. any number in any order) and then add rules using Schematron or another schema language to express the limitations on their occurrence If you need help or further explanation on either of those, let us know. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Thursday, 28 March 2002 04:07:25 UTC