Synopsis
This simple transformer that can be useful for debugging any XML pipeline. It saves as a regular XML file, the SAX stream it receives. In this way we can save a snapshot of any given step of a XML pipeline.
There are other alternatives for this purpose, like these ones:
- The
SourceWritingTransformer
. Requires you to code the desired output location in the XML stream. Views
. But there are cases where views aren't useful like a sub-pipeline that is called from other pipeline through thecocoon:
protocol, and the sub-pipeline cannot be invoked directly, because the main one has set some environment like request attributes.LogTransformer
. Gives a detailed log of each received SAX event, but you don't have a usable XML file.Profiler
. It gives you a lot of features, but slows down your pipeline and increases memory usage.
Usage
Here is the component declaration:
<map:transformer name="foto" src="fcc.ima.cocoon.FotoTransformer"/>
And its a sample usage in a pipeline:
<map:generate src="my-source.xml"/> <map:transform src="my-stylesheet1.xsl"/> <map:transform type='foto' src='snapshots/snapshot1.xml'/> <map:transform src="my-stylesheet2.xsl"/> <map:transform type='foto' src='snapshots/snapshot2.xml'/> <map:serialize type='html'/>
As you can see you name the output file through the src
attribute. It supports any URI
scheme supported by Cocoon
Source code
It is included in the attachments.
Attachment: MiXMLPipe.java
Attachment: FotoTransformer.java