xs:integer restricted to be empty should be invalid (XSV and Xerces result)

In the following schema document (i.e., mytest.xsd), base2 should not be
a valid restriction of base1 because base2's content is empty while empty
string is NOT valid with "xs:integer".

With my prelimary testing, both XSV and Xerces think mytest.xsd is valid.
For example, with the given instance document (i.e.,  mytest.xml).  Xerces
was happy.  But, if I changed subelement "alternate1" to "head", it failed
with:
   Element 'head' must have no element [children], and the value must be
valid.
because empty string is not valid with "xs:integer" type which is
contradictary
to the fact that Xerces thought mytest.xsd was valid.

Regards,

-Stanley


mytest.xsd
==========

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
    <xs:element name="head" type="base1"/>
    <xs:element name="alternate1" type="base2" substitutionGroup="head"
                block="substitution" />
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="head" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="base1" >
        <xs:simpleContent>
            <xs:extension base="xs:integer">
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="base2">
        <xs:complexContent>
            <xs:restriction base="base1">
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>

mytest.xml
========

<root>
 <alternate1></alternate1>
</root>

Received on Monday, 17 March 2003 13:24:06 UTC