- From: Eric van der Vlist <vdv@dyomedea.com>
- Date: Mon, 24 Sep 2001 12:28:07 +0200
- To: "Henry S. Thompson" <ht@cogsci.ed.ac.uk>
- Cc: xmlschema-dev@w3.org
I am working on key/keyref and XSV (XSV 1.203/1.106 of 2001/09/03
16:31:12) doesn't seem to follow our conclusions:
Instance:
<doc>
<section>
<key id="1"/>
<key id="2"/>
</section>
<section>
<key id="3"/>
<key id="2"/>
</section>
<ref ref="1"/>
</doc>
Schema:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="doc">
<xs:complexType>
<xs:sequence>
<xs:element name="section" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="key" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:integer"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="key">
<xs:selector xpath="key"/>
<xs:field xpath="@id"/>
</xs:unique>
</xs:element>
<xs:element name="ref" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="ref"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:keyref refer="key" name="keyref">
<xs:selector xpath="ref"/>
<xs:field xpath="@ref"/>
</xs:keyref>
</xs:element>
</xs:schema>
The xs:unique (or xs:key) is defined at "/doc/section" and should be
"visible" by the xs:keyref defined at "/doc", but XSV complains that:
<invalid char='1' code='cvc-identity-constraint.2.3.2' line='1'
resource='key-keyref.xml'>No key or unique constraint named {None}:key
applies below here, refed by keyref {None}keyref</invalid>
Is-it a XSV bug or anything else I have got wrong?
Thanks
Eric
Henry S. Thompson wrote:
> Sorry I've been on holiday. I agree with everything Priscilla has
> said in this thread.
>
> Ignoring the mistaken Primer example, the spec. actually says exactly
> what your Conclusion 3. says, but goes in to more detail wrt cases
> your summary doesn't cover.
>
> "Aung Aung" <aaung@microsoft.com> writes:
>
>
>>3. What I understand your interpretation:
>>In short, we need following 2 rules.... with them the confusion above
>>will be clarified. (do I have it correctly)?
>> A <key A> is referable by all the <keyref A>s from only
>>ancestor-or-self of the element that host the <key A>.
>> A <keyref A> can only refer to one of the <key>s defined in the
>>decendent-or-self of the element that host the <keyref A>.
>>
>
> ht
>
--
See you in Scottsdale, Arizona.
http://xmlconnections.com/xml/xmlfall2001/speakers.asp#evandervlist
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
http://xsltunit.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
Received on Monday, 24 September 2001 06:28:04 UTC