- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 31 Aug 2000 11:40:06 +0100
- To: Eric van der Vlist <vdv@dyomedea.com>
- Cc: xmlschema-dev@w3.org
Eric van der Vlist <vdv@dyomedea.com> writes:
> Hi,
>
> I have written a 'simple' use case [1]&[2] where a keyref:
>
> <xsd:key name="authorKey">
> <xsd:selector>author</xsd:selector>
> <xsd:field>name</xsd:field>
> </xsd:key>
>
> <xsd:keyref refer="authorKey" name="book2author">
> <xsd:selector>book/author</xsd:selector>
> <xsd:field>text()</xsd:field>
> </xsd:keyref>
>
> doesn't seem to detect any keyref violation through XSV [3].
XSV's support for XPath is limited, and doesn't include any
functions. Having said that, your <field>text()</field> is not
actually correct:
"{fields} specifies XPath expressions relative to each element
selected by a {selector}. This must identify a single node
(_element or attribute_, not necessarily within the selected
element) whose content or value, which must be of a simple type, is
used in the constraint." [emphasis added]
Replace 'text()' above with '.' and you'll be OK, and XSV gives the
desired effect:
<invalid char='3' code='cvc-identity-constraint.2.3.2' line='7' resource='file:///projects/ltg/users/ht/xml/xmlschema/monk/book1.xml'>no key in authorKey for Charles M. Schulzs</invalid>
<invalid char='3' code='cvc-identity-constraint.2.3.2' line='17' resource='file:///projects/ltg/users/ht/xml/xmlschema/monk/book1.xml'>no key in authorKey for Charles M. Schulzhghjg</invalid>
ht
[1] http://www.w3.org/TR/xmlschema-1/#Identity-constraint_Definition_details
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
W3C Fellow 1999--2001, part-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
Received on Thursday, 31 August 2000 06:40:10 UTC