RE: [xml-dev] Fast text output from SAX?

From
Michael Kay <>
To
'Andrew Welch' <>
Date
2004-04-13T15:16:07Z
ID
<20040413151612.TZJJ19035.mta06-svc.ntlworld.com@Turtle>
Thread
RE: [xml-dev] Fast text output from SAX?
> I've often had the requirement to alter/add to the xml as it passed
> through a set of SAXFilters.  I've always been under the 
> impression that
> to write out the xml at the end of the filter chain I either 
> needed to:
> 
> A) use DM's XMLWriter or similar
> 
> or 
> 
> B) use a SAXTransformerFactory which allowed me to use setResult() to
> give it a Writer.
> 
> Other than that I thought the SAX events were 'lost' by the handler,
> which I've always considered odd.  For me, the handler should have the
> ability to write out the xml inbuilt into it, without the need for
> XMLWriter or SAXTransformerFactory.

I'm confused. What do you mean by "the handler"?
> 
> Reading here,
> 
> http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/sa
> x/SAXTrans
> formerFactory.html#newTransformerHandler()
> 
> you can see how I made my assumption.

Sorry, I don't understand what assumption you made, let alone how you made
it!

> How does Saxon go from 
> sax events to a Result using an empty TransformerHandler()?

The IdentityTransformerHandler gets SAX events in (originating typically
from a DOMSource, a SAXSource, or a StreamSource), and passes them straight
through to an output method associated with a DOMResult, SAXResult, or
StreamResult. It's a dozen lines of code.

> Is there anything like
> the performance costs of building a tree for the source and 
> performing a transform?  
> 
No.

Michael Kay