[
Lists Home |
Date Index |
Thread Index
]
Title: Uniqueness across different child element
types
I believe that I've found a bug in both
XMLSpy and Xerces and I'm looking for some confirmation. If I
understand the rec correctly the xml document at the bottom should
fail the uniqueness constraint and not be valid using the schema above
it. However, both XMLSpy and Xerces say it is valid.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:element ref="b"
maxOccurs="unbounded"/>
<xs:element ref="c"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="xUnique">
<xs:selector xpath="a|b"/>
<xs:field xpath="@x"/>
</xs:unique>
</xs:element>
<xs:element name="b">
<xs:complexType>
<xs:attribute
name="x" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="c">
<xs:complexType>
<xs:attribute
name="x" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
where an element "a" has two child elements "b"
and "c". Each of these
child elements have a string attribute "x". "x" is
supposed to be unique
within "a" regardless of whether it's in "b" or
"c". I believe that the
above schema captures that.
However, the following document is valid according to XMLSpy and
Xerces
when I believe that it is invalid:
<?xml version="1.0" encoding="UTF-8"?>
<a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd">
<b x="foo"/>
<c x="foo"/>
</a>
Also, if I duplicate the "b"
element (and it also has the value of "foo" for the "x"
attribute) both XMLSpy and Xerces will fail the
document.
Is this a bug? If it's not a bug then
could someone point out to me the relevant part of the rec that says
that the pairwise comparison only occurs on elements with the same
name? Am I doing something wrong? Do I not have my xpath selector
correctly
written?
BTW, I've already posted this question
to the comp.text.xml newsgroup and the Altova discussion forum but
have not received _any_ responses yet otherwise I wouldn't have
bothered this list.
Don Bate
|