>Am I missing something here? If the document has no > DOCTYPE declaration there's no DTD to load.
Before using the XMLReader, I set my own EntitResolver2 implementation as the XMLReader's entityResolver. On running in a debugger, For documents that *do* bear a DOCTYPE declaration, I see the following method on my entityResolver getting invoked: public InputSource resolveEntity( String name, String publicId, String baseURI, String systemId ) This method is getting invoked only *once* when the first document is encountered. It is not invoked for any future documents, so I can see that the caching works. (If I don't configure the parser with a grammar pool, this method is called over and over for each new XML document). For documents that don't have a DOCTYPE, the following entityResolver method is called: public InputSource getExternalSubset( String name, String baseURI ) This gets called over and over, despite a matching grammar being found in the pool. I know that because I pre-populate the pool with a grammar that has an empty XMLGrammarDescription ("::::"). Breakpointing on XMLGrammarPoolImpl.getGrammar(XMLGrammarDescription desc) shows this grammar being returned for documents without DOCTYPE...and yet, I see the DTD being scanned. Does this make sense? I'd be happy to provide any more information. Thanks for your responses. -Raj --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]