OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Uniqueness across different child element types

[ 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




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS