The processing part of a Pipeline. Its inputs and outputs are both SAX events. The output stream is the result of some processing, which may involve an XSLT transformation.
Declaration
<map:transformers default="xslt"> <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer"> <use-store map:value="true"/> <use-request-parameters map:value="false"/> <use-browser-capabilities-db map:value="false"/> </map:transformer> <map:transformer name="log" src="org.apache.cocoon.transformation.LogTransformer"/> ... </map:transformers>
The default
attribute on the transformers element indicates the default transformer to use if a pipeline does not explicitly declare one.
Usage
Sample usage:
<map:match pattern="hello.html"> <map:generate src="docs/samples/hello-page.xml"/> <map:transform src="stylesheets/page/simple-page2html.xsl"/> <map:serialize type="html"/> </map:match>
Standard Transformers
The simplest transformer provided is the XalanTransformer (and presumably one of these performing an identity transform). Several transformers are provided with Cocoon:
- XSLTTransformer – reads XSLT stylesheet from file system or URL and transforms the event stream using it. Can use several XSLT implementations
- I18NTransformer – uses XML dictionary to translate content into other languages
- Log Transformer – useful for debugging, copies SAX events into a file or the STDOUT of the servlet engine. Not thread safe
- SQLTransformer – allows interaction with a database, produces XML results from database data. cf: OracleXSQL
- Filter Transformer – allows filtering of content, particularly useful with SQLTransformer, as it allows results to be chunked into pages.
- Read/Write DOM Session Tranformers – extracts a DOM object from the session and inserts it into the SAX event stream
- XInclude Transformer – XInclude implementation, performs inclusions if XInclude elements present in stream
- CInclude Transformer – 'Cocoon Include', cocoon-specific, but higher performing and more versatile.
- XT Transformer – allows use of XT, which isn't TRAX compatible
- LDAP Transformer – allows querying of LDAP directory, not part of distribution
- LuceneIndexTransformer – creates Lucene indexes, for searching. Available in the Lucene block in C2.1.
Additional Transformers
- Xindice] – interact with an XML database (such as [http://xml.apache.org/xindice/).
- BetwixtTransformer – serialize a Bean to XML using Betwixt (analogue to CastorTransformer).