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

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