Pull processing
Saxon has for a number of releases included a sample module StaxBridge that allows
Saxon to take input from a StAX parser (JSR 173) (specifically from an XMLStreamReader).
This component is now included in the product, as class net.sf.saxon.pull.StaxBridge.
To see how to use Saxon with the StAX parser, see the examples in PullExamples.java in the
samples/java directory. A StaxBridge object is like a SAXSource object
in that it encapsulates a reference to the parser and a reference to the file being parsed; it implements the
JAXP Source interface so it can be used directly as an argument to methods
like Transformer.transform().
This code has been tested with the Sun implementation, SJSXP, and with the Woodstox parser. In both cases the parser must be separately installed. Note that if you want to recompile the Saxon source code and you do not have SJSXP installed, you can simply remove the StaxBridge module from the compilation.
Normally the StaxBridge class will pick up whichever StAX parser is present on the Java classpath. To
choose a specific parser, set the system property javax.xml.stream.XMLInputFactory to
the relevant implementation class. For SJSXP this is com.sun.xml.stream.ZephyrParserFactory.
For Woodstox it is com.ctc.wstx.stax.WstxInputFactory.