[jdom-interest] Using XSD schema to validate a JDOM tree
Olivier Coppel
olivier.coppel at akazi.com
Tue Sep 17 05:37:42 PDT 2002
Hi,
I succeed in validating JDOM tree with an XSD schema by :
1) using method "setValidation( true )" of org.jdom.input.SAXBuilder class
2) adding "xsi:schemaLocation="myNamespace myXSDSchemaFile" attribute in
every file I want to validate
It works very well. I've tried it sucessfully.
The problem is that I don't want to add "xsi:schemaLocation" attribute in
every XML file.
I've read that there is a way to specify the name of the XSD schema directly
in my program by using parser properties :
1) propertie "http://java.sun.com/xml/jaxp/properties/schemaLanguage" with
value "http://www.w3.org/2001/XMLSchema"
2) propertie "http://java.sun.com/xml/jaxp/properties/schemaSource" with
value "File(myXSDSchemaFile)"
First, I have to overload the protected method "configureParser(XMLReader
parser, SAXHandler contentHandler)" of SAXBuilder by doing :
protected void configureParser(XMLReader parser, SAXHandler
contentHandler)
throws Exception {
super.configureParser( parser, contentHandler );
try {
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
parser.setProperty(
"http://java.sun.com/xml/jaxp/properties/schemaSource", new
File("myXSDSchemaFile") );
}
catch (SAXNotRecognizedException x) {
}
}
But it doesn't work. It seems that only validation by DTD works but not with
XSD schema.
I used:
. JDK 1.3.1
. JDOM Beta 7
. the parser is default parser Xerces 1.4.4
. Jaxp 1.1
I tried with Xerces 2.1, Jaxp 1.2 but the result is the same ... it doesn't
work.
Is there a way to solve this problem ?
Thanks.
Olivier Coppel
More information about the jdom-interest
mailing list