XSLTは、ある種の変換を実行するには優れたツールですが、ゼロでない文字列操作や反復処理などの変換では、十分な機能が備わっているとはいえません。Novell XSLTプロセッサには、スタイルシートからJava(広い意味ではJNIでアクセス可能な他の言語)で実装された関数を呼び出すことができる、拡張機能が実装されています。
具体例としては、クエリプロセッサによる上記の例や、Javaによる文字列操作を示した次の例を参照してください(長すぎる行はラップされており、<では開始されません)。
<!-- get-dn-prefix places the part of the passed dn that -->
<!-- precedes the last occurrence of ’\’ in the passed dn -->
<!-- in a result tree fragment meaning that it can be -->
<!-- used to assign a variable value -->
<xsl:template name="get-dn-prefix" xmlns:jstring="http://
www.novell.com/nxsl/java/java.lang.String">
<xsl:param name="src-dn"/>
<!-- use java string stuff to make this much easier -->
<xsl:variable name="dn" select="jstring:new($src-dn)"/>
<xsl:variable name="index" select="jstring:lastIndexOf
($dn,’\’)"/>
<xsl:if test="$index != -1">
<xsl:value-of select="jstring:substring($dn,0,$index)
"/>
</xsl:if>
</xsl:template>