<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--
<xsl:outputThis xslt transform dynamically transforms method="html"ktr and kjb file to indent="yes"be viewed in />the browser.
<xslDependencies:preserve-space elements="*"/>
<xsl:variable name="newline">
<xsl:text>
</xsl:text>
</xsl:variable>
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="xslt/pentaho.css" media="all"/>
</head>
<body style="background-color:white">
<a href="http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation">
<h1>Pentaho Data Integration Documentation</h1>
</a>
<xsl:if test="/transformation">
<h1 style="text-align:centre"><img src="ui/images/TRN.png"/><a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps">TRANSFORMATION</a></h1>
</xsl:if>
<xsl:if test="/job">
<h1 style="text-align:centre"><img src="ui/images/JOB.png"/><a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Job+Entries">JOB</a></h1>
</xsl:if>
<xsl:call-template name="node"/>
</body>
</html>
</xsl:template>
<xsl:template name="node" >
<!-- Process leafs -->
<xsl:call-template name="leafs"/>
<!-- Process child nodes -->
<xsl:for-each select="*[count(*) > 1]">
<!-- Start new div and show name of node in caps -->
<div class="wiki-content" style="padding-left:+20px; text-align:left;">
<!-- Set heading type accroding to Depth of tree -->
<xsl:choose>
<xsl:when test="count(ancestor::*)<2 or name()='entry'">
<h2 style="text-align:left">
<span style="text-transform:uppercase">
<xsl:value-of select="name()"/>
</span>
<xsl:choose>
<xsl:when test="name()='step' or name()='entry'">
<xsl:text> </xsl:text>
<xsl:call-template name="img">
<xsl:with-param name="name"><xsl:value-of
select="translate(
./type
, 'abcdefghijklmnopqrstuvwxyz'
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)"
/>
</xsl:with-param>
</xsl:call-template>
<xsl:text> [</xsl:text>
<xsl:value-of select="./name"/>
<xsl:text>] </xsl:text>
<!--
<xsl:text> [</xsl:text>
<xsl:value-of select="./type"/>
<xsl:text>]</xsl:text>
-->
</xsl:when>
</xsl:choose>
</h2>
</xsl:when>
<xsl:otherwise>
<h4 style="text-transform:uppercase; text-align:left; background:white">
<xsl:value-of select="name()"/>
</h4>
</xsl:otherwise>
</xsl:choose>
<!-- bread crumbs
<code><xsl:for-each select="ancestor::*"><xsl:value-of select="name()"/>::</xsl:for-each></code>
-->
<!-- Process special nodes where we pivot the attribute value pairs into a table -->
<xsl:choose>
The following files must be located in the home directory that the .ktr/.kjb is launched
1. pentaho.css
2. ui/images
3. ui/script/collapse_expand_single_item.js
Issues:
.ktr and .kjb cannot be opened by internet explorer.
internet explorer renders correctly if .ktr is changed to .xml
-->
<xsl:output
method="html"
version="4.0"
encoding="UTF-8"
omit-xml-declaration="yes"
media-type="text/html"
indent="yes"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
doctype-system="http://www.w3.org/TR/html4/loose.dtd"
/>
<xsl:preserve-space elements="*"/>
<xsl:variable name="newline">
<!-- ie does not recognize white space so we explicitly define linefeed (newline) char here -->
<xsl:text>
</xsl:text>
</xsl:variable>
<!-- ==================================================================
START of matching
======================================================================= -->
<xsl:template match="/">
<!-- Use this snippet to hide and show a section by clicking
<img src="ui/images/u.gif" name="imgfirst" width="9" height="9" border="0" >
<a href="#first" onClick="shoh('first');" >Customer Support</a>
<div style="display: none;" id="first" >
Here is the content you want to collapse or expand. You can place tables here, images, anything.
</div>
-->
<html>
<!-- Use CSS from pentaho website -->
<head>
<link rel="stylesheet" type="text/css" href="ui/pentaho.css" media="all"/>
<script language="JavaScript" src="ui/script/collapse_expand_single_item.js"></script>
</head>
<body style="background-color:white">
<a href="http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation">
<h1>Pentaho Data Integration Documentation</h1>
</a>
<!-- Call this template to process all nodes recursively -->
<xsl:call-template name="node"/>
</body>
</html>
</xsl:template>
<xsl:template name="node" >
<!-- Process leafs then process child nodes -->
<xsl:call-template name="leafs"/>
<!-- Process child nodes -->
<xsl:for-each select="*[count(*) > 0]">
<!-- HEADER -->
<!-- Start new div and show name of node in caps -->
<div class="wiki-content" style="padding-left:+20px; text-align:left;">
<!-- Set heading type according to Depth of tree -->
<xsl:choose>
<!-- Header for high level groups levels 1-2 or job entry -->
<xsl:when test="(count(ancestor::*) < 3 and name() != 'connection') or name()='entry'">
<h2 style="text-align:left">
<!-- Header for Trans or Job, info section, steps or entry -->
<xsl:choose>
<!-- level 1 Header for Transformation Block -->
<xsl:when test="name() = 'attributestransformation'">
<xsl:call-template name="attrtrans"/>
</xsl:when>
<!-- level 1 Header for Job Block -->
<xsl:when test="name() = 'order' or name() = 'hops''job'">
<xsl:call-template name="orderjob"/>
</xsl:when>
<!-- level 2 Header <xslfor Info Block, Trans or Job -->
<xsl:when test="name() = 'GUIinfo'">
<xsl:call-template name="guiinfo"/>
</xsl:when>
<!-- Header for step or entry -->
<xsl:when test="name()='step' or name()= 'fieldsentry'">
<xsl:call-template name="leafs"/>
<h4 <!-- STEP/ENTRY In CAPS -->
<span style="backgroundtext-transform:white">SELECT</h4>uppercase">
<xsl:callvalue-templateof nameselect="fieldsname()"/>
</span>
<h4 style="background:white">METADATA</h4>
<xsl:call-template name="meta_fields"/>
text> </xsl:when>
<xsl:when test="name() = 'lookup'"> text>
<!-- add image link -->
<xsl:call-template name="leafsimg"/>
<h4 style="background:white">KEYS</h4>
<xsl:with-param name="name">
<xsl:callvalue-templateof nameselect="keys./type" />
<h4 style="background:white">VALUES</h4>
</xsl:with-param>
<xsl:call-template name="values"/>
</xsl:when>
call-template>
<!-- Default: Process a child nodeName of the step or entry in [] -->
<xsl:otherwise>
<xsl:call-template name="nodetext> [</xsl:text>
<xsl:value-of select="./name"/>
<xsl:text>] </xsl:text>
</xsl:when>
<xsl:otherwise>
<span style="text-transform:uppercase">
</xsl:choose> </div> <xsl:value-of select="name()"/>
</span>
</xsl:for-each>
otherwise>
</xsl:template>choose>
<!-- Process all leaf nodes</h2>
of current node --> <xsl</xsl:template name="leafs">
when>
<!-- Lower Thelevel leafsblocks are-->
laid out in a table of Element: Value pair --<xsl:otherwise>
<h4 style="text-transform:uppercase; text-align:left; background:white">
<table class="confluenceTable"><tbody> <xsl:forvalue-eachof select="*[count(textname())=1]"/> <!-- Show
only non-empty elements -->
<tr>
<td valign="top" style="text-transform:uppercase" class="confluenceTd">
<xsl:if test="name">
<xsl<xsl:text> [</xsl:text><xsl:value-of select="name()"/>
"/><xsl:text>]</xsl:text>
</xsl:if>
</td> </h4>
<td class="confluenceTd"> </xsl:otherwise>
<xsl</xsl:choose>
<xsl:when test="name()='sql'or name()='jsScript_script' or name()='note'"><!-- bread crumbs
<code>
<xsl:call-template name="string-newline"><code><xsl:for-each select="ancestor::*"><xsl:value-of select="name()"/>::</xsl:for-each></code>
-->
<xsl:with-param name="original">
<!-- END OF HEADERS -->
<!-- "Show Hide" section <xsl:value-of select="."/-->
</xsl:with-param>
<a href="#{generate-id(.)}" onClick="shoh('{generate-id(.)}');" >
<img </xsl:call-template>
</code>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/src="ui/images/u.gif" name="img{generate-id(.)}" width="9" height="9" border="0" />
</a>
<div style="display:none" id="{generate-id(.)}" >
<!-- Start of DIV, match to closing DIV -->
<!-- DETAILS -->
</xsl:otherwise><xsl:choose>
<!-- Process </xsl:choose>special nodes where we pivot the attribute </td>value pairs into a table </tr>-->
</xsl:for-each>
</tbody></table>
</xsl:template>
<!-- Pivot table style 1:!-- Connection attributes -->
<xsl:when test="name() = 'attributes'">
<table-name>
<xsl:call-template name="attr"/>
</xsl:when> <row>
<col-1>
<col-2><!-- hops and order in trans and job -->
<xsl:when test="name() = <row>'order' or name() = 'hops'">
<col1>
<col2> --> <xsl:call-template name="pivot1order"/>
<table class="confluenceTable"><tbody>
</xsl:when>
<!-- Table Header all GUI XLOC and YLOC -->
<xsl:ifwhen test="*[1]name() = 'GUI'">
<xsl:forcall-eachtemplate selectname="*[1]/*"gui"/>
</xsl:when>
<th style="text-transform:uppercase" class="confluenceTh">
<!-- All instances of fields -->
<xsl:value-ofwhen selecttest="name() = 'fields'"/>
</th>
<xsl:call-template name="leafs"/>
</xsl:for-each> </xsl:if><h4 style="background:white">SELECT</h4>
<!-- Table Rows -->
<xsl:forcall-eachtemplate selectname="*fields"/>
<tr> <xsl:for-each select="./*"><h4 style="background:white">METADATA</h4>
<td class="confluenceTd">
<xsl:value-of select="."/>
<xsl:call-template name="meta_fields"/>
</td>xsl:when>
</xsl:for-each>
</tr><!-- Trans Lookup step -->
</xsl:for-each>
</tbody></table>
</xsl:template><xsl:when test="name() = 'lookup'">
<xsl:call-template name="table-rowleafs"/>
<h4 style="background:white">KEYS</h4>
<tr> <xsl:forcall-eachtemplate selectname="*keys"/>
<td<h4 classstyle="confluenceTd">background:white">VALUES</h4>
<xsl:valuecall-oftemplate selectname=".values"/>
</td>xsl:when>
</xsl:for-each>
</tr>
</xsl:template>
<!-- Pivot table style 2: single row table<!-- Database connections -->
<xsl:when test="name() = 'connection'">
<xsl:call-template name="leafs"/>
</xsl:when> <table-name>
<col-1>
<col-2><!-- Default: Process a child node (generate details) -->
<xsl:otherwise>
<col-3> -->
<xsl:call-template name="pivot2node"/>
<table class="confluenceTable"><tbody> </xsl:otherwise>
<!-- Header - name of the nodes -->
<xsl:for-each select="*" </xsl:choose>
</div> <!-- Details -->
<th style="text-transform:uppercase" class="confluenceTh">
<xsl:value-of select="name()"/>
</th></div> <!-- NODE -->
</xsl:for-each>
</xsl:template>
<!-- Single row -->
<tr>
<xsl:for-each select="*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</tbody></table>
</xsl:template>=================================================================
Display routines
==================================================================== -->
<!-- PivotProcess tableall styleleaf 3:nodes Sameof ascurrent Stylenode 1-->
but mixed rows
<xsl:template name="leafs">
<group<!-of-tables> The leafs are laid out in a <table-name-1>table of Element: Value <col-1>pair -->
<table class="confluenceTable"><tbody>
<col-2>
<xsl:for-each select="*[count(text())=1]"> <!-- Show only non-empty elements -->
<col-3> <tr>
<table-name-1>
<td valign="top" style="text-transform:uppercase" class="confluenceTd">
<col<xsl:value-1>
of select="name()"/>
</td>
<col-2> <td class="confluenceTd">
<col-3> <xsl:choose>
<xsl:when <table-name-2>
<col-1>
<col-2>
test="name()='type'">
<!-- Lookup help page for the step/entry -->
<xsl:call-template name="wiki-pentaho">
<xsl:with-param name="name">
<xsl:value-of select="." />
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<col-3>
<table-name-2>
<!-- Display code or multi line notes -->
<xsl:when test="name()='sql' <col-1>
or name()='jsScript_script' or name()='note'">
<code>
<col-2> <xsl:call-template name="string-newline">
<xsl:with-param name="original">
<xsl:value-of select="."/>
</xsl:with-param>
<col-3>
Parameter1 table-name
-->
<xsl:template name="pivot3">
<xsl:param name="group"/>
<table class="confluenceTable"><tbody>
<!-- Table Header -->
<xsl:if test="*[name()=$group][1]">
<xsl:for-each select="*[name()=$group][1]/*">
<th style="text-transform:uppercase" class="confluenceTh">
<xsl:value-of select="name()"/>
</th>
</xsl:for-each>
</xsl:if>
<!-- Table Rows -->
<xsl:for-each select="*[name()=$group]">
<tr>
<xsl:for-each select="*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody></table>
</xsl:template>
<!-- Code attribute values in Connection -->
<xsl:template name="attr">
<xsl:call-template name="pivot1"/>
</xsl:template>
<!-- From To laid out in a table on the orders -->
<xsl:template name="order">
<xsl:call-template name="pivot1"/>
</xsl:template>
<!-- GUI coords, laid out in a single row table -->
<xsl:template name="gui">
<xsl:call-template name="pivot2"/>
</xsl:template>
<!-- Fields in a select step -->
<xsl:template name="fields">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">field</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Meta of fields in a select step -->
<xsl:template name="meta_fields">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">meta</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- keys in lookup step -->
<xsl:template name="keys">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">key</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Values in lookup step -->
<xsl:template name="values">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">value</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Replace String -->
<xsl:template name="replace-substring">
<xsl:param name="original"/>
<xsl:param name="substring"/>
<xsl:param name="replacement" select="''"/>
<xsl:variable name="first">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:value-of select="substring-before($original, $substring)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$original"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="middle">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:value-of select="$replacement"/>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="last">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:choose>
<xsl:when test="contains(substring-after($original, $substring),$substring)">
<xsl:call-template name="replace-substring">
<xsl:with-param name="original">
<xsl:value-of select="substring-after($original, $substring)"/>
</xsl:with-param>
<xsl:with-param name="substring">
<xsl:value-of select="$substring"/>
</xsl:with-param>
<xsl:with-param name="replacement">
<xsl:value-of select="$replacement"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($original, $substring)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="concat($first, $middle, $last)"/>
</xsl:template>
<!-- Print line separated by newline -->
<xsl:template name="string-newline">
<xsl:param name="original"/>
<xsl:variable name="first">
<xsl:choose>
<xsl:when test="contains($original, $newline)">
<xsl:value-of select="substring-before($original, $newline)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$original"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="last">
<xsl:choose>
<xsl:when test="contains($original, $newline)">
<xsl:value-of select="substring-after($original, $newline)"/>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="$first"/><br/>
<xsl:if test="string-length($last) > 0">
<xsl:call-template name="string-newline">
<xsl:with-param name="original">
<xsl:value-of select="$last"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="img">
<xsl:param name="name"/>
<xsl:variable name="fname">
<xsl:choose>
<xsl:when test="$name='DUMMY'"><xsl:text>"ui/images/DUM.png"< </xsl:call-template>
</code>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</tbody></table>
</xsl:template>
<!-- Pivot table style 1:
<table-name>
<row>
<col-1>
<col-2>
<row>
<col1>
<col2>
-->
<xsl:template name="pivot1">
<table class="confluenceTable"><tbody>
<!-- Table Header -->
<xsl:if test="*[1]">
<xsl:for-each select="*[1]/*">
<th style="text-transform:uppercase" class="confluenceTh">
<xsl:value-of select="name()"/>
</th>
</xsl:for-each>
</xsl:if>
<!-- Table Rows -->
<xsl:for-each select="*">
<tr>
<xsl:for-each select="./*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody></table>
</xsl:template>
<xsl:template name="table-row">
<tr>
<xsl:for-each select="*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:template>
<!-- Pivot table style 2: single row table
<table-name>
<col-1>
<col-2>
<col-3>
-->
<xsl:template name="pivot2">
<table class="confluenceTable"><tbody>
<!-- Header - name of the nodes -->
<xsl:for-each select="*">
<th style="text-transform:uppercase" class="confluenceTh">
<xsl:value-of select="name()"/>
</th>
</xsl:for-each>
<!-- Single row -->
<tr>
<xsl:for-each select="*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</tbody></table>
</xsl:template>
<!-- Pivot table style 3: Same as Style 1 but mixed rows
<group-of-tables>
<table-name-1>
<col-1>
<col-2>
<col-3>
<table-name-1>
<col-1>
<col-2>
<col-3>
<table-name-2>
<col-1>
<col-2>
<col-3>
<table-name-2>
<col-1>
<col-2>
<col-3>
Parameter1 table-name
-->
<xsl:template name="pivot3">
<xsl:param name="group"/>
<table class="confluenceTable"><tbody>
<!-- Table Header -->
<xsl:if test="*[name()=$group][1]">
<xsl:for-each select="*[name()=$group][1]/*">
<th style="text-transform:uppercase" class="confluenceTh">
<xsl:value-of select="name()"/>
</th>
</xsl:for-each>
</xsl:if>
<!-- Table Rows -->
<xsl:for-each select="*[name()=$group]">
<tr>
<xsl:for-each select="*">
<td class="confluenceTd">
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</tbody></table>
</xsl:template>
<!-- Transformation header -->
<xsl:template name = "trans">
<h1 style="text-align:left">
<img src="ui/images/TRN.png"/>
<a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps">
<xsl:value-of select="./info/name/text()" />
</a>
<xsl:if test="./info/capture_step_performance/text()='Y'">
<img src="ui/images/perfmon2.jpeg"/>
</xsl:if>
</h1>
</xsl:template>
<!-- Job header -->
<xsl:template name = "job">
<h1 style="text-align:left">
<img src="ui/images/JOB.png"/>
<a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Job+Entries">
<xsl:value-of select="./name/text()" />
</a>
</h1>
</xsl:template>
<!-- Info header -->
<xsl:template name = "info">
<h1 style="text-align:left">
INFORMATION
</h1>
</xsl:template>
<!-- Code attribute values in Connection -->
<xsl:template name="attr">
<xsl:call-template name="pivot1"/>
</xsl:template>
<!-- From To laid out in a table on the orders -->
<xsl:template name="order">
<xsl:call-template name="pivot1"/>
</xsl:template>
<!-- GUI coords, laid out in a single row table -->
<xsl:template name="gui">
<xsl:call-template name="pivot2"/>
</xsl:template>
<!-- Fields in a select step -->
<xsl:template name="fields">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">field</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Meta of fields in a select step -->
<xsl:template name="meta_fields">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">meta</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- keys in lookup step -->
<xsl:template name="keys">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">key</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Values in lookup step -->
<xsl:template name="values">
<xsl:call-template name="pivot3">
<xsl:with-param name="group">value</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- Replace String -->
<xsl:template name="replace-substring">
<xsl:param name="original"/>
<xsl:param name="substring"/>
<xsl:param name="replacement" select="''"/>
<xsl:variable name="first">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:value-of select="substring-before($original, $substring)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$original"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="middle">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:value-of select="$replacement"/>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="last">
<xsl:choose>
<xsl:when test="contains($original, $substring)">
<xsl:choose>
<xsl:when test="contains(substring-after($original, $substring),$substring)">
<xsl:call-template name="replace-substring">
<xsl:with-param name="original">
<xsl:value-of select="substring-after($original, $substring)"/>
</xsl:with-param>
<xsl:with-param name="substring">
<xsl:value-of select="$substring"/>
</xsl:with-param>
<xsl:with-param name="replacement">
<xsl:value-of select="$replacement"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($original, $substring)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="concat($first, $middle, $last)"/>
</xsl:template>
<!-- Print line separated by newline -->
<xsl:template name="string-newline">
<xsl:param name="original"/>
<xsl:variable name="first">
<xsl:choose>
<xsl:when test="contains($original, $newline)">
<xsl:value-of select="substring-before($original, $newline)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$original"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="last">
<xsl:choose>
<xsl:when test="contains($original, $newline)">
<xsl:value-of select="substring-after($original, $newline)"/>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="$first"/><br/>
<xsl:if test="string-length($last) > 0">
<xsl:call-template name="string-newline">
<xsl:with-param name="original">
<xsl:value-of select="$last"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- Lookup to get anchor for step/entry images -->
<xsl:template name="img">
<xsl:param name="name"/>
<xsl:variable name="name-caps">
<xsl:value-of
select="translate(
$name
, 'abcdefghijklmnopqrstuvwxyz'
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)"
/>
</xsl:variable>
<xsl:variable name="fname">
<xsl:choose>
<xsl:when test="$name-caps='DUMMY'"><xsl:text>ui/images/DUM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='APPEND'"><xsl:text>ui/images/APP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEINPUT'"><xsl:text>ui/images/TIP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SOCKETREADER'"><xsl:text>ui/images/SKR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SOCKETWRITER'"><xsl:text>ui/images/SKW.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SELECTVALUES'"><xsl:text>ui/images/SEL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TEXTFILEINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CALCULATOR'"><xsl:text>ui/images/CLC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CONSTANT'"><xsl:text>ui/images/CST.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ABORT'"><xsl:text>ui/images/ABR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SEQUENCE'"><xsl:text>ui/images/SEQ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEOUTPUT'"><xsl:text>ui/images/TOP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INFOBRIGHTOUTPUT'"><xsl:text>ui/images/IBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SORTROWS'"><xsl:text>ui/images/SRT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ORABULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INJECTOR'"><xsl:text>ui/images/INJ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILTERROWS'"><xsl:text>ui/images/FLT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TEXTFILEOUTPUT'"><xsl:text>ui/images/TFO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SYSTEMINFO'"><xsl:text>ui/images/SYS.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='STREAMLOOKUP'"><xsl:text>ui/images/SLU.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIQUE'"><xsl:text>ui/images/UNQ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DBLOOKUP'"><xsl:text>ui/images/DLU.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DBJOIN'"><xsl:text>ui/images/DBJ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DIMENSIONLOOKUP'"><xsl:text>ui/images/DIM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXCELINPUT'"><xsl:text>ui/images/XLI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='COMBINATIONLOOKUP'"><xsl:text>ui/images/CMB.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>ui/images/SCR_mod.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='JOINROWS'"><xsl:text>ui/images/JRW.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UPDATE'"><xsl:text>ui/images/UPD.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INSERTUPDATE'"><xsl:text>ui/images/INU.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE'"><xsl:text>ui/images/Delete.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPINGINPUT'"><xsl:text>ui/images/MPI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPING'"><xsl:text>ui/images/MAP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPINGOUTPUT'"><xsl:text>ui/images/MPO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVARIABLE'"><xsl:text>ui/images/SVA.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETVARIABLE'"><xsl:text>ui/images/GVA.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='NULLIF'"><xsl:text>ui/images/NUI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECSQL'"><xsl:text>ui/images/SQL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ROWSFROMRESULT'"><xsl:text>ui/images/FCH.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ROWSTORESULT'"><xsl:text>ui/images/TCH.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='BLOCKINGSTEP'"><xsl:text>ui/images/BLK.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='HTTP'"><xsl:text>ui/images/WEB.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MERGEROWS'"><xsl:text>ui/images/MRG.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETFILENAMES'"><xsl:text>ui/images/GFN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILESFROMRESULT'"><xsl:text>ui/images/FFR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILESTORESULT'"><xsl:text>ui/images/FTR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GROUPBY'"><xsl:text>ui/images/GRP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ANALYTICQUERY'"><xsl:text>ui/images/AQI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MERGEJOIN'"><xsl:text>ui/images/MJOIN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SORTEDMERGE'"><xsl:text>ui/images/SMG.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLINPUT'"><xsl:text>ui/images/XIN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLINPUTSAX'"><xsl:text>ui/images/XIS.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLOUTPUT'"><xsl:text>ui/images/XOU.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXCELOUTPUT'"><xsl:text>ui/images/XLO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DBPROC'"><xsl:text>ui/images/PRC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DENORMALISER'"><xsl:text>ui/images/UNP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='NORMALISER'"><xsl:text>ui/images/NRM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FLATTENER'"><xsl:text>ui/images/FLA.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XBASEINPUT'"><xsl:text>ui/images/XBI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ACCESSOUTPUT'"><xsl:text>ui/images/ACO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='REGEXEVAL'"><xsl:text>ui/images/RGE.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ACCESSINPUT'"><xsl:text>ui/images/ACI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ADDXML'"><xsl:text>ui/images/XIN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='AGGREGATEROWS'"><xsl:text>ui/images/AGG.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MONDRIANINPUT'"><xsl:text>ui/images/MON.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETFILESROWSCOUNT'"><xsl:text>ui/images/FRC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='LDAPINPUT'"><xsl:text>ui/images/LIP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETXMLDATA'"><xsl:text>ui/images/GXD.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XSDVALIDATOR'"><xsl:text>ui/images/XSD.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XSLT'"><xsl:text>ui/images/XSLT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='VALIDATOR'"><xsl:text>ui/images/VLD.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SQLFILEOUTPUT'"><xsl:text>ui/images/SFO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SPLITFIELDTOROWS'"><xsl:text>ui/images/SFtR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='PROPERTYINPUT'"><xsl:text>ui/images/PFI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GPBULKLOADER'"><xsl:text>ui/images/GBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='PGBULKLOADER'"><xsl:text>ui/images/PGBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='LDIFINPUT'"><xsl:text>ui/images/LDI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='PROPERTYOUTPUT'"><xsl:text>ui/images/PFO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='VALUEMAPPER'"><xsl:text>ui/images/SWC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SWITCHCASE'"><xsl:text>ui/images/SWC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLJOIN'"><xsl:text>ui/images/XJN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='STEPMETASTRUCTURE'"><xsl:text>ui/images/STMD.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEEXISTS'"><xsl:text>ui/images/TEX.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='COLUMNEXISTS'"><xsl:text>ui/images/CEX.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILEEXISTS'"><xsl:text>ui/images/FEX.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CLONEROW'"><xsl:text>ui/images/CLR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DELAY'"><xsl:text>ui/images/DLT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CHECKSUM'"><xsl:text>ui/images/CSM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='RANDOMVALUE'"><xsl:text>ui/images/RVA.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETSUBFOLDERS'"><xsl:text>ui/images/LSF.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MONETDBBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAILVALIDATOR'"><xsl:text>ui/images/MAV.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAIL'"><xsl:text>ui/images/MAIL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CREDITCARDVALIDATOR'"><xsl:text>ui/images/CCV.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='PROCESSFILES'"><xsl:text>ui/images/PPF.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DETECTLASTROW'"><xsl:text>ui/images/DLR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DETECTEMPTYSTREAM'"><xsl:text>ui/images/EMS.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='WRITETOLOG'"><xsl:text>ui/images/WTL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SAMPLEROWS'"><xsl:text>ui/images/SR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETPREVIOUSROWFIELD'"><xsl:text>ui/images/PRV.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECSQLROW'"><xsl:text>ui/images/SQLR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DYNAMICSQLROW'"><xsl:text>ui/images/DSR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='NUMBERRANGE'"><xsl:text>ui/images/NRI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SYNCHRONIZEAFTERMERGE'"><xsl:text>ui/images/SAM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='LUCIDDBBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MYSQLBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='REPLACESTRING'"><xsl:text>ui/images/RST.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='STRINGCUT'"><xsl:text>ui/images/SRC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='IFNULL'"><xsl:text>ui/images/IFN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='RSSOUTPUT'"><xsl:text>ui/images/RRO.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='RSSINPUT'"><xsl:text>ui/images/RIN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SALESFORCEINPUT'"><xsl:text>ui/images/SFI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FORMULA'"><xsl:text>ui/images/FRM.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='JANINO'"><xsl:text>ui/images/janino.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>ui/images/janino.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='RESERVOIRSAMPLING'"><xsl:text>ui/images/RS.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIVARIATESTATS'"><xsl:text>ui/images/US.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIQUEROWSBYHASHSET'"><xsl:text>ui/images/URH.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='HTTPPOST'"><xsl:text>ui/images/HTP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVALUECONSTANT'"><xsl:text>ui/images/SVC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVALUEFIELD'"><xsl:text>ui/images/SVF.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECPROCESS'"><xsl:text>ui/images/RPL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='WEBSERVICELOOKUP'"><xsl:text>ui/images/WSL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CSVINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='PARALLELGZIPCSVINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='JOB'"><xsl:text>ui/images/JOB.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TRANS'"><xsl:text>ui/images/TRN.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SHELL'"><xsl:text>ui/images/SHL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAIL'"><xsl:text>ui/images/MAIL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SQL'"><xsl:text>ui/images/SQL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FTP'"><xsl:text>ui/images/FTP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLE_EXISTS'"><xsl:text>ui/images/TEX.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILE_EXISTS'"><xsl:text>ui/images/FEX.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EVAL'"><xsl:text>ui/images/RES.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SPECIAL'"><xsl:text>ui/images/STR.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SFTP'"><xsl:text>ui/images/SFT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='HTTP'"><xsl:text>ui/images/WEB.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CREATE_FILE'"><xsl:text>ui/images/CFJ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE_FILE'"><xsl:text>ui/images/DFJ.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>ui/images/WFF.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SFTPPUT'"><xsl:text>ui/images/SFP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILE_COMPARE'"><xsl:text>ui/images/BFC.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MYSQL_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MSGBOX_INFO'"><xsl:text>ui/images/INF.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DELAY'"><xsl:text>ui/images/DLT.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='APPENDZIP_FILE'"><xsl:text>"uitext>ui/images/APPZIP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEINPUTXSLT'"><xsl:text>"uitext>ui/images/TIPXSLT.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SOCKETREADERMYSQL_BULK_FILE'"><xsl:text>"uitext>ui/images/SKRMBF.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SOCKETWRITERABORT'"><xsl:text>"uitext>ui/images/SKWABR.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SELECTVALUESGET_POP'"><xsl:text>"uitext>ui/images/SELGETPOP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TEXTFILEINPUTPING'"><xsl:text>"uitext>ui/images/TFIPNG.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CALCULATORDELETE_FILES'"><xsl:text>"uitext>ui/images/CLCDFS.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='CONSTANTSUCCESS'"><xsl:text>"uitext>ui/images/CSTSUC.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ABORTXSD_VALIDATOR'"><xsl:text>"uitext>ui/images/ABRXSD.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SEQUENCEWRITE_TO_LOG'"><xsl:text>"uitext>ui/images/SEQWTL.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEOUTPUTCOPY_FILES'"><xsl:text>"uitext>ui/images/TOPCPY.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INFOBRIGHTOUTPUTDTD_VALIDATOR'"><xsl:text>"uitext>ui/images/IBLDTD.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SORTROWSFTP_PUT'"><xsl:text>"uitext>ui/images/SRTPFP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ORABULKLOADERUNZIP'"><xsl:text>"uitext>ui/images/OBLUZP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INJECTORCREATE_FOLDER'"><xsl:text>"uitext>ui/images/INJCRF.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='FILTERROWSFOLDER_IS_EMPTY'"><xsl:text>"uitext>ui/images/FLTEFO.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='TEXTFILEOUTPUTFILES_EXIST'"><xsl:text>"uitext>ui/images/TFOLFE.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SYSTEMINFOFOLDERS_COMPARE'"><xsl:text>"uitext>ui/images/SYSFCP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='STREAMLOOKUPADD_RESULT_FILENAMES'"><xsl:text>"uitext>ui/images/SLUAFN.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIQUEDELETE_RESULT_FILENAMES'"><xsl:text>"uitext>ui/images/UNQDFN.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DBLOOKUPMSSQL_BULK_LOAD'"><xsl:text>"uitext>ui/images/DLUMBL.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DBJOINMOVE_FILES'"><xsl:text>"uitext>ui/images/DBJMVF.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DIMENSIONLOOKUPCOPY_MOVE_RESULT_FILENAMES'"><xsl:text>"uitext>ui/images/DIMCMR.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXCELINPUTJOBCATEGORY.CATEGORY.XML_WELL_FORMED'"><xsl:text>"uitext>ui/images/XLIXFC.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='COMBINATIONLOOKUPSSH2_GET'"><xsl:text>"uitext>ui/images/CMBSHG.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SCRIPTVALUEMODSSH2_PUT'"><xsl:text>"uitext>ui/images/SCR_mod.png"<SHP.png</xsl:text></xsl:when>
<xsl:when test="$name-caps='JOINROWSFTP_DELETE'"><xsl:text>"uitext>ui/images/JRWFTPD.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='UPDATEDELETE_FOLDERS'"><xsl:text>"uitext>ui/images/UPDDSF.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='INSERTUPDATECOLUMNS_EXIST'"><xsl:text>"uitext>ui/images/INUCEX.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETEEXPORT_REPOSITORY'"><xsl:text>"uitext>ui/images/DeleteEREP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPINGINPUTCONNECTED_TO_REPOSITORY'"><xsl:text>"uitext>ui/images/MPICREP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPINGTRUNCATE_TABLES'"><xsl:text>"uitext>ui/images/MAPTRT.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='MAPPINGOUTPUTSET_VARIABLES'"><xsl:text>"uitext>ui/images/MPOSVA.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVARIABLEMS_ACCESS_BULK_LOAD'"><xsl:text>"uitext>ui/images/SVAMBL.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='GETVARIABLEWAIT_FOR_SQL'"><xsl:text>"uitext>ui/images/GVAWSQL.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='NULLIFEVAL_TABLE_CONTENT'"><xsl:text>"uitext>ui/images/NUIETC.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECSQLSIMPLE_EVAL'"><xsl:text>"uitext>ui/images/SQLSEV.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ROWSFROMRESULTSNMP_TRAP'"><xsl:text>"uitext>ui/images/FCHSNMP.png"<png</xsl:text></xsl:when>
<xsl:when test="$name-caps='ROWSTORESULTJOBCATEGORY.CATEGORY.MAIL_VALIDATOR'"><xsl:text>"uitext>ui/images/TCHMAV.png"<png</xsl:text></xsl:when>
<xsl:when test="$name='BLOCKINGSTEP'"><xsl:text>"ui <xsl:otherwise><xsl:text>ui/images/BLK.png"spoon32.png</xsl:text></xsl:otherwise>
</xsl:text><choose>
</xsl:when>
<xsl:when test="$name='HTTP'"><xsl:text>"ui/images/WEB.png"</xsl:text></xsl:when>
<xsl:when test="$name='MERGEROWS'"><xsl:text>"ui/images/MRG.png"</xsl:text></xsl:when>
<xsl:when test="$name='GETFILENAMES'"><xsl:text>"ui/images/GFN.png"</xsl:text></xsl:when>
<xsl:when test="$name='FILESFROMRESULT'"><xsl:text>"ui/images/FFR.png"</xsl:text></xsl:when>
<xsl:when test="$name='FILESTORESULT'"><xsl:text>"ui/images/FTR.png"</xsl:text></xsl:when>:variable>
<img>
<xsl:attribute name="src">
<xsl:value-of select="$fname"/>
</xsl:attribute>
<xsl:attribute name="style">
<xsl:text>border:1px solid black</xsl:text>
</xsl:attribute>
</img>
</xsl:template>
<!-- Lookup to get anchor for step/entry help page on wiki.pentaho -->
<xsl:template name="wiki-pentaho">
<xsl:param name="name"/>
<xsl:variable name="name-caps">
<xsl:value-of
select="translate(
$name
, 'abcdefghijklmnopqrstuvwxyz'
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
)"
/>
</xsl:variable>
<xsl:variable name="web-addr">
<xsl:choose>
<xsl:when test="$name-caps='GROUPBYSPECIAL'"><xsl:text>"uitext>http:/images/GRP.png"wiki.pentaho.com/display/EAI/Start </xsl:text></xsl:when>
<xsl:when test="$name-caps='ANALYTICQUERYDUMMY'"><xsl:text>http:text>"ui/images/AQI.png"wiki.pentaho.com/display/EAI/Dummy+Job+Entry </xsl:text></xsl:when>
<xsl:when test="$name-caps='MERGEJOINABORT'"><xsl:text>"uitext>http:/images/MJOIN.png"wiki.pentaho.com/display/EAI/Abort+Job </xsl:text></xsl:when>
<xsl:when test="$name-caps='SORTEDMERGEMSGBOX_INFO'"><xsl:text>"ui/images/SMG.png":text>http://wiki.pentaho.com/display/EAI/Display+Msgbox+info </xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLINPUTJOB'"><xsl:text>http:text>"ui/images/XIN.png"wiki.pentaho.com/display/EAI/Job+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLINPUTSAXPING'"><xsl:text>http:text>"ui/images/XIS.png"wiki.pentaho.com/display/EAI/Ping+a+host </xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLOUTPUTSUCCESS'"><xsl:text>http:text>"ui/images/XOU.png"wiki.pentaho.com/display/EAI/Success </xsl:text></xsl:when>
<xsl:when test="$name-caps='EXCELOUTPUTTRAN'"><xsl:text>http:text>"ui/images/XLO.png"wiki.pentaho.com/display/EAI/Transformation+%28job+entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='DBPROCWRITE_TO_LOG'"><xsl:text>"ui/images/PRC.png"text>http://wiki.pentaho.com/display/EAI/Write+to+log </xsl:text></xsl:when>
<xsl:when test="$name-caps='DENORMALISERGET_POP'"><xsl:text>"uitext>http:/images/UNP.png"wiki.pentaho.com/display/EAI/Get+Mails+from+POP </xsl:text></xsl:when>
<xsl:when test="$name-caps='NORMALISERMAIL'"><xsl:text>http:text>"ui/images/NRM.png"wiki.pentaho.com/display/EAI/Mail </xsl:text></xsl:when>
<xsl:when test="$name-caps='FLATTENERADD_RESULT_FILENAMES'"><xsl:text>http:text>"ui/images/FLA.png"wiki.pentaho.com/display/EAI/Add+filenames+to+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='XBASEINPUTVALUEMAPPER'"><xsl:text>http:text>"ui/images/XBI.png"wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when>
<xsl:when test="$name-caps='ACCESSOUTPUTCOPY_FILES'"><xsl:text>http:text>"ui/images/ACO.png"wiki.pentaho.com/display/EAI/Copy+Files </xsl:text></xsl:when>
<xsl:when test="$name-caps='REGEXEVALCREATE_FOLDER'"><xsl:text>http:text>"ui/images/RGE.png"wiki.pentaho.com/display/EAI/Create+a+folder </xsl:text></xsl:when>
<xsl:when test="$name-caps='ACCESSINPUTCREATE_FILE'"><xsl:text>http:text>"ui/images/ACI.png"wiki.pentaho.com/display/EAI/Create+a+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='ADDXMLDELETE_FILE'"><xsl:text>"uitext>http:/images/XIN.png"wiki.pentaho.com/display/EAI/Delete+a+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='AGGREGATEROWSDELETE_RESULT_FILENAMES'"><xsl:text>"ui/images/AGG.png"text>http://wiki.pentaho.com/display/EAI/Delete+filenames+from+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='MONDRIANINPUTDELETE_FILES'"><xsl:text>"uitext>http:/images/MON.png"wiki.pentaho.com/display/EAI/Delete+Files </xsl:text></xsl:when>
<xsl:when test="$name-caps='GETFILESROWSCOUNTDELETE_FOLDERS'"><xsl:text>http:text>"ui/images/FRC.png"wiki.pentaho.com/display/EAI/Delete+folders </xsl:text></xsl:when>
<xsl:when test="$name-caps='LDAPINPUTFILE_COMPARE'"><xsl:text>http:text>"ui/images/LIP.png"wiki.pentaho.com/display/EAI/File+compare </xsl:text></xsl:when>
<xsl:when test="$name-caps='GETXMLDATAHTTP'"><xsl:text>http:text>"ui/images/GXD.png"wiki.pentaho.com/display/EAI/HTTP </xsl:text></xsl:when>
<xsl:when test="$name-caps='XSDVALIDATORMOVE_FILES'"><xsl:text>"ui/images/XSD.png":text>http://wiki.pentaho.com/display/EAI/Move+files </xsl:text></xsl:when>
<xsl:when test="$name-caps='XSLTUNZIP'"><xsl:text>"uitext>http:/images/XSLT.png"wiki.pentaho.com/display/EAI/Unzip+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='VALIDATORWAIT_FOR_FILE'"><xsl:text>http:text>"ui/images/VLD.png"wiki.pentaho.com/display/EAI/Wait+for+a+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='SQLFILEOUTPUTZIP_FILE'"><xsl:text>http:text>"ui/images/SFO.png"wiki.pentaho.com/display/EAI/Zip+files </xsl:text></xsl:when>
<xsl:when test="$name-caps='SPLITFIELDTOROWSTRUNCATE_TABLES'"><xsl:text>http:text>"ui/images/SFtR.png"wiki.pentaho.com/display/EAI/Truncate+tables </xsl:text></xsl:when>
<xsl:when test="$name-caps='PROPERTYINPUTFOLDER_IS_EMPTY'"><xsl:text>"uitext>http:/images/PFI.png"wiki.pentaho.com/display/EAI/Check+if+a+folder+is+empty </xsl:text></xsl:when>
<xsl:when test="$name-caps='GPBULKLOADERFILES_EXIST'"><xsl:text>"uitext>http:/images/GBL.png"wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='PGBULKLOADERCOLUMNS_EXIST'"><xsl:text>"uitext>http:/images/PGBL.png"wiki.pentaho.com/display/EAI/Columns+exist+in+a+table </xsl:text></xsl:when>
<xsl:when test="$name-caps='LDIFINPUTFILE_EXISTS'"><xsl:text>"uitext>http:/images/LDI.png"wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='PROPERTYOUTPUTTABLE_EXISTS'"><xsl:text>http:text>"ui/images/PFO.png"wiki.pentaho.com/display/EAI/Table+Exists+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='VALUEMAPPERWAIT_FOR_FILE'"><xsl:text>http:text>"ui/images/SWC.png"wiki.pentaho.com/display/EAI/Wait+for </xsl:text></xsl:when>
<xsl:when test="$name-caps='SWITCHCASE'"><xsl:text>"uitext>http:/images/SWC.png"wiki.pentaho.com/display/EAI/Evaluating+conditions+in+The+JavaScript+job+entry </xsl:text></xsl:when>
<xsl:when test="$name-caps='XMLJOINSQL'"><xsl:text>http:text>"ui/images/XJN.png"wiki.pentaho.com/display/EAI/SQL </xsl:text></xsl:when>
<xsl:when test="$name-caps='STEPMETASTRUCTURESHELL'"><xsl:text>http:text>"ui/images/STMD.png"wiki.pentaho.com/display/EAI/Shell </xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLEEXISTS'"><xsl:text>http:text>"ui/images/TEX.png"wiki.pentaho.com/display/EAI/Bulkload+into+MySQL </xsl:text></xsl:when>
<xsl:when test="$name-caps='COLUMNEXISTS'"><xsl:text>http:text>"ui/images/CEX.png"wiki.pentaho.com/display/EAI/Check+if+XML+file+is+well+formed </xsl:text></xsl:when>
<xsl:when test="$name-caps='FILEEXISTSDTD_VALIDATOR'"><xsl:text>"uitext>http:/images/FEX.png"wiki.pentaho.com/display/EAI/DTD+Validator+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='CLONEROWXSD_VALIDATOR'"><xsl:text>"uitext>http:/images/CLR.png"wiki.pentaho.com/display/EAI/XSD+Validator+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELAYXSLT'"><xsl:text>"uitext>http:/images/DLT.png"wiki.pentaho.com/display/EAI/XSL+Transformation+%28Job+Entry%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='CHECKSUMFTP'"><xsl:text>http:text>"ui/images/CSM.png"wiki.pentaho.com/display/EAI/Get+a+file+with+FTP </xsl:text></xsl:when>
<xsl:when test="$name-caps='RANDOMVALUESFTP'"><xsl:text>"uitext>http:/images/RVA.png"wiki.pentaho.com/display/EAI/Get+a+file+with+SFTP </xsl:text></xsl:when>
<xsl:when test="$name-caps='GETSUBFOLDERSACCESSINPUT'"><xsl:text>http:text>"ui/images/LSF.png"wiki.pentaho.com/display/EAI/Access+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='MONETDBBULKLOADERCSVINPUT'"><xsl:text>http:text>"ui/images/OBL.png"wiki.pentaho.com/display/EAI/CSV+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='MAILVALIDATOR'"><xsl:text>http:text>"ui/images/MAV.png"wiki.pentaho.com/display/EAI/De-serialize+from+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='MAILEXCELINPUT'"><xsl:text>"uitext>http:/images/MAIL.png"wiki.pentaho.com/display/EAI/Excel+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='CREDITCARDVALIDATOR'"><xsl:text>http:text>"ui/images/CCV.png"wiki.pentaho.com/display/EAI/Fixed+File+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='PROCESSFILES'"><xsl:text>"uitext>http:/images/PPF.png"wiki.pentaho.com/display/EAI/Generate+Rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='DETECTLASTROWRANDOMVALUE'"><xsl:text>http:text>"ui/images/DLR.png"wiki.pentaho.com/display/EAI/Generate+Random+Value </xsl:text></xsl:when>
<xsl:when test="$name-caps='DETECTEMPTYSTREAMGETFILENAMES'"><xsl:text>http:text>"ui/images/EMS.png"wiki.pentaho.com/display/EAI/Get+File+Names </xsl:text></xsl:when>
<xsl:when test="$name-caps='WRITETOLOGGETFILESROWSCOUNT'"><xsl:text>http:text>"ui/images/WTL.png"wiki.pentaho.com/display/EAI/Get+Files+Row+Count </xsl:text></xsl:when>
<xsl:when test="$name-caps='SAMPLEROWSSYSTEMINFO'"><xsl:text>http:text>"ui/images/SR.png"wiki.pentaho.com/display/EAI/Get+System+Info </xsl:text></xsl:when>
<xsl:when test="$name-caps='GETPREVIOUSROWFIELD'"><xsl:text>http:text>"ui/images/PRV.png"wiki.pentaho.com/display/EAI/Get+Data+From+XML </xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECSQLROWLDAPINPUT'"><xsl:text>"ui/images/SQLR.png"text>http://wiki.pentaho.com/display/EAI/LDAP+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='DYNAMICSQLROWLDIFINPUT'"><xsl:text>http:text>"ui/images/DSR.png"wiki.pentaho.com/display/EAI/LDIF+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='NUMBERRANGEMONDRIANINPUT'"><xsl:text>"uitext>http:/images/NRI.png"wiki.pentaho.com/display/EAI/Mondrian+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='SYNCHRONIZEAFTERMERGEPROPERTYINPUT'"><xsl:text>http:text>"ui/images/SAM.png"wiki.pentaho.com/display/EAI/Property+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='LUCIDDBBULKLOADERRSSINPUT'"><xsl:text>http:text>"ui/images/OBL.png"wiki.pentaho.com/display/EAI/RSS+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='MYSQLBULKLOADER'"><xsl:text>"ui/images/OBL.png":text>http://wiki.pentaho.com/display/EAI/Streaming+XML+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='REPLACESTRINGTABLEINPUT'"><xsl:text>http:text>"ui/images/RST.png"wiki.pentaho.com/display/EAI/Table+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='STRINGCUTTEXTFILEINPUT'"><xsl:text>"uitext>http:/images/SRC.png"wiki.pentaho.com/display/EAI/Text+File+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='IFNULLXBASEINPUT'"><xsl:text>http:text>"ui/images/IFN.png"wiki.pentaho.com/display/EAI/XBase+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='RSSOUTPUT'"><xsl:text>"uitext>http:/images/RRO.png"wiki.pentaho.com/display/EAI/XML+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='RSSINPUTACCESSOUTPUT'"><xsl:text>http:text>"ui/images/RIN.png"wiki.pentaho.com/display/EAI/Access+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='SALESFORCEINPUTDELETE'"><xsl:text>"uitext>http:/images/SFI.png"wiki.pentaho.com/display/EAI/Delete </xsl:text></xsl:when>
<xsl:when test="$name-caps='FORMULAEXCELOUTPUT'"><xsl:text>http:text>"ui/images/FRM.png"wiki.pentaho.com/display/EAI/Excel+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='JANINOINSERTUPDATE'"><xsl:text>"uitext>http:/images/janino.png"wiki.pentaho.com/display/EAI/Insert+-+Update </xsl:text></xsl:when>
<xsl:when test="$name-caps='SCRIPTVALUEMODPROPERTYOUTPUT'"><xsl:text>http:text>"ui/images/janino.png"wiki.pentaho.com/display/EAI/Property+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='RESERVOIRSAMPLINGSQLFILEOUTPUT'"><xsl:text>http:text>"ui/images/RS.png"wiki.pentaho.com/display/EAI/SQL+File+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIVARIATESTATS'"><xsl:text>http:text>"ui/images/US.png"wiki.pentaho.com/display/EAI/Serialize+to+file </xsl:text></xsl:when>
<xsl:when test="$name-caps='UNIQUEROWSBYHASHSETTABLEOUTPUT'"><xsl:text>http:text>"ui/images/URH.png"wiki.pentaho.com/display/EAI/Table+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='HTTPPOSTTEXTFILEOUTPUT'"><xsl:text>"uitext>http:/images/HTP.png"wiki.pentaho.com/display/EAI/Text+File+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVALUECONSTANTUPDATE'"><xsl:text>http:text>"ui/images/SVC.png"wiki.pentaho.com/display/EAI/Update </xsl:text></xsl:when>
<xsl:when test="$name-caps='SETVALUEFIELDXMLOUTPUT'"><xsl:text>"uitext>http:/images/SVF.png"wiki.pentaho.com/display/EAI/XML+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='EXECPROCESSABORT'"><xsl:text>http:text>"ui/images/RPL.png"wiki.pentaho.com/display/EAI/Abort </xsl:text></xsl:when>
<xsl:when test="$name-caps='WEBSERVICELOOKUPADDXML'"><xsl:text>"uitext>http:/images/WSL.png"wiki.pentaho.com/display/EAI/Add+XML </xsl:text></xsl:when>
<xsl:when test="$name-caps='CSVINPUTCHECKSUM'"><xsl:text>http:text>"ui/images/TFI.png"wiki.pentaho.com/display/EAI/Add+a+checksum </xsl:text></xsl:when>
<xsl:when test="$name-caps='PARALLELGZIPCSVINPUTCONSTANT'"><xsl:text>http:text>"ui/images/TFI.png"wiki.pentaho.com/display/EAI/Add+Constants </xsl:text></xsl:when>
<xsl:when test="$name-caps='JOBSEQUENCE'"><xsl:text>http:text>"ui/images/JOB.png"wiki.pentaho.com/display/EAI/Add+sequence </xsl:text></xsl:when>
<xsl:when test="$name-caps='TRANSANALYTICQUERY'"><xsl:text>"ui/images/TRN.png":text>http://wiki.pentaho.com/display/EAI/Analytic+Query </xsl:text></xsl:when>
<xsl:when test="$name-caps='SHELLAPPEND'"><xsl:text>"uitext>http:/images/SHL.png"wiki.pentaho.com/display/EAI/Append+streams </xsl:text></xsl:when>
<xsl:when test="$name-caps='MAILBLOCKINGSTEP'"><xsl:text>http:text>"ui/images/MAIL.png"wiki.pentaho.com/display/EAI/Blocking+step </xsl:text></xsl:when>
<xsl:when test="$name-caps='SQLCALCULATOR'"><xsl:text>"uitext>http:/images/SQL.png"wiki.pentaho.com/display/EAI/Calculator </xsl:text></xsl:when>
<xsl:when test="$name-caps='FTPCLONEROW'"><xsl:text>"uitext>http:/images/FTP.png"wiki.pentaho.com/display/EAI/Clone+row </xsl:text></xsl:when>
<xsl:when test="$name-caps='TABLE_EXISTS'"><xsl:text>"ui/images/TEX.png"text>http://wiki.pentaho.com/display/EAI/Closure+Generator </xsl:text></xsl:when>
<xsl:when test="$name-caps='FILE_EXISTSVALIDATOR'"><xsl:text>http:text>"ui/images/FEX.png"wiki.pentaho.com/display/EAI/Data+Validator </xsl:text></xsl:when>
<xsl:when test="$name-caps='EVALDELAY'"><xsl:text>http:text>"ui/images/RES.png"wiki.pentaho.com/display/EAI/Delay+row </xsl:text></xsl:when>
<xsl:when test="$name-caps='SPECIALDUMMY'"><xsl:text>http:text>"ui/images/STR.png"wiki.pentaho.com/display/EAI/Dummy+%28do+nothing%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='SFTPFILTERROWS'"><xsl:text>http:text>"ui/images/SFT.png"wiki.pentaho.com/display/EAI/Filter+rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='HTTPGROUPBY'"><xsl:text>"ui/images/WEB.png"text>http://wiki.pentaho.com/display/EAI/Group+By </xsl:text></xsl:when>
<xsl:when test="$name-caps='CREATE_FILE'"><xsl:text>http:text>"ui/images/CFJ.png"wiki.pentaho.com/display/EAI/Metadata+Structure </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE_FILENULLIF'"><xsl:text>"uitext>http:/images/DFJ.png"wiki.pentaho.com/display/EAI/Null+If </xsl:text></xsl:when>
<xsl:when test="$name-caps='WAIT_FOR_FILENORMALISER'"><xsl:text>"uitext>http:/images/WFF.png"wiki.pentaho.com/display/EAI/Row+Normalizer </xsl:text></xsl:when>
<xsl:when test="$name-caps='SFTPPUTDENORMALISER'"><xsl:text>http:text>"ui/images/SFP.png"wiki.pentaho.com/display/EAI/Row+De-normalizer </xsl:text></xsl:when>
<xsl:when test="$name-caps='FILE_COMPAREFLATTENER'"><xsl:text>"ui/images/BFC.png"text>http://wiki.pentaho.com/display/EAI/Flattener </xsl:text></xsl:when>
<xsl:when test="$name-caps='MYSQL_BULK_LOADSELECTVALUES'"><xsl:text>"uitext>http:/images/MBL.png"wiki.pentaho.com/display/EAI/Select+Values </xsl:text></xsl:when>
<xsl:when test="$name-caps='MSGBOX_INFOSORTROWS'"><xsl:text>http:text>"ui/images/INF.png"wiki.pentaho.com/display/EAI/Sort+rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELAY'"><xsl:text>http:text>"ui/images/DLT.png"wiki.pentaho.com/display/EAI/Field+Splitter </xsl:text></xsl:when>
<xsl:when test="$name-caps='ZIP_FILESPLITFIELDTOROWS3'"><xsl:text>"uitext>http:/images/ZIP.png"wiki.pentaho.com/display/EAI/Split+field+to+rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='XSLTSWITCHCASE'"><xsl:text>"uitext>http:/images/XSLT.png"wiki.pentaho.com/display/EAI/Switch-Case </xsl:text></xsl:when>
<xsl:when test="$name-caps='MYSQL_BULK_FILEUNIQUE'"><xsl:text>http:text>"ui/images/MBF.png"wiki.pentaho.com/display/EAI/Unique+Rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='ABORT'"><xsl:text>"uitext>http:/images/ABR.png"wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when>
<xsl:when test="$name-caps='GET_POPXSDVALIDATOR'"><xsl:text>http:text>"ui/images/GETPOP.png"wiki.pentaho.com/display/EAI/XSD+Validator </xsl:text></xsl:when>
<xsl:when test="$name-caps='PINGXSLT'"><xsl:text>"uitext>http:/images/PNG.png"wiki.pentaho.com/display/EAI/XSL+Transformation </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE_FILESDBPROC'"><xsl:text>http:text>"ui/images/DFS.png"wiki.pentaho.com/display/EAI/Call+DB+Procedure </xsl:text></xsl:when>
<xsl:when test="$name-caps='SUCCESSCOLUMNEXISTS'"><xsl:text>"uitext>http:/images/SUC.png"wiki.pentaho.com/display/EAI/Check+if+a+column+exists </xsl:text></xsl:when>
<xsl:when test="$name-caps='XSD_VALIDATORDBJOIN'"><xsl:text>"uitext>http:/images/XSD.png"wiki.pentaho.com/display/EAI/Database+Join </xsl:text></xsl:when>
<xsl:when test="$name-caps='WRITE_TO_LOGDBLOOKUP'"><xsl:text>"uitext>http:/images/WTL.png"wiki.pentaho.com/display/EAI/Database+lookup </xsl:text></xsl:when>
<xsl:when test="$name-caps='COPY_FILESFILEEXISTS'"><xsl:text>"ui/images/CPY.png":text>http://wiki.pentaho.com/display/EAI/File+exists </xsl:text></xsl:when>
<xsl:when test="$name-caps='DTD_VALIDATORHTTP'"><xsl:text>http:text>"ui/images/DTD.png"wiki.pentaho.com/display/EAI/HTTP+Client </xsl:text></xsl:when>
<xsl:when test="$name-caps='FTP_PUTSTREAMLOOKUP'"><xsl:text>http:text>"ui/images/PFP.png"wiki.pentaho.com/display/EAI/Stream+Lookup </xsl:text></xsl:when>
<xsl:when test="$name-caps='UNZIPTABLEEXISTS'"><xsl:text>http:text>"ui/images/UZP.png"wiki.pentaho.com/display/EAI/Table+Exists </xsl:text></xsl:when>
<xsl:when test="$name-caps='CREATE_FOLDERWEBSERVICELOOKUP'"><xsl:text>"uitext>http:/images/CRF.png"wiki.pentaho.com/display/EAI/Web+services+lookup </xsl:text></xsl:when>
<xsl:when test="$name-caps='FOLDER_IS_EMPTYJOINROWS'"><xsl:text>"ui/images/EFO.png":text>http://wiki.pentaho.com/display/EAI/Join+Rows+%28Cartesian+product%29 </xsl:text></xsl:when>
<xsl:when test="$name-caps='FILES_EXISTMERGEJOIN'"><xsl:text>http:text>"ui/images/LFE.png"wiki.pentaho.com/display/EAI/Merge+Join </xsl:text></xsl:when>
<xsl:when test="$name-caps='FOLDERS_COMPAREMERGEROWS'"><xsl:text>"uitext>http:/images/FCP.png"wiki.pentaho.com/display/EAI/Merge+rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='ADD_RESULT_FILENAMESSORTEDMERGE'"><xsl:text>http:text>"ui/images/AFN.png"wiki.pentaho.com/display/EAI/Sorted+Merge </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE_RESULT_FILENAMESXMLJOIN'"><xsl:text>http:text>"ui/images/DFN.png"wiki.pentaho.com/display/EAI/XML+Join </xsl:text></xsl:when>
<xsl:when test="$name-caps='MSSQL_BULK_LOADEXECSQL'"><xsl:text>http:text>"ui/images/MBL.png"wiki.pentaho.com/display/EAI/Execute+SQL+script </xsl:text></xsl:when>
<xsl:when test="$name-caps='MOVE_FILESSCRIPTVALUEMOD'"><xsl:text>"uitext>http:/images/MVF.png"wiki.pentaho.com/display/EAI/Modified+Java+Script+Value </xsl:text></xsl:when>
<xsl:when test="$name-caps='COPY_MOVE_RESULT_FILENAMESREGEXEVAL'"><xsl:text>"uitext>http:/images/CMR.png"wiki.pentaho.com/display/EAI/Regex+Evaluation </xsl:text></xsl:when>
<xsl:when test="$name-caps='JOBCATEGORY.CATEGORY.XML_WELL_FORMEDFORMULA'"><xsl:text>"uitext>http:/images/XFC.png"wiki.pentaho.com/display/EAI/Formula </xsl:text></xsl:when>
<xsl:when test="$name-caps='SSH2_GETCOMBINATIONLOOKUP'"><xsl:text>http:text>"ui/images/SHG.png"wiki.pentaho.com/display/EAI/Combination+lookup-update </xsl:text></xsl:when>
<xsl:when test="$name-caps='SSH2_PUTDIMENSIONLOOKUP'"><xsl:text>"uitext>http:/images/SHP.png"wiki.pentaho.com/display/EAI/Dimension+Lookup-Update </xsl:text></xsl:when>
<xsl:when test="$name-caps='FTP_DELETEMAPPING'"><xsl:text>"uitext>http:/images/FTPD.png"wiki.pentaho.com/display/EAI/Mapping </xsl:text></xsl:when>
<xsl:when test="$name-caps='DELETE_FOLDERSMAPPINGINPUT'"><xsl:text>http:text>"ui/images/DSF.png"wiki.pentaho.com/display/EAI/Mapping+Input </xsl:text></xsl:when>
<xsl:when test="$name-caps='COLUMNS_EXISTMAPPINGOUTPUT'"><xsl:text>"uitext>http:/images/CEX.png"wiki.pentaho.com/display/EAI/Mapping+Output </xsl:text></xsl:when>
<xsl:when test="$name-caps='EXPORT_REPOSITORYROWSTORESULT'"><xsl:text>"uitext>http:/images/EREP.png"wiki.pentaho.com/display/EAI/Copy+rows+to+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='CONNECTED_TO_REPOSITORYGETVARIABLE'"><xsl:text>"uitext>http:/images/CREP.png"wiki.pentaho.com/display/EAI/Get+Variable </xsl:text></xsl:when>
<xsl:when test="$name-caps='TRUNCATE_TABLESFILESFROMRESULT'"><xsl:text>http:text>"ui/images/TRT.png"wiki.pentaho.com/display/EAI/Get+files+from+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='SET_VARIABLESROWSFROMRESULT'"><xsl:text>http:text>"ui/images/SVA.png"wiki.pentaho.com/display/EAI/Get+rows+from+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='MS_ACCESS_BULK_LOADSETVARIABLE'"><xsl:text>http:text>"ui/images/MBL.png"wiki.pentaho.com/display/EAI/Set+Variable </xsl:text></xsl:when>
<xsl:when test="$name-caps='WAIT_FOR_SQLFILESTORESULT'"><xsl:text>"uitext>http:/images/WSQL.png"wiki.pentaho.com/display/EAI/Set+files+in+result </xsl:text></xsl:when>
<xsl:when test="$name-caps='EVAL_TABLE_CONTENTMAILVALIDATOR'"><xsl:text>"uitext>http:/images/ETC.png"wiki.pentaho.com/display/EAI/Mail+Validator </xsl:text></xsl:when>
<xsl:when test="$name-caps='SIMPLE_EVALAGGREGATEROWS'"><xsl:text>"uitext>http:/images/SEV.png"wiki.pentaho.com/display/EAI/Aggregate+Rows </xsl:text></xsl:when>
<xsl:when test="$name-caps='SNMP_TRAPORABULKLOADER'"><xsl:text>http:text>"ui/images/SNMP.png"wiki.pentaho.com/display/EAI/Oracle+Bulk+Loader </xsl:text></xsl:when>
<xsl:when test="$name='JOBCATEGORY.CATEGORY.MAIL_VALIDATOR'"><xsl:text>"ui/images/MAV.png"< <xsl:otherwise><xsl:text>http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation</xsl:text></xsl:when>otherwise>
</xsl:choose>
</xsl:variable>
<a>
<xsl:text disable-output-escapingattribute name="yeshref"><img src=</xsl:text>
<xsl:value-of select="$fname$web-addr"/>
</xsl:attribute>
<xsl:text disable-output-escapingvalue-of select="yes$name"/> style="border:1px
solid black" /></xsl:text>a>
</xsl:template>
</xsl:stylesheet>
|