- From: Eric Jain <Eric.Jain@isb-sib.ch>
- Date: Fri, 6 Sep 2002 11:57:44 +0200
- To: "xmlschema-dev" <xmlschema-dev@w3.org>
Sorry, another unanswered and recycled question (from comp.text.xml): Is it possible to create a schema that asserts that the first element of a list refers to an attribute? Example: <entry key="103"> <list> <item>103</item> <item>101</item> <item>204</item> </list> </entry> As a first step, the key attribute can be defined to be a key, no problem there: <xsd:key name="entryKey"> <xsd:selector xpath="entry"/> <xsd:field xpath="@key"/> </xsd:key> Now I can have *all* items refer to the key attribute of their entry (or another one, depending on the scope): <xsd:keyref name="key-ref" refer="entryKey"> <xsd:selector xpath="entry/list/item"/> <xsd:field xpath="."/> </xsd:keyref> But now how do I limit this restriction to the first element of the list? This doesn't work: <xsd:keyref name="key-ref" refer="entryKey"> <xsd:selector xpath="entry/list"/> <xsd:field xpath="item[1]"/> </xsd:keyref> Any ideas? Or is this in fact a limitation of W3C Schema? There is some mention of 'XPath subset' in http://www.w3.org/TR/xmlschema-1/, but I couldn't find any further details. Alternative strategies? -- Eric Jain
Received on Friday, 6 September 2002 05:57:40 UTC