- From: John Snelson <jpcs@decisionsoft.com>
- Date: Wed, 03 Oct 2001 10:08:41 +0100
- To: xmlschema-dev@w3.org
I am trying to write a schema for a data format, and am using xerces-j
to validate a document, as this is the target application. I have come
accross a couple of problems, and I don't know whether xerces-j is
wrong, or my understanding of XML Schema is wrong. I wonder if anyone
can put me straight on this...
Thank you in advance,
John
Problem 1:
---------
I am sure that this document should fail the schema, but it does not.
bug1.xml:
<?xml version='1.0'?>
<blah xmlns="blah.com"
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='blah.com bug1.xsd'>
<fredHolder name="holder1">
<fredHolder name="holder5"/>
</fredHolder>
<fredRef ref="holder3"/>
</blah>
bug1.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="blah.com"
xmlns="blah.com"
xmlns:blah="blah.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xsd:element name="fredHolder">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="fredHolder" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:unique name="myUnique">
<xsd:selector xpath="."/>
<xsd:field xpath="@name"/>
</xsd:unique>
</xsd:element>
<xsd:element name="blah">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="fredHolder"/>
<xsd:element name="fredRef">
<xsd:complexType>
<xsd:attribute name="ref" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:keyref name="myRef" refer="myKey">
<xsd:selector xpath="blah:fredRef"/>
<xsd:field xpath="@ref"/>
</xsd:keyref>
<xsd:key name="myKey">
<xsd:selector xpath=".//blah:fredHolder"/>
<xsd:field xpath="@name"/>
</xsd:key>
</xsd:element>
</xsd:schema>
Problem 2:
---------
I am sure that this document should pass, but it does not.
bug2.xml:
<?xml version='1.0'?>
<fredHolder xmlns="blah.com"
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='blah.com bug2.xsd'>
<fred name="alfred"/>
<fredHolder>
<fred name="alfred"/>
</fredHolder>
</fredHolder>
bug2.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="blah.com"
xmlns="blah.com"
xmlns:blah="blah.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<xsd:element name="fredHolder">
<xsd:complexType>
<xsd:choice maxOccurs="2">
<xsd:element name="fred">
<xsd:complexType>
<xsd:attribute name="name"/>
</xsd:complexType>
</xsd:element>
<xsd:element ref="fredHolder"/>
</xsd:choice>
</xsd:complexType>
<xsd:unique name="myUnique">
<xsd:selector xpath="./blah:fred"/>
<xsd:field xpath="@name"/>
</xsd:unique>
</xsd:element>
</xsd:schema>
--
John Snelson, Software Engineer DecisionSoft Ltd.
Telephone: +44-1865-203192 http://www.decisionsoft.com
Received on Wednesday, 3 October 2001 05:08:44 UTC