The relayTransformer mediator applies the specified XSLT transformation to the selected element of the current message payload. The source attribute specifies which element to be selected to apply the given XSLT transfomation. In the case where the source element is not specified, it uses the first child of the soap body as the selected element. Optionally parameters could be passed into the transformations through the 'property' elements. These properties are corresponding to the XSL parameters and can be accessed during transformation by <xsl:param name="{the name of the property}" />. The 'feature' element defines any features which should be explicitly set to the TransformerFactory. The feature 'http://ws.apache.org/ns/synapse/transform/feature/dom' turns on DOM based transformations instead of serializing elements into Byte streams and/or temporary files. Though this would be better in performance than using byte streams, sometimes it may not work for all transformations.
Finally, the 'resource' element can be used to resolve XSLT imports and includes from the repository. It works in exactly the same way as the corresponding element in a <proxy> definition (Proxy Service).
The Relay Transformer Mediator supports all the features provided by the XSLT mediator. In addition to those features, it supports streaming transformation, where the incoming stream is given directly to the underlying XSLT processor to do the XSLT transformation. When using the Relay Transformer mediator in streaming mode, the ESB should be started in Message Relay mode. This will give high performance numbers.
<relayTransformer key="string" [input="xml|stream"] [source="xpath"]> <property name="string" (value="literal" | expression="xpath")/>* <feature name="string" value="true| false" />* <resource location="string" key="string"/>* </relayTransformer>
Figure 1. Relay Transformer Mediator
Relay Transformer Mediator
Manage the properties which would be referred from the xslt in transformation (using get-property(prop-name) xpath extension function).
Figure 2. Add Properties
Specify the features to be enabled in the XSLT transformation. Read the introduction paragraph of this guide for an example feature.
Figure 3. Add Features
Relay Transformer Mediator - Add Features
<relayTransformer xmlns="http://ws.apache.org/ns/synapse" key="transform/example.xslt" source="s11:Body/child" />
In this scenario the xslt can be picked by the key transform/example.xslt and the XSLT would be applied to a part of the message that is specified as a XPath expression.In this case it is applied to s11:Body/child the message