[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] key and keyref problems
- From: "Michael Kay" <mike@saxonica.com>
- To: "'pau carre'" <pau.carre@gmail.com>,<xml-dev@lists.xml.org>
- Date: Fri, 2 Feb 2007 16:56:24 -0000
Your XML isn't well-formed. But when I change it to this:
<travelAgency>
<countries>
<country name = "Brasil" code ="BR"/>
<country name = "United States of America" code ="USA"/>
<country name = "Norway" code ="NO"/>
</countries>
<travel>
<country code = "NO"/>
<country code = "BRAS"/>
</travel>
</travelAgency>
and run it against this schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name = "travelAgency" type="xs:anyType">
<xs:key name="countryID">
<xs:selector xpath="./countries/country"/>
<xs:field xpath="@code"/>
</xs:key>
<xs:keyref name="countryIDRef" refer="countryID">
<xs:selector xpath="./travel/country"/>
<xs:field xpath="@code"/>
</xs:keyref>
</xs:element>
</xs:schema>
Saxon says:
Validation error on line 11 column 16 of file:/c:/temp/travel.xml:
No referenced value found for keyRef {countryIDRef}: "BRAS" (See
http://www.w3.org/TR/xmlschema-1/#cvc-identity-constraint clause 4.3)
Validation of source document failed
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: pau carre [mailto:pau.carre@gmail.com]
> Sent: 02 February 2007 16:12
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] key and keyref problems
>
> Hi all,
> I am trying to use key and refkey elements in a XML Schema.
>
> The XML instances look like:
>
> <travelAgency>
> <countries>
> <country name = "Brasil" code ="BR">
> <country name = "United States of America" code ="USA">
> <country name = "Norway" code ="NO">
> </countires>
> <travel>
> <country code = "NO">
> <country code = "BRAS">
> <travel>
> </TravelAgency>
>
> And the XML Schema is (omitting noise with "..."):
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:element name = "travelAgency" ...>
> <xs:complexType>
> ...
> </xs:complexType>
>
> <xs:key name="countryID">
> <xs:selector xpath="./countries/country"/>
> <xs:field xpath="@code"/>
> </xs:key>
>
> <xs:keyref name="countryIDRef" refer="countryID">
> <xs:selector xpath="./travel/country"/>
> <xs:field xpath="@code"/>
> </xs:keyref>
> </xs:element>
>
> The problem is that even wrong XML instances (like the one
> written above with BRAS code) are found right by the
> validator. I have unsuccessfully tried to change the xpath
> but I did not succeed.
> Searching for inet I found that the namespaces should be
> added in xpath declaration but I do not know how to do it,
> and if it is necessary in my case.
>
>
> Thanks in advance,
>
> Pau
>
> ______________________________________________________________
> _________
>
> XML-DEV is a publicly archived, unmoderated list hosted by
> OASIS to support XML implementation and development. To
> minimize spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org List archive:
> http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]