Format of KTR and KJB files
empty ktr file
<?xml version="1.0" encoding="UTF-8"?> <transformation> <info> <name>Transformation 1</name> <description/> <extended_description/> <trans_version/> <directory>/</directory> <parameters> </parameters> <log> <read/> <write/> <input/> <output/> <update/> <rejected/> <connection/> <table/> <step_performance_table/> <use_batchid>Y</use_batchid> <use_logfield>N</use_logfield> <size_limit_lines/> </log> <maxdate> <connection/> <table/> <field/> <offset>0.0</offset> <maxdiff>0.0</maxdiff> </maxdate> <size_rowset>10000</size_rowset> <sleep_time_empty>50</sleep_time_empty> <sleep_time_full>50</sleep_time_full> <unique_connections>N</unique_connections> <feedback_shown>Y</feedback_shown> <feedback_size>50000</feedback_size> <using_thread_priorities>Y</using_thread_priorities> <shared_objects_file/> <capture_step_performance>N</capture_step_performance> <step_performance_capturing_delay>1000</step_performance_capturing_delay> <dependencies> </dependencies> <partitionschemas> </partitionschemas> <slaveservers> </slaveservers> <clusterschemas> </clusterschemas> <modified_user>-</modified_user> <modified_date>2010/08/24 11:58:23.312</modified_date> </info> <notepads> </notepads> <order> </order> <step_error_handling> </step_error_handling> <slave-step-copy-partition-distribution> </slave-step-copy-partition-distribution> <slave_transformation>N</slave_transformation> </transformation>
empty kjb file
<?xml version="1.0" encoding="UTF-8"?> <job> <name>empty</name> <description/> <extended_description/> <job_version/> <directory>/</directory> <created_user>-</created_user> <created_date>2010/08/24 12:09:26.750</created_date> <modified_user>-</modified_user> <modified_date>2010/08/24 12:09:26.750</modified_date> <parameters> </parameters> <slaveservers> </slaveservers> <logconnection/> <logtable/> <size_limit_lines/> <use_batchid>Y</use_batchid> <pass_batchid>N</pass_batchid> <use_logfield>Y</use_logfield> <shared_objects_file/> <entries> </entries> <hops> </hops> <notepads> </notepads> </job>
XSLT transformation script
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- This xslt transform dynamically transforms ktr and kjb file to be viewed in the browser. Dependencies: 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()='transformation'"> <xsl:call-template name="trans"/> </xsl:when> <!-- level 1 Header for Job Block --> <xsl:when test="name()='job'"> <xsl:call-template name="job"/> </xsl:when> <!-- level 2 Header for Info Block, Trans or Job --> <xsl:when test="name()='info'"> <xsl:call-template name="info"/> </xsl:when> <!-- Header for step or entry --> <xsl:when test="name()='step' or name()='entry'"> <!-- STEP/ENTRY In CAPS --> <span style="text-transform:uppercase"> <xsl:value-of select="name()"/> </span> <xsl:text> </xsl:text> <!-- add image link --> <xsl:call-template name="img"> <xsl:with-param name="name"> <xsl:value-of select="./type" /> </xsl:with-param> </xsl:call-template> <!-- Name of the step or entry in [] --> <xsl:text> [</xsl:text> <xsl:value-of select="./name"/> <xsl:text>] </xsl:text> </xsl:when> <xsl:otherwise> <span style="text-transform:uppercase"> <xsl:value-of select="name()"/> </span> </xsl:otherwise> </xsl:choose> </h2> </xsl:when> <!-- Lower level blocks --> <xsl:otherwise> <h4 style="text-transform:uppercase; text-align:left; background:white"> <xsl:value-of select="name()"/> <xsl:if test="name"> <xsl:text> [</xsl:text><xsl:value-of select="name"/><xsl:text>]</xsl:text> </xsl:if> </h4> </xsl:otherwise> </xsl:choose> <!-- bread crumbs <code><xsl:for-each select="ancestor::*"><xsl:value-of select="name()"/>::</xsl:for-each></code> --> <!-- END OF HEADERS --> <!-- "Show Hide" section --> <a href="#{generate-id(.)}" onClick="shoh('{generate-id(.)}');" > <img 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:choose> <!-- Process special nodes where we pivot the attribute value pairs into a table --> <!-- Connection attributes --> <xsl:when test="name() = 'attributes'"> <xsl:call-template name="attr"/> </xsl:when> <!-- hops and order in trans and job --> <xsl:when test="name() = 'order' or name() = 'hops'"> <xsl:call-template name="order"/> </xsl:when> <!-- all GUI XLOC and YLOC --> <xsl:when test="name() = 'GUI'"> <xsl:call-template name="gui"/> </xsl:when> <!-- All instances of fields --> <xsl:when test="name() = 'fields'"> <xsl:call-template name="leafs"/> <h4 style="background:white">SELECT</h4> <xsl:call-template name="fields"/> <h4 style="background:white">METADATA</h4> <xsl:call-template name="meta_fields"/> </xsl:when> <!-- Trans Lookup step --> <xsl:when test="name() = 'lookup'"> <xsl:call-template name="leafs"/> <h4 style="background:white">KEYS</h4> <xsl:call-template name="keys"/> <h4 style="background:white">VALUES</h4> <xsl:call-template name="values"/> </xsl:when> <!-- Database connections --> <xsl:when test="name() = 'connection'"> <xsl:call-template name="leafs"/> </xsl:when> <!-- Default: Process a child node (generate details) --> <xsl:otherwise> <xsl:call-template name="node"/> </xsl:otherwise> </xsl:choose> </div> <!-- Details --> </div> <!-- NODE --> </xsl:for-each> </xsl:template> <!-- ================================================================= Display routines ==================================================================== --> <!-- Process all leaf nodes of current node --> <xsl:template name="leafs"> <!-- The leafs are laid out in a table of Element: Value pair --> <table class="confluenceTable"><tbody> <xsl:for-each select="*[count(text())=1]"> <!-- Show only non-empty elements --> <tr> <td valign="top" style="text-transform:uppercase" class="confluenceTd"> <xsl:value-of select="name()"/> </td> <td class="confluenceTd"> <xsl:choose> <xsl:when 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> <!-- Display code or multi line notes --> <xsl:when test="name()='sql' or name()='jsScript_script' or name()='note'"> <code> <xsl:call-template name="string-newline"> <xsl:with-param name="original"> <xsl:value-of select="."/> </xsl:with-param> </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='ZIP_FILE'"><xsl:text>ui/images/ZIP.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='MYSQL_BULK_FILE'"><xsl:text>ui/images/MBF.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='GET_POP'"><xsl:text>ui/images/GETPOP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PING'"><xsl:text>ui/images/PNG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILES'"><xsl:text>ui/images/DFS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SUCCESS'"><xsl:text>ui/images/SUC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XSD_VALIDATOR'"><xsl:text>ui/images/XSD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WRITE_TO_LOG'"><xsl:text>ui/images/WTL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_FILES'"><xsl:text>ui/images/CPY.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DTD_VALIDATOR'"><xsl:text>ui/images/DTD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FTP_PUT'"><xsl:text>ui/images/PFP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UNZIP'"><xsl:text>ui/images/UZP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FOLDER'"><xsl:text>ui/images/CRF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDER_IS_EMPTY'"><xsl:text>ui/images/EFO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILES_EXIST'"><xsl:text>ui/images/LFE.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDERS_COMPARE'"><xsl:text>ui/images/FCP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ADD_RESULT_FILENAMES'"><xsl:text>ui/images/AFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_RESULT_FILENAMES'"><xsl:text>ui/images/DFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MSSQL_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MOVE_FILES'"><xsl:text>ui/images/MVF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_MOVE_RESULT_FILENAMES'"><xsl:text>ui/images/CMR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOBCATEGORY.CATEGORY.XML_WELL_FORMED'"><xsl:text>ui/images/XFC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SSH2_GET'"><xsl:text>ui/images/SHG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SSH2_PUT'"><xsl:text>ui/images/SHP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FTP_DELETE'"><xsl:text>ui/images/FTPD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FOLDERS'"><xsl:text>ui/images/DSF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNS_EXIST'"><xsl:text>ui/images/CEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXPORT_REPOSITORY'"><xsl:text>ui/images/EREP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CONNECTED_TO_REPOSITORY'"><xsl:text>ui/images/CREP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TRUNCATE_TABLES'"><xsl:text>ui/images/TRT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SET_VARIABLES'"><xsl:text>ui/images/SVA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MS_ACCESS_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_SQL'"><xsl:text>ui/images/WSQL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EVAL_TABLE_CONTENT'"><xsl:text>ui/images/ETC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SIMPLE_EVAL'"><xsl:text>ui/images/SEV.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SNMP_TRAP'"><xsl:text>ui/images/SNMP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOBCATEGORY.CATEGORY.MAIL_VALIDATOR'"><xsl:text>ui/images/MAV.png</xsl:text></xsl:when> <xsl:otherwise><xsl:text>ui/images/spoon32.png</xsl:text></xsl:otherwise> </xsl:choose> </xsl: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='SPECIAL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Start </xsl:text></xsl:when> <xsl:when test="$name-caps='DUMMY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dummy+Job+Entry </xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Abort+Job </xsl:text></xsl:when> <xsl:when test="$name-caps='MSGBOX_INFO'"><xsl:text>http://wiki.pentaho.com/display/EAI/Display+Msgbox+info </xsl:text></xsl:when> <xsl:when test="$name-caps='JOB'"><xsl:text>http://wiki.pentaho.com/display/EAI/Job+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='PING'"><xsl:text>http://wiki.pentaho.com/display/EAI/Ping+a+host </xsl:text></xsl:when> <xsl:when test="$name-caps='SUCCESS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Success </xsl:text></xsl:when> <xsl:when test="$name-caps='TRAN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Transformation+%28job+entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='WRITE_TO_LOG'"><xsl:text>http://wiki.pentaho.com/display/EAI/Write+to+log </xsl:text></xsl:when> <xsl:when test="$name-caps='GET_POP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Mails+from+POP </xsl:text></xsl:when> <xsl:when test="$name-caps='MAIL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mail </xsl:text></xsl:when> <xsl:when test="$name-caps='ADD_RESULT_FILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+filenames+to+result </xsl:text></xsl:when> <xsl:when test="$name-caps='VALUEMAPPER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Copy+Files </xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FOLDER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Create+a+folder </xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Create+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_RESULT_FILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+filenames+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+Files </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FOLDERS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+folders </xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_COMPARE'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+compare </xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/HTTP </xsl:text></xsl:when> <xsl:when test="$name-caps='MOVE_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Move+files </xsl:text></xsl:when> <xsl:when test="$name-caps='UNZIP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Unzip+file </xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Wait+for+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='ZIP_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Zip+files </xsl:text></xsl:when> <xsl:when test="$name-caps='TRUNCATE_TABLES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Truncate+tables </xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDER_IS_EMPTY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+a+folder+is+empty </xsl:text></xsl:when> <xsl:when test="$name-caps='FILES_EXIST'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNS_EXIST'"><xsl:text>http://wiki.pentaho.com/display/EAI/Columns+exist+in+a+table </xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_EXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLE_EXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Wait+for </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Evaluating+conditions+in+The+JavaScript+job+entry </xsl:text></xsl:when> <xsl:when test="$name-caps='SQL'"><xsl:text>http://wiki.pentaho.com/display/EAI/SQL </xsl:text></xsl:when> <xsl:when test="$name-caps='SHELL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Shell </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Bulkload+into+MySQL </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+XML+file+is+well+formed </xsl:text></xsl:when> <xsl:when test="$name-caps='DTD_VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/DTD+Validator+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='XSD_VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSD+Validator+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSL+Transformation+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='FTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+a+file+with+FTP </xsl:text></xsl:when> <xsl:when test="$name-caps='SFTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+a+file+with+SFTP </xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Access+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='CSVINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/CSV+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/De-serialize+from+file </xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Excel+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Fixed+File+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Generate+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps='RANDOMVALUE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Generate+Random+Value </xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+File+Names </xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILESROWSCOUNT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Files+Row+Count </xsl:text></xsl:when> <xsl:when test="$name-caps='SYSTEMINFO'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+System+Info </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Data+From+XML </xsl:text></xsl:when> <xsl:when test="$name-caps='LDAPINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/LDAP+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='LDIFINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/LDIF+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='MONDRIANINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mondrian+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Property+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='RSSINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/RSS+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Streaming+XML+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Text+File+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='XBASEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XBase+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Access+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete </xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Excel+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='INSERTUPDATE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Insert+-+Update </xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Property+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='SQLFILEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/SQL+File+Output </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Serialize+to+file </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Text+File+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='UPDATE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Update </xsl:text></xsl:when> <xsl:when test="$name-caps='XMLOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Abort </xsl:text></xsl:when> <xsl:when test="$name-caps='ADDXML'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+XML </xsl:text></xsl:when> <xsl:when test="$name-caps='CHECKSUM'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+a+checksum </xsl:text></xsl:when> <xsl:when test="$name-caps='CONSTANT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+Constants </xsl:text></xsl:when> <xsl:when test="$name-caps='SEQUENCE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+sequence </xsl:text></xsl:when> <xsl:when test="$name-caps='ANALYTICQUERY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Analytic+Query </xsl:text></xsl:when> <xsl:when test="$name-caps='APPEND'"><xsl:text>http://wiki.pentaho.com/display/EAI/Append+streams </xsl:text></xsl:when> <xsl:when test="$name-caps='BLOCKINGSTEP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Blocking+step </xsl:text></xsl:when> <xsl:when test="$name-caps='CALCULATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Calculator </xsl:text></xsl:when> <xsl:when test="$name-caps='CLONEROW'"><xsl:text>http://wiki.pentaho.com/display/EAI/Clone+row </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Closure+Generator </xsl:text></xsl:when> <xsl:when test="$name-caps='VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Data+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='DELAY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delay+row </xsl:text></xsl:when> <xsl:when test="$name-caps='DUMMY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dummy+%28do+nothing%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='FILTERROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Filter+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='GROUPBY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Group+By </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Metadata+Structure </xsl:text></xsl:when> <xsl:when test="$name-caps='NULLIF'"><xsl:text>http://wiki.pentaho.com/display/EAI/Null+If </xsl:text></xsl:when> <xsl:when test="$name-caps='NORMALISER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Row+Normalizer </xsl:text></xsl:when> <xsl:when test="$name-caps='DENORMALISER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Row+De-normalizer </xsl:text></xsl:when> <xsl:when test="$name-caps='FLATTENER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Flattener </xsl:text></xsl:when> <xsl:when test="$name-caps='SELECTVALUES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Select+Values </xsl:text></xsl:when> <xsl:when test="$name-caps='SORTROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Sort+rows </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Field+Splitter </xsl:text></xsl:when> <xsl:when test="$name-caps='SPLITFIELDTOROWS3'"><xsl:text>http://wiki.pentaho.com/display/EAI/Split+field+to+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='SWITCHCASE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Switch-Case </xsl:text></xsl:when> <xsl:when test="$name-caps='UNIQUE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Unique+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when> <xsl:when test="$name-caps='XSDVALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSD+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSL+Transformation </xsl:text></xsl:when> <xsl:when test="$name-caps='DBPROC'"><xsl:text>http://wiki.pentaho.com/display/EAI/Call+DB+Procedure </xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+a+column+exists </xsl:text></xsl:when> <xsl:when test="$name-caps='DBJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Database+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='DBLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Database+lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='FILEEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+exists </xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/HTTP+Client </xsl:text></xsl:when> <xsl:when test="$name-caps='STREAMLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Stream+Lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Exists </xsl:text></xsl:when> <xsl:when test="$name-caps='WEBSERVICELOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Web+services+lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='JOINROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Join+Rows+%28Cartesian+product%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Merge+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Merge+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='SORTEDMERGE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Sorted+Merge </xsl:text></xsl:when> <xsl:when test="$name-caps='XMLJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='EXECSQL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Execute+SQL+script </xsl:text></xsl:when> <xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>http://wiki.pentaho.com/display/EAI/Modified+Java+Script+Value </xsl:text></xsl:when> <xsl:when test="$name-caps='REGEXEVAL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Regex+Evaluation </xsl:text></xsl:when> <xsl:when test="$name-caps='FORMULA'"><xsl:text>http://wiki.pentaho.com/display/EAI/Formula </xsl:text></xsl:when> <xsl:when test="$name-caps='COMBINATIONLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Combination+lookup-update </xsl:text></xsl:when> <xsl:when test="$name-caps='DIMENSIONLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dimension+Lookup-Update </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPING'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSTORESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Copy+rows+to+result </xsl:text></xsl:when> <xsl:when test="$name-caps='GETVARIABLE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Variable </xsl:text></xsl:when> <xsl:when test="$name-caps='FILESFROMRESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+files+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSFROMRESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+rows+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='SETVARIABLE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Set+Variable </xsl:text></xsl:when> <xsl:when test="$name-caps='FILESTORESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Set+files+in+result </xsl:text></xsl:when> <xsl:when test="$name-caps='MAILVALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mail+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='AGGREGATEROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Aggregate+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps='ORABULKLOADER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Oracle+Bulk+Loader </xsl:text></xsl:when> <xsl:otherwise><xsl:text>http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation</xsl:text></xsl:otherwise> </xsl:choose> </xsl:variable> <a> <xsl:attribute name="href"> <xsl:value-of select="$web-addr"/> </xsl:attribute> <xsl:value-of select="$name"/> </a> </xsl:template> </xsl:stylesheet> testing 1 2123 3