[Bug 3763] R-241: Question re: Validation of an element restriction whose base type has the variety union

http://www.w3.org/Bugs/Public/show_bug.cgi?id=3763

           Summary: R-241: Question re: Validation of an element restriction
                    whose base type has the variety union
           Product: XML Schema
           Version: 1.0 only
          Platform: Macintosh
        OS/Version: All
            Status: NEW
          Keywords: unclassified
          Severity: normal
          Priority: P2
         Component: Structures: XSD Part 1
        AssignedTo: cmsmcq@w3.org
        ReportedBy: cmsmcq@w3.org
         QAContact: www-xml-schema-comments@w3.org


This issue is a twin of bug 2233; this copy is for XML Schema 1.0,
and bug 2233 is for XML Schema 1.1; I am separating the two since
they seem likely to have distinct dispositions.

The comment was first raised on the xmlschema-dev mailing list
by Michael Marchegay on 6 November 2003 
(http://lists.w3.org/Archives/Public/xmlschema-dev/2003Nov/0019.html);
a reply by Alessandro Triglia was cross-posted to www-xmlschema-comments
(http://lists.w3.org/Archives/Public/www-xml-schema-comments/2003OctDec/0038.html).
The words that follow are Marchegay's:

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.

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

Received on Saturday, 23 September 2006 22:31:05 UTC