http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2510

*** shadow/2510 Mon Jul  9 01:21:51 2001
--- shadow/2510.tmp.7688        Mon Jul  9 01:21:51 2001
***************
*** 0 ****
--- 1,56 ----
+ +============================================================================+
+ | traverseImport does not use parsers EntityResolver                         |
+ +----------------------------------------------------------------------------+
+ |        Bug #: 2510                        Product: Xerces-J                |
+ |       Status: NEW                         Version: 1.2.3                   |
+ |   Resolution:                            Platform: All                     |
+ |     Severity: Major                    OS/Version: Other                   |
+ |     Priority: Other                     Component: Schema-Structures       |
+ +----------------------------------------------------------------------------+
+ |  Assigned To: [EMAIL PROTECTED]                                  |
+ |  Reported By: [EMAIL PROTECTED]                                 |
+ |      CC list: Cc:                                                          |
+ +----------------------------------------------------------------------------+
+ |          URL:                                                              |
+ +============================================================================+
+ |                              DESCRIPTION                                   |
+ The traverseImport(Element importDecl) method in 
+ org/apache/xerces/validators/schema/TraverseSchema.java uses it�s own 
+ EntityResolver and does not utilize the EntityResolver set at the Parser.
+ 
+ The method should first consult the EntityResolver set at the parser and only 
+ if that does not return an InputSource try to use it�s own EntityResolver.
+ 
+ To reproduce an Error:
+ 
+ Use a simple extension of org.apache.apache.xerces.readers.XMLCatalogHandler as 
+ an EntityResolver at your parser. At the XMLCatalogHandler add a mapping for 
+ the following system identifiers to a private internal URI scheme.
+ 
+ myCatalog.addSystemMapping
+ ("http://www.w3.org/2001/xml.xsd","org.apache.java.resource:/org/apache/test/xml
+ .xsd");
+ 
+ parser.setEntityResolver(myCatalog);
+ 
+ xmlReader.setProperty("http://apache.org/xml/properties/schema/external-
+ schemaLocation","http://www.w3.org/2001/XMLSchema 
+ org.apache.java.resource:/org/apache/test/XMLSchema.xsd");
+ 
+ The resolveEntity method of the XMLCatalog should be able to load resource from 
+ the java classpath via this private URI scheme. Add XMLSchema.xsd, 
+ XMLSchema.dtd, datatypes.dtd and xml.xsd from W3C to the org.apache.test 
+ package.
+ 
+ Enable schema validating and namespaces at the parser and try to validate eg. 
+ personal-schema.xml or personal.xsd.
+ 
+ The following happens:
+ 
+ The XMLCatalog/EntityResolver is called for XMLSchema.xsd, XMLSchema.dtd, 
+ datatypes.dtd and xml.xsd.
+ 
+ Than the ErrorHandler set at the parser will report an Error that it could not 
+ find org.apache.java.resource:/org/apache/test/XMLSchema.dtd and an Exception 
+ caused by traverseImport(Element importDecl) not calling the parsers 
+ EntityResolver is thrown.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to