|
I tried to use my EntityResolver with chained
XMLFilters, but the TrAXFilter always reset it to the default
EntityResolver. For example, the following code will never work, because
TrAXFilter.setupParse() will always reset the EntityResolver of the
reader. Should this method first check the reader's current
EntityResolver, and do not reset it if it is not null?
Thanks,
Yueming
SAXParserFactory spf =
SAXParserFactory.newInstance();
spf.setNamespaceAware( true );
spf.setValidating( false );
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setEntityResolver(new
DummyEntityResolver());
SAXTransformerFactory stf =(SAXTransformerFactory) tFactory;
XMLFilter filter1 =
stf.newXMLFilter(template1);
XMLFilter filter2 =
stf.newXMLFilter(template2);
filter1.setParent(reader);
filter2.setParent(filter1);
Transformer transformer =
stf.newTransformer();
SAXSource transformSource = new
SAXSource(filter2, inputSource);
transformer.transform(transformSource,
result);
|
