<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>WSO2 ESB - Relay Transformer Mediator </title>
  <link href="css/esb-docs.css" rel="stylesheet" />
  <link href="styles/dist-docs.css" rel="stylesheet" type="text/css"
  media="all" />
</head>

<body>
<h2>Relay Transformer Mediator</h2>

<p>The <strong>relayTransformer</strong> mediator applies the specified XSLT transformation
to the selected element of the current message payload. The <strong>source</strong>
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 '<strong>property</strong>' elements. These
properties are corresponding to the XSL parameters and can be accessed during
transformation by <strong>&lt;xsl:param name="{the name of the property}"
/&gt;</strong>. The '<strong>feature</strong>' element defines any features
which should be explicitly set to the <strong>TransformerFactory</strong>. The
feature
'<strong>http://ws.apache.org/ns/synapse/transform/feature/dom</strong>' 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. </p>

<p>Finally, the '<strong>resource</strong>' element can be used to resolve
<strong>XSLT imports and includes</strong> from the repository. It works in
exactly the same way as the corresponding element in a &lt;proxy&gt; definition
(Proxy Service). </p>

<p>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.</p>

<h3>Syntax</h3>
<pre xml:space="preserve"> &lt;relayTransformer key="string" [input="xml|stream"]  [source="xpath"]&gt;
   &lt;property name="string" (value="literal" | expression="xpath")/&gt;*
   &lt;feature name="string" value="true| false" /&gt;*
   &lt;resource location="string" key="string"/&gt;*
 &lt;/relayTransformer&gt;</pre>

<h3>UI Configuration</h3>

<p><img src="../xslt-mediator/docs/images/xslt_mediator_screenshot.jpg" alt=""
/></p>

<p><strong>Figure 1. Relay Transformer Mediator</strong></p>

<p><strong>Relay Transformer Mediator</strong> </p>
<ul>
  <li>Key : The registry key to refer the xslt. This supports static and dynamic keys. For
      more information refer <a href="../samples/message_mediation_samples.html#Sample16">
          Sample 16</a> </li>
  <li>Source: Specify in which part of message (specified in xpath) the xslt
    should be applied. Default is the SOAP body of the message. </li>
</ul>

<h2>Properties of the Relay Transformer mediator</h2>

<p>Manage the properties which would be referred from the xslt in
transformation (using get-property(prop-name) xpath extension function). </p>

<p><img src="../xslt-mediator/docs/images/add_properties_screenshot.jpg" alt=""
/> </p>

<p><strong>Figure 2. Add Properties</strong></p>

<p><strong></strong> </p>
<ul>
  <li>Property Name: Name of the property. </li>
  <li>Property Type: Whether it is a static value or an xpath expression. </li>
  <li>Value/ Expression: The static value or the xpath expression. </li>
  <li>NSEditor: Specify the namespaces that are used in the xpath expression.
  </li>
  <li>Action: Delete the property. </li>
</ul>

<h2>Features of the Relay Transformer mediator</h2>

<p>Specify the features to be enabled in the XSLT transformation. Read the
introduction paragraph of this guide for an example feature. </p>

<p><img src="../xslt-mediator/docs/images/add_features_screenshot.jpg" alt=""
/> </p>

<p><strong>Figure 3. Add Features</strong> </p>

<p><strong>Relay Transformer Mediator - Add Features</strong> </p>
<ul>
  <li>Feature Name: Name of the feature. </li>
  <li>Feature Value: Specify whether the feature is turn on (True) or Not
    (False). </li>
  <li>Action: Delete the feature. </li>
</ul>

<p></p>

<h3>Example</h3>
<pre xml:space="preserve">
&lt;relayTransformer xmlns="http://ws.apache.org/ns/synapse" key="transform/example.xslt" source="s11:Body/child" /&gt;
</pre>

<p>In this scenario the xslt can be picked by the key <strong>transform/example.xslt</strong> 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 <strong>s11:Body/child</strong>
the message </p>

<p></p>


<p></p>
</body>
</html>
