Sample Guide - XslTransform

Objective

doXslTransform(string, node-set, (string, object)*) function is used to perform XSLT transformations. So BPEL variable values can be transformed into different schemas.

For more details on input parameters, refer http://docs.oasis-open.org/wsbpel/2.0/CS01/wsbpel-v2.0-CS01.html#SA00039_table

Note : Required name spaces -

  • xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
  • queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
  • expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"

doXslTransform() should be defined under "http://docs.oasis-open.org/wsbpel/2.0/process/executable" namespace.


Prerequisites

  • Log in into BPS server admin console.
  • Under Business Processes -> Add BPEL.
  • Upload the TestXslTransform.zip , (all samples are located at our sample repository.)
  • Under the Business Processes -> Processes.
  • Under the WSDL details widget -> Create instance

Overall Idea

<copy>
    <from>
        bpws:doXslTransform("HelloXslWorld.xsl", $myVar.TestPart, 'middle', $otherVar)
    </from>
    <to variable="myVar" part="TestPart"/>
</copy>

In the above doXslTransform(), four parameters are passed.

  • HelloXslWorld.xsl - Style sheet file
  • $myVar.TestPart - Input source to be transformed
  • middle - name of the object to be used in the transformation
  • $otherVar - object which will be referred as 'middle'

Like this doXslTransform() accepts pairs of string and objects, so that they can be referred in the style sheet.

eg - in HelloXslWorld.xsl

<xsl:value-of select="concat(*/content/text(), $middle, ' World')"/>