Validation of an element restriction whose base type has the variety union

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.

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 Thursday, 6 November 2003 11:37:08 UTC