xslt |

## Description

Invoke XSLT Processor.

## Parameters

processor
  Description: Name of XSLT processor

  Domain: xalan_cpp|xalan_java|xsltproc|gexslt

  Default: xalan_cpp

  JDK 1.4 notes: Since with JDK 1.4 Xalan is included you do not have to make any additional configuration like putting Xalan, Xerces into the classpath. On how to use newer versions of Xalan than the one coming with the JDK 1.4 refer to the Xalan homepage on http://xml.apache.org/xalan-j. In JDK 1.5 it changed again and by default there is no possibility anymore to invoke xalan from the commandline (see http://www.biglist.com/lists/xsl-list/archives/200503/msg01112.html for more information) and in addition the packagenames in the JDK changed (from org.apache.xalan.xslt.Process to com.sun.org.apache.xalan.internal.xslt.Process). Probably the easies way with JDK 1.5 is to put Xalan again in the classpath as it was done with JDK1.3 but I did not spend very much time yet to investigate further.

  Java 5 notes: In Java 5 it changed again and by default there is no possibility anymore to invoke xalan from the commandline (see http://www.biglist.com/lists/xsl-list/archives/200503/msg01112.html for more information) and in addition the packagenames in the JDK changed (from org.apache.xalan.xslt.Process to com.sun.org.apache.xalan.internal.xslt.Process). Probably the easies way with Java 5 is to put Xalan again in the classpath as it was done with JDK 1.3 but I did not spend a lot of time to investigate further.

input
  Description: Name of XML input file

  Domain: Valid filename pointing to existing file

  Default: -

xsl
  Description: Name of stylesheet (XSL) file

  Domain: Valid filename pointing to existing file

  Default: -

output
  Description: Name of output file

  Domain: Valid filename

  Default: -

force
  Description: Execute even if it would not be necessary since the outputfile is newer than both the input and the xsl file

  Domain: Boolean (true|false)

  Default: false

indent
  Description: Number of spaces for indentation of child elements

  Domain: Integer

  Default: 4

## RNG Specification

      <define name="xslt">
        <element name="xslt">
          <ref name="dir_if_unless"/>
          <attribute name="input"/>
          <attribute name="output"/>
          <attribute name="stylesheet"/>
          <optional>
            <attribute name="processor">
              <!-- runtime evaluation
              <choice>
                <value>xalan_cpp</value>
                <value>xalan_java</value>
                <value>xsltproc</value>
              </choice>
              -->
            </attribute>
          </optional>
          <optional>
            <attribute name="force">
              <!-- runtime evaluation
              <choice>
                <value>true</value>
                <value>false</value>
              </choice>
              -->
            </attribute>
          </optional>
          <optional>
            <attribute name="indent"/> <!-- if attribute 'processor' equals 'xalan_java' or 'xalan_cpp'--><-- TODO - implement for gexslt -->
          </optional>
          <optional>
            <attribute name="format"/> <!-- if attribute 'processor' equals 'xalan_java' -->
          </optional>
          <zeroOrMore>
            <element name="parameter">
              <attribute name="name"/>
              <attribute name="value"/>
            </element>
          </zeroOrMore>
          <optional>
            <attribute name="extdirs"/> <!-- if attribute 'processor' equals 'xalan_java' -->
          </optional>
          <optional>
            <attribute name="classpath"/> <!-- if attribute 'processor' equals 'xalan_java' -->
          </optional>
        </element>
      </define>

## Examples

Note that string parameters must be surrounded by a single quote ('), else they will be interpreted as a number.

For gexslt, all parameters are string values, so the single quotes are not needed, unless they contain embedded blanks, which might confuse the shell.

Gexslt can also take any XPath expression as a parameter value, but this is not possible via geant.

      <xslt
        input="${GOBO}/doc/structure/index.xml"
        stylesheet="${GOBO}/doc/misc/gobo2db.xsl"
        output="${GOBO}/doc/structure/index2.xml"
      >

      <xslt
        input="${GOBO}/doc/structure/index.xml"
        stylesheet="${GOBO}/doc/misc/gobo2html.xsl"
        output="${GOBO}/doc/structure/index2.html"
      >
        <parameter name="previous" value="&quot;'../license.html'&quot;"/>
        <parameter name="next" value="&quot;'../time/index.html'&quot;"/>
        <parameter name="toc" value="&quot;'../index.html'&quot;"/>
      </xslt>