- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 30 Aug 2001 11:17:11 +0100
- To: Noah_Mendelsohn@lotus.com
- Cc: Guillaume Rousse <rousse@ccr.jussieu.fr>, xmlschema-dev@w3.org
Guillaume Rousse writes: [why does xerces complain about this] > <complexType name="fooType"> > <complexContent> > <extension base="model:barType"> > <all> > <element name="elmt1" type="string"/> > </all> > </extension> > </complexContent> > </complexType> > > <complexType name="barType"> > <complexContent> > <extension base="model:fooType"> > <all> > <element name="elmt2" type="string"/> > <element name="elmt3" type="string"/> > </all> > </extension> > </complexContent> > </complexType> > > [Error] file.xml:6:4: Schema error: ComplexType 'barType': > cos-all-limited.1.2: An "all" model group that is part of a complex type > definition must constitute the entire {content type} of the definition. The complaint is correct -- the effective content model you are asking for is <seq><all>...</all><all>...</all></seq> which is not allowed. Noah's answer (below) explains why -- the _result_ of extension must validate content which contains valid instances of the base type definition at the beginning. So just as the effect of extending a choice with a choice is _not_ a bigger choice, but two choices in a row, the effect of trying to extend an all with an all is two alls in a row, which is not allowed. Noah_Mendelsohn@lotus.com writes: > As far as I know, it's an error. Extension is currently defined to (1) > add attributes and/or (2) extend using sequences. So, extension of all > groups is not supported. The pertinent restriction in the specification > is [1], which says: > > "[Definition:] For a particle (call it E, for extension) to be a valid > extension of another particle (call it B, for base) one of the following > must be true: > 1 They are the same particle. > 2 E's {min occurs}={max occurs}=1 and its {term} is a sequence group whose > {particles}' first member is a particle all of whose properties, > recursively, are identical to those of B, with the exception of > {annotation} properties. " > > Note that it calls for sequence groups. > > > Does it means inheriting type with unordered elements is illegal, or is it > a > xerces bug ? > -- > Guillaume Rousse <rousse@ccr.jussieu.fr> > GPG key http://bohm.snv.jussieu.fr/~rousse/gpgkey.html > > > > > Noah' -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Thursday, 30 August 2001 06:16:47 UTC