- From: Alessandro Triglia <sandro@mclink.it>
- Date: Sun, 9 Nov 2003 13:49:34 -0500
- To: "'Michael Marchegay'" <mmarcheg@optonline.net>, <xmlschema-dev@w3.org>, "[XML Schema Comments]" <www-xml-schema-comments@w3.org>
Michael Marchegay wrote: > > Hello, > > It seems to me that the the following schema should be > invalid because the value space of the base type definition > of the element "e" in the type "ct-base" is not a super set > of the value space of the base type definition of the element > "e" in "ct-deriv"; but I cannot find any Schema Component > Constraint invalidating it. > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> > > <xs:simpleType name="base"> > <xs:union memberTypes="xs:boolean xs:integer"/> > </xs:simpleType> > > <xs:simpleType name="deriv"> > <xs:restriction base="base"> > <xs:enumeration value="1"/> > <xs:enumeration value="2"/> > </xs:restriction> > </xs:simpleType> > > <xs:complexType name="ct-base"> > <xs:sequence> > <xs:element name="e" type="deriv"/> > </xs:sequence> > </xs:complexType> > > <xs:complexType name="ct-deriv"> > <xs:complexContent> > <xs:restriction base="ct-base"> > <xs:sequence> > <xs:element name="e" type="xs:integer"/> > </xs:sequence> > </xs:restriction> > </xs:complexContent> > </xs:complexType> > > </xs:schema> > > Using cos-st-derived-ok [1], xs:integer seems to be validly > derived given {extension, list, union} from deriv (because > the member type definitions property of deriv is the the > member type definitions of base). Therefore, > rcase_NameAntTypeOK [2] is not violated, and the restriction > seems to be valid. The assumption behind clause 2.2.4 of "Schema Component Constraint: Type Derivation OK (Simple)" is that the value space of every union is a superset of the value space of each of its member types, which does not hold when a union is a restriction of another union. For example, if a union type BU has member types A and B, and another union type RU is a restriction of BU with an enumeration facet, the value space of RU will include only a subset (possibly empty) of the value space of A and a subset (possibly empty) of the value space of B. However, in this case, clause 2.2.4 still implies that the whole A and the whole B are valid restrictions of RU just because they are members of BU and thus members of RU. I think there is a concept missing here. Perhaps we need the concept of "effective member type definition" (or something like this) to designate the implicit restrictions of the member types that are implied by the facets of the restriction union. In this way, we would be able to say that the value space of every union is the union of the value spaces of the "effective" member type definitions. Alessandro Triglia > > Have I missed something? > > [1] http://www.w3.org/TR/xmlschema-1/#cos-ct-derived-ok > [2] http://www.w3.org/TR/xmlschema-1/#rcase-NameAndTypeOK > > Thanks, > > Michael Marchegay > > > >
Received on Sunday, 9 November 2003 13:51:16 UTC