- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Fri, 15 Mar 2002 09:53:37 +0000
- To: Simon.Cox@csiro.au
- CC: dareo@microsoft.com, xmlschema-dev@w3.org
Hi Simon, > But not all of them: here is another example that seems to me > /should/ work but MSXML just will not pass - I use a <sequence> of > two <choice> groups to restrict a substitution group whose > maxOccurs="unbounded". MSXML insists "Invalid particle derivation by > restriction". The relevant types are: > <xs:complexType name="ValueCollectionType"> > <xs:sequence> > <xs:element ref="my:valueMember" minOccurs="0" maxOccurs="unbounded"/> > </xs:sequence> > </xs:complexType> > <!-- --> > <xs:complexType name="ValueRangeType"> > <xs:complexContent> > <xs:restriction base="my:ValueCollectionType"> > <xs:sequence> > <xs:choice> > <xs:element ref="my:lowerExclusive"/> > <xs:element ref="my:lowerInclusive"/> > </xs:choice> > <xs:choice> > <xs:element ref="my:upperInclusive"/> > <xs:element ref="my:upperExclusive"/> > </xs:choice> > </xs:sequence> > </xs:restriction> > </xs:complexContent> > </xs:complexType> The content model of the first type is mapped to: <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="my:valueMember" /> <xs:element ref="my:lowerExclusive" /> <xs:element ref="my:lowerInclusive" /> <xs:element ref="my:upperInclusive" /> <xs:element ref="my:upperExclusive" /> </xs:choice> </xs:sequence> I can't find a route through the Particle Valid (Restriction) rules at http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict that enables you to restrict one choice into two choices, though I'd love to be corrected because intuitively it seems like something you should be able to do. I also can't find a way around it right now. For the record, Xerces-C++ accepts the schema, but Xerces-J complains that there's no functional mapping between the components under the rcase-MapAndSum.1 rule (which at least tells you what the problem is!). Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Received on Friday, 15 March 2002 04:53:44 UTC