- From: Eddie Robertsson <eddie@allette.com.au>
- Date: Tue, 04 Sep 2001 09:44:00 +1000
- To: johnsnelson@decisionsoft.com
- CC: xmlschema-dev@w3.org
Hi John, > 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... Both your schemas look correct to me and I believe this is a bug in Xerces-j. I also tested this in XML Spy which also fails by saying that the first example below is valid. The command line version of XSV (XSV 1.202/1.105 of 2001/08/30 16:12:04) correctly fail the first example and finds no errors in the second example. This result is also seen in MSXML4. Cheers, /Eddie > > > 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 19:38:19 UTC