Do you have a stack trace from the error that occurs when the DTD file cannot be found? This might provide a clue. I just really don't have the time at the moment to try to recreate this here and think about what's going wrong. But a stack trace might provide a quick hint.
Gary -----Original Message----- From: Yueming Xu [mailto:[EMAIL PROTECTED]] Sent: Wednesday, October 17, 2001 12:47 PM To: [EMAIL PROTECTED] Subject: How to setEntityResolver when XMLFilter is used? 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);
