This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

SAXTransformerFactory/XMLFilter in pipe?


If I have a SAXTransformerFactory and generates sax XMLfilters from some 
stylesheets, like this:

SAXTransformerFactory stf = (SAXTransformerFactory) tfactory;

XMLFilter filter1 = stf.newXMLFilter(new StreamSource(xslID_1));
XMLFilter filter2 = stf.newXMLFilter(new StreamSource(xslID_2));
XMLFilter filter3 = stf.newXMLFilter(new StreamSource(xslID_3));

filter1.setParent(reader);
filter2.setParent(filter1);
filter3.setParent(filter2);
filter3.setContentHandler(new ExampleContentHandler());

Since the filter has SAX as input and output. Does this mean that for 
each filter a new DOM tree has to be build from the SAX events, then the 
stylesheet is applied / transforming the DOM tree, then the DOM tree is 
walked to produce new SAX events, witch is then used for input to 
another filter...? Is that correct?

If that is the case, then why use SAXTransformerFactory att all? The 
events will never reach the next filter, before the transformation is 
finish and the DOM is walked to generate SAX events.

What about Xalan stree? From the xalan javadoc: "The primary feature of 
the Stree is that nodes can be parsed on one thread, while they are 
being read on another thread. If a requested child node has not yet 
arrived, the reading thread will wait until the parse thread has 
produced the node...." Does this mean that xalan will start reporting 
sax events to the next filter in line before the transformation on the 
previous filter  is finished?


Niels Peter


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]