Skip to Content.
Sympa Menu

xom-interest - [XOM-interest] Validation Schema redux

xom-interest AT lists.ibiblio.org

Subject: XOM API for Processing XML with Java

List archive

Chronological Thread  
  • From: Spencer Marks <smarks AT aveksa.com>
  • To: <xom-interest AT lists.ibiblio.org>
  • Subject: [XOM-interest] Validation Schema redux
  • Date: Mon, 26 Jun 2006 14:42:02 -0400

>From searching this list and and others I see that validating an XML
instance with a Schema is not as simple as one would hope.

Here's my tale of woe:

My java code looks like this:

XMLReader xmlReader
XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");

xmlReader.setFeature("http://apache.org/xml/features/validation/schema";,
true);

xmlReader.setProperty("http://apache.org/xml/properties/schema/external-sche
maLocation",
"http://www.w3.org/2001/12/soap-envelope
soap-envelope.xsd " +
"http://www.aveksa.com/schema/system Condition.xsd " +
"http://www.aveksa.com/schema/system
EntitlementData.xsd");


xmlReader.parse(input.xml);

input.xml, Condition.xsd and EntitlementData.xsd all exist in the same
directory.

When run this code I get:

[Error] input.xml:4:100: cvc-elt.1: Cannot find the declaration of element
'tns:entitlement-data'.



My input.xml looks like this:

?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2005 rel. 3 U
(http://www.altova.com)-->
<tns:entitlement-data xmlns:tns="http://www.aveksa.com/schema/system";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

xsi:schemaLocation="http://www.aveksa.com/schema/system
EntitlementData.xsd">

<entitlement-part>
<resources>
<resource fully-qualified-name="payroll_change"
name="payroll_change" />
</resources>
...

EntitlementData.xsd looks starts off like this:


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:tns="http://www.aveksa.com/schema/system";
targetNamespace="http://www.aveksa.com/schema/system";>

but has errors on a line 77 which is:

<xs:complexType name="EntUsers">
<xs:sequence>
<xs:element name="user" type="tns:EntUser" maxOccurs="unbounded"
minOccurs="1" />
</xs:sequence>
</xs:complexType>

and line 88 which is:

<xs:element name="attribute-filter" type="tns:Condition"/>


Basically, it seems like the tns namespace is not being found or declared
correctly, but i am at loss as to why the java validation code does not
work.
Sorry if this is newbie question, but I am stuck after quite a bit of
searching and talking to colleagues. Thanks in advance for any help.

Sam








Archive powered by MHonArc 2.6.24.

Top of Page