- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 5 Jan 2005 10:05:29 -0000
- To: "'Scott Lawrence'" <slawrence@pingtel.com>, <xmlschema-dev@w3.org>
Your schema is definitely invalid. Saxon gives the error message: Error on line 23 of file:/c:/temp/either.xsd: A choice compositor must not contain an <xs:all> compositor Schema processing failed: The schema is invalid You can solve the problem by unfolding the xs:all into a choice that lists all the possible combinations (A (BC? | CB?)?) | (B (AC? | CA?)?) | (C (AB? | BA?)) | D but it's pretty unwieldy. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Scott Lawrence > Sent: 04 January 2005 19:52 > To: xmlschema-dev@w3.org > Subject: 'all' must only appear as the content type of a > complex type definition? > > > I'm trying to develop a schema for an existing XML usage (for which no > schema or DTD was ever written before). I've run into a case that I > can't get Xerces-C to validate, and am not sure whether my schema > construction or the parser validation is the problem. I've > put together > a simplified version ... > > The short statement of the problem is that I have an element 'address' > whose content may be either the single element 'url' or any > combination > of the elements 'user', 'host', and 'qual'. I tried to > express this as: > > <group name='parts'> > <all> > <element ref='dmp:user' minOccurs='0' maxOccurs='1'/> > <element ref='dmp:host' minOccurs='0' maxOccurs='1'/> > <element ref='dmp:qual' minOccurs='0' maxOccurs='1'/> > </all> > </group> > > <element name='address'> > <complexType> > <choice> > <group ref='dmp:parts'/> > <element ref='dmp:url'/> > </choice> > </complexType> > </element> > > When I try to validate a document against the above (using either > xerces-c version 2.5 or 2.6), I get: > > ====== > > DOMCount -v=always -s -f -n either.xml > > Error at file file:///home/lawrence/tmp/groupall/either.xsd, line 24, > char 35 > Message: A group whose content is 'all' must only appear as the > content type of a complex type definition. > ====== > > Should the above work? Is there a (better) way to accomplish what I'm > after? (I attached a complete version of the above schema, and what I > think should be a valid instance) > > -- > Scott Lawrence > Consulting Engineer > Pingtel Corp. > http://www.pingtel.com/ > +1.781.938.5306 x162 > >
Received on Wednesday, 5 January 2005 10:05:33 UTC