- From: Michael Kay <mike@saxonica.com>
- Date: Mon, 2 Feb 2009 18:01:16 -0000
- To: "'Tobias Koenig'" <tobias.koenig@trolltech.com>, <xmlschema-dev@w3.org>
I remember having some trouble with <xsd:element name="e1" minOccurs="0" maxOccurs="0"/> appearing as a branch of a choice, but I forget the details. I've found a comment in the code that refers to test mgH014, which I see is your schema (1), but I'm now far from convinced about it. Saxon is treating the choice as not emptiable - the only valid content is the single element <e2/> - and Xerces appears to agree. But at present I can't see from the spec why that should be. The spec appears to say that the content is valid against a choice model group if it is valid against any branch of the choice, and the empty sequence certainly appears to be valid against <xsd:element name="e1" minOccurs="0" maxOccurs="0"/>. So I'm confused. I think I might have been over-influenced by this published test result and by the fact that other processors accept it as valid. Michael Kay http://www.saxonica.com/ > > there are the two schemas > > 1) > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsd:element name="doc" type="foo"/> > <xsd:complexType name="foo"> > <xsd:complexContent> > <xsd:restriction base="bar"> > <xsd:choice> > <xsd:element name="e1" minOccurs="0" maxOccurs="0"/> > <xsd:element name="e2"/> > </xsd:choice> > </xsd:restriction> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="bar"> > <xsd:choice> > <xsd:element name="e1"/> > <xsd:element name="e2"/> > </xsd:choice> > </xsd:complexType> > </xsd:schema> > > 2) > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> > <xs:complexType name="base"> > <xs:sequence> > <xs:element name="e1" type="xs:string" /> > </xs:sequence> > </xs:complexType> > <xs:complexType name="derived"> > <xs:complexContent> > <xs:restriction base="base"> > <xs:choice minOccurs="0"> > <xs:element name="e1" type="xs:string" /> > </xs:choice> > </xs:restriction> > </xs:complexContent> > </xs:complexType> > </xs:schema> > > In both cases a complex type with emptiable particle derives > by restriction from a complex type with non-emptiable > particle. However the first schema is valid according to xml > schema test suite (and saxon validator) but the second is > not. So what is the real issue in the second schema? That a > choice particle is inherited from an sequence particle? > > Thanks in advance > > Ciao, > Tobias >
Received on Monday, 2 February 2009 18:01:58 UTC