Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
problem reusing xmlfilters

problem reusing xmlfilters

2003-04-11       - By Simon Stanlake

hi,
I've made a small modification to the UseXMLFilters example that ships with
Xalan to try and reuse the XMLFilter on more than one xml source.  I have a
system that receives multiple xml inputs and needs to transform them with
the same set of 3 stylesheets.  The xmlfilter creation step accounts for 3/4
of my processing time so I'd like to not have to recreate it for every
request (there are thousands!)

Here's the code...

public class UseXMLFilters
{
 public static void main(String[] args)
  throws TransformerException, TransformerConfigurationException,
        SAXException, IOException
  {

    TransformerFactory tFactory = TransformerFactory.newInstance();

   if (tFactory.getFeature(SAXSource.FEATURE) &&
tFactory.getFeature(SAXResult.FEATURE))
   {

     SAXTransformerFactory saxTFactory = ((SAXTransformerFactory)
tFactory);

     StreamSource foo1 = new StreamSource("foo1.xsl");
     StreamSource foo2 = new StreamSource("foo2.xsl");
     StreamSource foo3 = new StreamSource("foo3.xsl");
     Templates t1 = saxTFactory.newTemplates(foo1);
     Templates t2 = saxTFactory.newTemplates(foo2);
     Templates t3 = saxTFactory.newTemplates(foo3);
     XMLFilter xmlFilter1 = saxTFactory.newXMLFilter(t1);
     XMLFilter xmlFilter2 = saxTFactory.newXMLFilter(t2);
     XMLFilter xmlFilter3 = saxTFactory.newXMLFilter(t3);

     XMLReader reader = XMLReaderFactory.createXMLReader();

     // Create an XMLReader.
     // xmlFilter1 uses the XMLReader as its reader.
     xmlFilter1.setParent(reader);

     // xmlFilter2 uses xmlFilter1 as its reader.
     xmlFilter2.setParent(xmlFilter1);

     // xmlFilter3 uses xmlFilter2 as its reader.
     xmlFilter3.setParent(xmlFilter2);

     // xmlFilter3 outputs SAX events to the serializer.
     Serializer serializer = SerializerFactory.getSerializer

(OutputProperties.getDefaultMethodProperties("xml"));
     serializer.setOutputStream(System.out);
     xmlFilter3.setContentHandler(serializer.asContentHandler());

     for (int i = 1; i <= 2; i++){
        System.out.println("Trial " + i);
       

        reader.parse(new InputSource("foo" + i + ".xml"));

      }
   }
 }
}

On the second iteration, I get a nullpointerexception from the
Parser2.parseInternal method.  I've tried several ways of getting the same
result but no luck.  I have a sneaky suspicion that some streams are being
closed the first time through.  If I just create a transformer from one
stylesheet and reuse that, it works ok.  as soon as I use filter chains, it
dies.  Can anyone shed some light?



Greatly appreciated,
Simon