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


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] How to Unique contraint

Please don't go off-list! People finding the start of a thread in the
archives want to know what the answer was. 

> This file is not valid:
> The fields XPATH selector of the key/unique/keyref identity 
> constraint 'port' 
> must evaluate to exactly 0 or 1 nodes.
> This obviously means that the unique constraint can not take 
> into consideration more than one of the attributes i.e.
>     <xs:field xpath="@debug-port | @port"/> </xs:unique>
> returns 2 nodes both @debug-port and @port and is therefor 
> invalid under this context.

You're quite right. The schema is valid but it's not testing the condition
you want to test.

Logically, the condition you want is:

 <xs:unique name="port">
   <xs:selector xpath="anElement/@debug-port | anElement/@port"/>
   <xs:field xpath="."/> 

but the spec seems to have scuppered you by not allowing attributes in the

I can't think of any way around that. You can wait for assertions, of
course, which will allow

count(distinct-values(anElement/(@debug-port, @port))) lt 2

provided that the WG permits such XPath expressions to be used in

Michael Kay

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

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

Copyright 1993-2007 XML.org. This site is hosted by OASIS