Subject: RE: [xsl] Saxon Serializing and COntentHandler From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 17 Dec 2004 21:24:18 -0000 |
It's possible to do this entirely with JAXP interfaces, you don't need to resort to Xalan-specific or Saxon-specific methods. This relies on the fact that a serializer is simply an identity transformer from a SAX source to a Stream result: TransformerHandler serializer = TransformerFactory.getTransformerHandler(); serializer.getTransformer().setOutputProperties(properties); serializer.setResult(new StreamResult(System.out)): xmlFilter2.setContentHandler(serializer); You can do it using lower-level Saxon methods if you prefer, this gives you a bit more control but it's trickier because there are more objects to manage and more things to get wrong (and it's likely to change a bit from one release to the next). You're almost there, but it's probably best to use the same Configuration and NamePool throughout the pipeline, so rather than creating a new Configuration, get the one that's already used for the transformation, e.g. as ((Controller)((Filter)xmlFilter2).getTransformer()).getConfiguration(); Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Neville Thomas [mailto:nthomas@xxxxxxxxx] > Sent: 17 December 2004 19:11 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Saxon Serializing and COntentHandler > > In Xalan I am able to do the following: > > Serializer serializer = SerializerFactory.getSerializer > > (OutputPropertiesFactory.getDefaultMethodProperties("xml")); > serializer.setOutputStream(System.out); > xmlFilter2.setContentHandler(serializer.asContentHandler()); > > How will I acheive similar with Saxon8b. > I tried using that ContentEmitter along with the > ReceivingContentHandler > (see below) but I dont think I am setting up the Configuration Object > properly. > > Properties xep = new Properties(); > NamePool np = NamePool.getDefaultNamePool(); > Configuration config = new Configuration(); > config.setNamePool(np); > > XMLEmitter xe = new XMLEmitter(); > xe.setStreamResult(new StreamResult(new PrintWriter(System.out, > true))); > xe.setOutputProperties(xep); > xe.setConfiguration(config); > > ReceivingContentHandler rch = new ReceivingContentHandler(); > rch.setReceiver(xe); > rch.setNamePool(np); > xmlFilter2.setContentHandler(rch); > xmlFilter2.parse(new InputSource("SouthPole.xml")); > > > Neville > > -- > ================================================================== > Virtual Technology Corporation | 5510 Cherokee Rd, Suite 350 > | Alexandria, VA 22312-2300 > _/ _/_/_/_/_/_/_/_/_/ | > _/ _/ | > _/ _/ _/ _/_/_/_/ | Neville Thomas > _/ _/ _/ _/ | E-Mail addr: nthomas@xxxxxxxxx > _/ _/ _/ _/ | Office : 703.333.6233 > _/_/ _/ _/ | Fax : 703.658.7057 > _/ _/ _/_/_/_/ | > | > =================================================================== > "Software and Systems Engineering Professionals." > ===================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Saxon Serializing and COntent, Neville Thomas | Thread | Re: [xsl] Saxon Serializing and COn, Neville Thomas |
RE: [xsl] Comparing nodes in axis, Michael Kay | Date | [xsl] merging document from filelis, Breygin, Victor |
Month |