XML

Java Call

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:java="java"
                version="1.0">

<xsl:template match="title">
    <xsl:variable name="titleStr" select="java:lang.String.new(.)"/>
    <xsl:value-of select="java:toUpperCase($titleStr)"/>
    </xsl:template>

  </xsl:stylesheet>

Java Function

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:lxslt="http://xml.apache.org/xslt"
                xmlns:counter="MyCounter"
                extension-element-prefixes="counter"
                version="1.0">

  <lxslt:component prefix="counter"
                   elements="init"
                   functions="read">
    <lxslt:script lang="javaclass" src="xalan://MyCounter"/>
    </lxslt:component>

  ...

  <counter:init name="index" value="1"/>

  ...

  <xsl:value-of select="counter:read('index')"/>

  ...

  </xsl:stylesheet>

public class MyCounter {
  public void init(XSLProcessorContext context,
                   ElemExtensionCall extElem) {
    String name = extElem.getAttribute("name");
    String value = extElem.getAttribute("value");
    ...
    }
  public int read(String name) {
    ...
    return "Hello !";
    }
  }

Function

<xsl:variable name="year" select="2001"/>
<xsl:call-template name="b">
  <xsl:with-param name="the-year" select="$year"/>
  </xsl:call-template>

<xsl:template name="b">
  <xsl:param name="the-year"/>
  <xsl:message>In the template <xsl:value-of select="$the-year"/></xsl:message>
  </xsl:template>

Message

<xsl:message>Bla bla bla</xsl:message>

Leave a Reply

You must be logged in to post a comment.