[
Lists Home |
Date Index |
Thread Index
]
Jessica P. Hekman wrote:
> Hi all. I'm working with JAXP and SAX2, trying to use a custom entity
> resolver, and failing. So far as I can tell, the resolver is not actually
> ever getting any calls to resolveEntity(), so I assume I'm not setting it
> properly and the parser doesn't know about it.
>
> I'm having trouble finding good documentation for how to go about this --
> the doc I've mostly seen seems to refer to SAX1. What I'm doing is:
>
> import javax.xml.parsers.SAXParser;
> import javax.xml.parsers.SAXParserFactory;
> import org.xml.sax.InputSource;
> import org.xml.sax.XMLReader;
> [...]
> SAXParserFactory factory = SAXParserFactory.newInstance();
> SAXParser parser = factory.newSAXParser();
> XMLReader xmlReader = parser.getXMLReader();
> MyEntityResolver er = new MyEntityResolver();
> xmlReader.setEntityResolver(er);
> parser.parse (new InputSource (...), handler);
And you want to ... be handled through your entity resolver? In that
case you must resolve entity manually as JAXP doesn't use EntityResolver
for parse method:
parser.parse(er.resolveEntity("", "..."), handler);
Your entity resolver should be used for resolving all entites in your
files (like external DTD, external text entities, ...) automatically. If
not, something is wrong with either your entity resolver or your parser.
Jirka
--
-----------------------------------------------------------------
Jirka Kosek
e-mail: jirka@kosek.cz
http://www.kosek.cz
S/MIME Cryptographic Signature
|