In the following code, I tried to use my DummyEntityResolver, so it won't check for the existence of the DTD file for the incoming XML.  However, it does not work.  It always tries to resolve the DTD file.  What is wrong with this code?
 
Thanks,
Yueming
 
// Setup reusable templates
TransformerFactory tFactory =TransformerFactory.newInstance();
Templates template1 = tFactory.newTemplates(new StreamSource(stylesheet1));
Templates template2 = tFactory.newTemplates(new StreamSource(stylesheet2));
 
// Set up to read the input file
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware( true );
spf.setValidating( false );
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setEntityResolver(new DummyEntityResolver());
 
// Set up the output stream
StreamResult result = new StreamResult("result.txt");
// Set up the input stream
BufferedInputStream bis =
new BufferedInputStream(new FileInputStream(datafile));
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, new InputSource(bis));
transformer.transform(transformSource, result);

Reply via email to