469,931 Members | 2,653 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,931 developers. It's quick & easy.

Cannot validate a ".xsd" file (Xerces 2.7.0 C++ on Windows XP)

Hi folks,

I downloaded the binary version of Xerces C++ 2.7.0 for Windows and am
using it to help me get up to speed with XML and XML Schema. So please
excuse me if this is a "novice" question.

In the samples/data directory, I ran the following command for all the
files:

DOMPrint -n -s -f -v=always <filename>

The above command worked for the two ".xml" files. So far, so good.

The above command failed for the ".dtd" files. This is fine because a
".dtd" file is *not* in XML format.

What confuses me is that the above command failed for the ".xsd" file.
The file is "well formed", as I can see if I run DOMPrint on it
*without* the schema validation options. However, when I use the schema
validation options then DOMPrint complains about 128 "validity" errors.

This surprises me because I was expecting to be able to use a
validating
parser (such as Xerces) to validate schemas as well as schema
instances.

Am I doing something wrong? Is there a mistake in the ".xsd" document?
Is there a bug in Xerces?

I am including the ".xsd" file below for people who do not have Xerces
C++.

----start of .xsd file----
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>

<xs:import namespace="http://www.w3.org/XML/1998/namespace">
<xs:annotation>
<xs:documentation>
The schemaLocation of the relevant file is
"http://www.w3.org/2001/xml.xsd"; however,
we don't want to assume people are always
connected to the 'net when playing with this file.
</xs:documentation>
</xs:annotation>
</xs:import>

<xs:element name="personnel">
<xs:complexType>
<xs:sequence>
<xs:element ref="person" minOccurs='1' maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>

<xs:unique name="unique1">
<xs:selector xpath="person"/>
<xs:field xpath="name/given"/>
<xs:field xpath="name/family"/>
</xs:unique>
<xs:key name='empid'>
<xs:selector xpath="person"/>
<xs:field xpath="@id"/>
</xs:key>
<xs:keyref name="keyref1" refer='empid'>
<xs:selector xpath="person"/>
<xs:field xpath="link/@manager"/>
</xs:keyref>

</xs:element>

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="email" minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref="url" minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref="link" minOccurs='0' maxOccurs='1'/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use='required'/>
<xs:attribute name="note" type="xs:string"/>
<xs:attribute name="contr" default="false">
<xs:simpleType>
<xs:restriction base = "xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="salary" type="xs:integer"/>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace"
processContents="skip"/>
</xs:complexType>
</xs:element>

<xs:element name="name">
<xs:complexType>
<xs:all>
<xs:element ref="family"/>
<xs:element ref="given"/>
</xs:all>
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace"
processContents="skip"/>
</xs:complexType>
</xs:element>

<xs:element name="family">
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:string'>
<xs:anyAttribute
namespace="http://www.w3.org/XML/1998/namespace"
processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

<xs:element name="given" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:string'>
<xs:anyAttribute
namespace="http://www.w3.org/XML/1998/namespace"
processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

<xs:element name="email" type='xs:string'/>

<xs:element name="url">
<xs:complexType>
<xs:attribute name="href" type="xs:string" default="http://"/>
</xs:complexType>
</xs:element>

<xs:element name="link">
<xs:complexType>
<xs:attribute name="manager" type="xs:IDREF"/>
<xs:attribute name="subordinates" type="xs:IDREFS"/>
</xs:complexType>
</xs:element>

<xs:notation name='gif' public='-//APP/Photoshop/4.0'
system='photoshop.exe'/>

</xs:schema>
----end of .xsd file----

Regards,
Ciaran.

Nov 23 '05 #1
3 2530
ci***********@iona.com wrote:
Hi folks,

[cut]

You should not post all your xml xsd here,

just look at the message Xalan gives you..
the message will help you locate the problem.
Nov 23 '05 #2
FWIW, I have never gotten the Java version of Xerces (included in the
Sun JRE) to validate a schema.

--
================================================== ======================
Ian Pilcher i.*******@comcast.net
================================================== ======================
Nov 23 '05 #3
ci***********@iona.com wrote:
Hi folks,

I downloaded the binary version of Xerces C++ 2.7.0 for Windows and am
using it to help me get up to speed with XML and XML Schema. So please
excuse me if this is a "novice" question.

In the samples/data directory, I ran the following command for all the
files:

DOMPrint -n -s -f -v=always <filename>

The above command worked for the two ".xml" files. So far, so good.

The above command failed for the ".dtd" files. This is fine because a
".dtd" file is *not* in XML format.
Strictly speaking, a DTD *is* in XML format -- but it uses XML
Declaration Syntax, not XML Document Syntax. A DTD can't therefore
be validated in the same way as an XML document, but it can be checked
for syntax simply by creating a dummy document instance and running
that through software containing a validating parser.
What confuses me is that the above command failed for the ".xsd" file.
The file is "well formed", as I can see if I run DOMPrint on it
*without* the schema validation options. However, when I use the
schema validation options then DOMPrint complains about 128 "validity"
errors.

This surprises me because I was expecting to be able to use a
validating parser (such as Xerces) to validate schemas as well
as schema instances.

Am I doing something wrong? Is there a mistake in the ".xsd" document?
Is there a bug in Xerces?


I can't speak for Xerces, but the XSD file you posted validates with
the DTD for Schemas.

///Peter
--
XML FAQ: http://xml.silmaril.ie/

Nov 23 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by JavaDeveloper | last post: by
1 post views Thread by Vitor Rodrigues | last post: by
1 post views Thread by Jonathan Gibbs | last post: by
1 post views Thread by archana | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.