DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17382>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17382 Setting external-schemaLocation causes java.lang.ClassCastException Summary: Setting external-schemaLocation causes java.lang.ClassCastException Product: Xerces2-J Version: 2.3.0 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Blocker Priority: Other Component: DOM AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have an application that uses Xerces for XML Schema validation. I previously used Xerces-2.0.1 but had dissided to upgrade to Xerces-2.3.0. The application run without any problem with Xerces-2.0.1 but fails with an java.lang.ClassCastException when running with Xerces-2.3.0. I have isolated the problem and written a small program that illustrates the problem. The program is shown below: --- xerces_test.java --- import java.io.*; import org.xml.sax.SAXException; import org.xml.sax.*; import org.w3c.dom.Document; import org.w3c.dom.DocumentType; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Element; import org.w3c.dom.Text; import org.apache.xerces.parsers.DOMParser; import java.util.*; import java.security.*; class SOAPErrorHandler implements ErrorHandler { private String m_sErrorText = ""; private boolean m_bSchemaValid = true; private void catchError(SAXParseException exception) { m_sErrorText += exception.getMessage(); m_bSchemaValid = false; } public void error(SAXParseException exception){catchError(exception);} public void fatalError(SAXParseException exception){catchError (exception);} public void warning(SAXParseException exception){catchError(exception);} public boolean isSchemaValid() { return( m_bSchemaValid ); } public String getErrorText() { return( m_sErrorText ); } } public class xerces_test { public static void main( String args[] ) throws Exception{ System.out.println( "Tester stated..." ); DOMParser parser = new DOMParser(); parser.setFeature("http://xml.org/sax/features/namespaces", true); parser.setFeature("http://xml.org/sax/features/validation", true); parser.setFeature ("http://apache.org/xml/features/validation/schema", true); // Make sure to validate SOAP elements against XML Shchema. String schemaLocation = "http://schemas.xmlsoap.org/soap/envelope/ http://intranet/temp/envelope.xsd"; parser.setProperty ("http://apache.org/xml/properties/schema/external-schemaLocation", schemaLocation); SOAPErrorHandler err = new SOAPErrorHandler(); parser.setErrorHandler(err); System.out.println( "Beginning to parse..." ); // Parse posted XML and check weather XML comforms with SOAP specification. try { parser.parse( args[0]); }catch( SAXParseException e) { System.out.println( "Error parsing request. Parser returned: " + err.getErrorText() ); return; } if( !err.isSchemaValid() ) { System.out.println( "XML document does not conform with SOAP and/or xsql specifications. Parser returned: " + err.getErrorText() ); return; } System.out.println( "Source valid..." ); } } --- END OF FILE --- When running with Xerces-2.3.0 i get the folling exception. Tester stated... Beginning to parse... Exception in thread "main" java.lang.ClassCastException: org.apache.xerces.impl.dv.xs.ListDV$ListData at org.apache.xerces.impl.xs.XMLSchemaLoader.processExternalHints (Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.reset(Unknown Source) at org.apache.xerces.parsers.BasicParserConfiguration.reset(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.reset(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at xerces_test.main(xerces_test.java:54) Line 54 in xerces_test.java is "parser.parse( args[0]);". The program runs without problems with Xerces-2.2.1 as well. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
