I've one more query: If there are some validation(fatal) errors in the input XML file, then we aren't getting the endDocument callback. Is there any workaround for the same?
Harsh Gupta Adobe Systems Michael Glavassevich-3 wrote: > > You could write an XMLFilter [1] which wraps the XMLReader and pass that > to the Transformer instead. > > [1] > http://xerces.apache.org/xerces2-j/javadocs/api/org/xml/sax/XMLFilter.html > > Michael Glavassevich > XML Technologies and WAS Development > IBM Toronto Lab > E-mail: mrgla...@ca.ibm.com > E-mail: mrgla...@apache.org > > Harsh_Gupta <har...@adobe.com> wrote on 12/06/2012 09:11:15 AM: > >> We want to get startDocument callback in following scenarios: >> - When any input xml file is parsed before doing transformation. >> - Or when any file is opened using document function of XSLT. >> >> Even after registering our own ContentHandler object in xmlReader > object, we >> aren't getting any callbacks. While debugging the xalan code, I found > that >> before parsing the input XML file, xalan is overriding the user supplied >> ContentHandler object, LexicalHandler object and DTDHandler object. >> >> Is there any way/workaround to get the callbacks? Any help would be >> appreciated. >> >> The code that we are using is as follows: >> >> String inputFilePath = >> "C:\\Users\\harshg.ADOBENET\\Desktop\\BugFiles\\document\\entity.xml"; >> String xslFilePath = >> "C:\\Users\\harshg.ADOBENET\\Desktop\\BugFiles\\document\\vendor.xsl"; >> String outputFilePath = >> "C:/Users/harshg.ADOBENET/Desktop/BugFiles/document/Data-out1.xml"; >> >> //1) Created the XMLReader and registered the ContentHandler as follows: > >> XMLReader m_xmlReader = >> SAXParserFactory.newInstance().newSAXParser().getXMLReader(); >> m_xmlReader.setContentHandler(new FMSAXEventHandler()); >> >> //2) Created the TransformerFactory as follows: >> System.setProperty("javax.xml.transform.TransformerFactory", >> "org.apache.xalan.processor.TransformerFactoryImpl"); >> TransformerFactory m_tFactory = TransformerFactory.newInstance(); >> m_tFactory.setURIResolver(new FMURIResolver()); >> >> //3) Created the transformer as follows: >> Transformer transformer = m_tFactory.newTransformer(new StreamSource(new >> File(xslFilePath).toURI().toURL().toExternalForm())); >> >> //4) Transforming the input file as follows: >> transformer.transform(new SAXSource(m_xmlReader, new InputSource(new >> File(inputFilePath).toURI().toURL().toExternalForm())), new > StreamResult(new >> OutputStreamWriter(new FileOutputStream(outputFilePath), "UTF-8"))); >> >> >> Thanks! >> Harsh Gupta >> Adobe Systems > -- View this message in context: http://old.nabble.com/ContentHandler.startDocument-callback-not-coming%2C-while-transforming-the-input-XML-File.-tp33999640p34007137.html Sent from the Xalan - J - Users mailing list archive at Nabble.com.