  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | Another user with schema validation woes | Another user with schema validation woes 2006-06-26 - By Spencer Marks
Back >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:
SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true); builder.setFeature("http://apache.org/xml/features/validation/schema", true); builder.setProperty("http://apache.org/xml/properties/schema/external-schema Location", "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"); Document doc = builder.build(input.xml);
input.xml, Condition.xsd and EntitlementData.xsd all exist in the same directory.
When run this code I get:
Exception in thread "main" org.jdom.input.JDOMParseException: Error on line 4 of document file:///Users/sam/temp.xml: cvc-elt.1: Cannot find the declaration of element 'tns:entitlement-data'. at org.jdom.input.SAXBuilder.build(SAXBuilder.java:465)
I am trying to figure out why the "tns" namespace is not getting picked up correctly.
My input.xml looks like this:
?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"?> <!--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 like this:
<?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"?> <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 repeat question, but I am stuck after quite a bit of searching and talking to colleagues. Thanks in advance for any help.
Sam
__ ____ ____ ____ ____ ____ ____ ____ ____ ____ To control your jdom-interest membership: http://www.jdom.org/mailman/options/jdom-interest/youraddr@(protected)
|
|
 |