This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 2191 - R-198: Problem with unions of unions
Summary: R-198: Problem with unions of unions
Status: CLOSED LATER
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Datatypes: XSD Part 2 (show other bugs)
Version: 1.0 only
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: C. M. Sperberg-McQueen
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-14 18:54 UTC by Sandy Gao
Modified: 2009-04-21 19:25 UTC (History)
0 users

See Also:


Attachments

Description Sandy Gao 2005-09-14 18:54:20 UTC
The Union SimpleType Definition Schema Component is defined with the followg 
properties: 

{member type definitions} 

The appropriate case among the following: 
1 If the <union> alternative is chosen, then [Definition:]define the explicit 
members as the type definitions resolved to by the items in the actual value of 
the memberTypes [attribute], if any, followed by the type definitions 
corresponding to the <simpleType>s among the [children] of <union> if any. The 
actual value is then formed by replacing any union type definition in the 
explicit members with the members of their {member type definitions}, in order. 

2 If the <restriction> option is chosen, then the {member type definitions} of 
the {base type definition}. 

{facets} 

If the <restriction> alternative is chosen, a set of facet components 
constituting a restriction of the {facets} of the {base type definition} with 
respect to a set of facet components corresponding to the appropriate element 
information items among the [children] of <restriction> (i.e. those which 
specify facets, if any), as defined in Simple Type Restriction (Facets) 
(3.14.3), otherwise the empty set.

I believe that it implies a loss of facet restrictions which is highlighted by 
the following example: 

<xsd:schema targetNamespace="http:///simple/MySchema.xsd"
    xmlns:this="http:///simple/MySchema.xsd" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:simpleType name="mySimpleType1">
        <xsd:union memberTypes="xsd:nonNegativeInteger xsd:boolean"/>
    <xsd:simpleType>
    <xsd:simpleType name="mySimpleType2">
        <xsd:restriction base="this:mySimpleType1">
            <xsd:enumeration value="true"/>
            <xsd:enumeration value="0"/>
        <xsd:restriction>
    <xsd:simpleType>
    <xsd:simpleType name="mySimpleType3">
        <xsd:union memberTypes="xsd:negativeInteger this:mySimpleType2"/>
    <xsd:simpleType>
    <xsd:simpleType name="mySimpleType4">
        <xsd:restriction base="this:mySimpleType3">
            <xsd:enumeration value="-1"/>
            <xsd:enumeration value="0"/>
            <xsd:enumeration value="1"/>
            <xsd:enumeration value="true"/>
            <xsd:enumeration value="false"/>
        <xsd:restriction>
    <xsd:simpleType>
<xsd:schema>

Since the literal value "1" and the literal value "false" are not in the value 
space of mySimpleType2 nor in the value space of negativeInteger, they would 
appear to be in error. But a literal interpretation of the definition would 
imply that mySimpleType3 is just a union of negativeInteger, 
nonNegativeInteger, and boolean and hence "1" and "false" are valid literals. 

Isn't this quiet loss of explicit facet restrictions a problem?
Comment 1 Sandy Gao 2005-09-14 18:59:27 UTC
Discussed at the April 10,2003 telecon. No decision reached. 

ACTION: Paul Biron to work this out in painful detail.

Resolution:
At the June 12 2003 telecon: RESOLVED: Class R-198 as error to be fixed in 1.1.