[jdom-interest] schema validation fails after switching from Xerces 2.1.0 to 2.2.0
Scott Cantor
scottcantor at yahoo.com
Tue Nov 5 14:13:12 PST 2002
Thanks, that explains it! BTW, I was also prepared to
complain that the external-schemaLocation property
doesn't work either with Xerces 2.2.0 when using
namespaces... but I have since located that problem as
well in the bug database:
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13614
These are definitely not the kinds of problems you'd
expect to creep into a maintenance release! Ouch!
--- Norrman Per <per.norrman at canovia.se> wrote:
> Hi,
>
> it's a Xerces bug.
>
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13719
> You can stop being lost.
>
> /pmn
>
> -----Original Message-----
> From: Scott Cantor [mailto:scottcantor at yahoo.com]
> Sent: Tuesday, November 05, 2002 2:02 AM
> To: jdom-interest at jdom.org
> Subject: [jdom-interest] schema validation fails
> after switching from Xerces
> 2.1.0 to 2.2.0
>
>
> As the subject says, none of my XML files and
> associated schemas will validate using JDOM B8 with
> the Xerces 2.2.0 parser. Everything worked great
> before using Xerces 2.1.0. I am at a total loss
> what's causing this other than it being a problem
> with
> either JDOM B8 or Xerces 2.2.0. Since I'm using
> JDOM
> as the front end, I thought I'd start here first.
>
> Environment: J2SDK 1.4.0.02 on Windows (also fails
> on
> Solaris).
>
> Test code:
>
> ************************
> * schematest.java:
>
> import org.jdom.*;
> import org.jdom.input.*;
> import java.io.*;
>
> public class schematest
> {
> public static void main(String[] args)
> {
> try
> {
> SAXBuilder builder
> = new
>
SAXBuilder("org.apache.xerces.parsers.SAXParser",true);
>
> builder.setFeature
>
("http://apache.org/xml/features/validation/schema",true);
>
> builder.setFeature
> ("http://xml.org/sax/features/validation",true);
>
> builder.setProperty
>
("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation
> ",
> "file:///c:/test/test.xsd");
>
> Document doc = builder.build(new File(args[0]));
>
> System.out.println("loaded");
> }
> catch (Exception k)
> {
> System.out.println("caught: " + k.toString());
> k.printStackTrace(System.out);
> }
> }
> }
>
> ************************
> * test.xml:
>
> <?xml version="1.0" ?>
>
> <test>
>
> </test>
>
> ************************
> * test.xsd:
>
> <?xml version="1.0"?>
> <xsd:schema
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> version="1.0">
>
> <xsd:element name="test" >
> <xsd:complexType>
> <xsd:sequence>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
>
> </xsd:schema>
>
> ******
>
> Assuming I have the following directory structure:
>
> c:\test
> - jdom.jar
> - schematest.java
> - schematest.class
> - test.xsd
> - test.xml
> c:\test\210
> - xercesImpl.jar (Xerces 2.1.0)
> - xmlParserAPIs.jar (Xerces 2.1.0)
> c:\test\220
> - xercesImpl.jar (Xerces 2.2.0)
> - xmlParserAPIs.jar (Xerces 2.2.0)
>
> I can do this:
>
> set
>
classpath=.\jdom.jar;.\210\xercesImpl.jar;.\210\xmlParserAPIs.jar;.
> java schematest test.xml
>
> or this:
>
> java
>
-Xbootclasspath/p:.\210\xercesImpl.jar;.\210\xmlParserAPIs.jar
> schematest test.xml
>
> ...and it prints out this:
>
> loaded
>
> But if I do this:
>
> set
>
classpath=.\jdom.jar;.\220\xercesImpl.jar;.\220\xmlParserAPIs.jar;.
> java schematest test.xml
>
> or this:
>
> java
>
-Xbootclasspath/p:.\220\xercesImpl.jar;.\220\xmlParserAPIs.jar
> schematest test.xml
>
> ...it prints out this:
>
> caught: org.jdom.JDOMException: Error on line 3 of
> document file:/C:/test/test.x
> ml: cvc-elt.1: Cannot find the declaration of
> element
> 'test'.
> org.jdom.JDOMException: Error on line 3 of document
> file:/C:/test/test.xml: cvc-elt.1: Cannot find the
> declaration of element 'test'.
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:363)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:707)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:689)
> at schematest.main(schematest.java:29)
> Caused by: org.xml.sax.SAXParseException: cvc-elt.1:
> Cannot find the declaration of element 'test'.
> at
>
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> ... 3 more
> Caused by: org.xml.sax.SAXParseException: cvc-elt.1:
> Cannot find the declaration of element 'test'.
> at
>
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:354)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:707)
> at
> org.jdom.input.SAXBuilder.build(SAXBuilder.java:689)
> at schematest.main(schematest.java:29)
>
>
> Any ideas?
>
> Thanks,
> Scott
=== message truncated ===
__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/
More information about the jdom-interest
mailing list