- From: Kasimier Buchcik <K.Buchcik@4commerce.de>
- Date: Fri, 11 Nov 2005 12:50:36 +0100
- To: ezarakan@hsr.ch
- Cc: ML-xml-schema-dev <xmlschema-dev@w3.org>
Hi,
On Fri, 2005-11-11 at 11:47 +0100, ezarakan@hsr.ch wrote:
> hallo everyone
>
> my knowledge of xml is advanced, but not concerning namespaces.
>
>
> i've got the following error when validating the xml instance document against its schema.
>
> i think it's got to do with the namespaces...
I think it's probably related to the simple type of the attribute
"linkIDRef", which defaults to xs:anySimpleType. If I recall correctly,
then comparison of values of xs:anySimpleType with other simple type
values was left to be implementation-defined. So xmlSpy's schema
processor might produce negative results for such a comparison.
It doesn't work either with XSV 2.10-1, Xerces-J 2.7.1,
MSXML 4.0 SP2 and Libxml2; only Saxon seems to find a match for "L4".
Try to set the type of the attribute decalaration "linkIDRef" to
xs:string.
By the way, XSV 2.10-1 reports errors like:
<invalid
char="9" code="cvc-identity-constraint.2.2.3" line="17"
resource="file:///p:/libxml2-lab/tests/2005-11-11/keyref.xml">
duplicate key L1 for
{http://plirosost.ethz.ch/Ontology/Schema}LinkIDKey,
first appearance was in unnamed entity at line 17 char 9 of
file:///p:/libxml2-lab/tests/2005-11-11/keyref.xml
</invalid>
This looks like the union in the XPath expression
".//ont:Link | .//ont:Link" is confusing XSV's
IDC resolution mechanism.
Regards,
Kasimier
> thank you for your time and effort
> greetings elly
>
>
> ps: im using altova xmlSpy, enterprise edition 2005 rel. 3
>
>
> <!-- ERROR of xml instance document **************************************** -->
>
>
> line: 50
> This file is not valid: the value 'L4' matched by the <keyref> identity constraint
> 'ont:KeyIDRefLink' was not matched by the referenced key 'ont:LinkIDKey' within
> the scope of element 'ont:NewDataSet'.
>
>
> line: 55
> This file is not valid: the value 'L5' matched by the <keyref> identity constraint
> 'ont:KeyIDRefLink' was not matched by the referenced key 'ont:LinkIDKey' within
> the scope of element 'ont:NewDataSet'.
>
>
> <!-- Schema **************************************** -->
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema
> targetNamespace="http://plirosost.ethz.ch/Ontology/Schema"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:ont="http://plirosost.ethz.ch/Ontology/Schema"
> elementFormDefault="qualified"
> attributeFormDefault="qualified">
> <!-- -->
>
>
> <xs:element name="Link">
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute name="linkIDKey" type="xs:string" use="required"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
>
>
> <!-- -->
> <xs:element name="NewDataSet">
> <xs:complexType>
> <xs:choice maxOccurs="unbounded">
> <!-- -->
> <xs:element name="Customers">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="CustomerID">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:pattern value="c\d+"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="CompanyName" type="xs:string"/>
> <xs:element name="ContactName" type="xs:string" minOccurs="0"/>
> <xs:element name="ContactTitle" type="xs:string" minOccurs="0"/>
> <xs:element name="Address" type="xs:string" minOccurs="0"/>
> <xs:element name="City" type="xs:string" minOccurs="0"/>
> <xs:element name="Region" type="xs:string" minOccurs="0"/>
> <xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
> <xs:element ref="ont:Link"/>
> <xs:element name="Label" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <!-- -->
> <xs:element name="Orders">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="OrderID">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:pattern value="o\d+"/>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="CustomerID" type="xs:string"/>
> <xs:element name="OrderDate" type="xs:string" minOccurs="0"/>
> <xs:element ref="ont:Link"/>
> </xs:sequence>
> <xs:attribute name="label" type="xs:string"/>
> </xs:complexType>
> </xs:element>
> <!-- -->
> <xs:element name="Blabla">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="orderLink" type="xs:string"/>
> </xs:sequence>
> <xs:attribute name="linkIDRef" use="required"/>
> </xs:complexType>
> </xs:element>
> <!-- -->
> </xs:choice>
> </xs:complexType>
>
> <!-- -->
> <xs:unique name="UniqueLinkID">
> <xs:selector xpath=".//ont:Link | .//ont:Link"/>
> <xs:field xpath="@ont:linkIDKey"/>
> </xs:unique>
>
> <xs:key name="LinkIDKey">
> <xs:selector xpath=".//ont:Link | .//ont:Link"/>
> <xs:field xpath="@ont:linkIDKey"/>
> </xs:key>
> <xs:keyref name="KeyIDRefLink" refer="ont:LinkIDKey">
> <xs:selector xpath=".//ont:Blabla"/>
> <xs:field xpath="@ont:linkIDRef"/>
> </xs:keyref>
> <!-- -->
>
> </xs:element>
> </xs:schema>
>
>
> <!-- xml-instance **************************************** -->
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <ont:NewDataSet xmlns="http://plirosost.ethz.ch/Ontology/Schema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:ont="http://plirosost.ethz.ch/Ontology/Schema"
> xsi:schemaLocation="http://plirosost.ethz.ch/Ontology/Schema
>
> file:/D:/SA1_OntologyBuilder/XML/meineBsp/customer3_Namespace.xsd">
>
> <Customers>
> <CustomerID>c666</CustomerID>
> <CompanyName>HSR</CompanyName>
> <ContactName>Elly</ContactName>
> <ContactTitle>Frau</ContactTitle>
> <Address>blabla</Address>
> <City>Zürich</City>
> <Region>CH</Region>
> <PostalCode>8041</PostalCode>
> <Link ont:linkIDKey="L1"></Link>
> <Label>label1</Label>
> </Customers>
>
> <Customers>
> <CustomerID>c333</CustomerID>
> <CompanyName>Herisau</CompanyName>
> <ContactName>Claudio</ContactName>
> <ContactTitle>Frau</ContactTitle>
> <Address>blabla</Address>
> <City>Zürich</City>
> <Region>CH</Region>
> <PostalCode>7777</PostalCode>
> <Link ont:linkIDKey="L2">aa</Link>
> <Label>label2</Label>
> </Customers>
>
> <Orders ont:label="label1">
> <OrderID>o333</OrderID>
> <CustomerID>c666</CustomerID>
> <OrderDate>23.07.77</OrderDate>
> <Link ont:linkIDKey="L3">b</Link>
> </Orders>
>
> <Orders ont:label="label1">
> <OrderID>o777</OrderID>
> <CustomerID>c666</CustomerID>
> <OrderDate>23.07.77</OrderDate>
> <Link ont:linkIDKey="L4">bb</Link>
> </Orders>
>
>
>
> <Blabla ont:linkIDRef="L4"> <!-- ***line50*** l4sollte keinen error geben, tut es aber !!!!! -->
> <orderLink>bb</orderLink>
> </Blabla>
>
>
> <Blabla ont:linkIDRef="L5"> <!-- ***line55 ***TODO l5 sollte error geben, tut aber nicht !!!!! ev.
>
> folgefehler von oben!-->
> <orderLink>bb</orderLink>
> </Blabla>
>
> </ont:NewDataSet>
>
>
>
>
Received on Friday, 11 November 2005 11:50:43 UTC