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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Uniqueness across different child element types

[ Lists Home | Date Index | Thread Index ]

Don,

You'll be happy to know that this very issue was a recent thread here on
XML-DEV. I don't recall the final outcome, but I would recommend you
start with [1] and progress through the thread.

Kind Regards,
Joe Chiusano
Booz | Allen | Hamilton

[1] http://lists.xml.org/archives/xml-dev/200305/msg00577.html

Don Bate wrote:
> 
> 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
begin:vcard 
n:Chiusano;Joseph
tel;work:(703) 902-6923
x-mozilla-html:FALSE
url:www.bah.com
org:Booz | Allen | Hamilton;IT Digital Strategies Team
adr:;;8283 Greensboro Drive;McLean;VA;22012;
version:2.1
email;internet:chiusano_joseph@bah.com
title:Senior Consultant
fn:Joseph M. Chiusano
end:vcard




 

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

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