[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: 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="."/> </xs:unique> but the spec seems to have scuppered you by not allowing attributes in the xs:selector. 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 assertions. Michael Kay http://www.saxonica.com/ [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|