Java: Métodos estáticos y campos estáticos
La llamada a un método estático la hace directamente su nombre Java y se hace presentando los argumentos para el método. A los campos estáticos (es decir, los métodos que no toman argumentos), como los campos de valor constante E y PI, se accede sin especificar ningún argumento.
Ejemplos de código XSLT
Aquí puede ver varios ejemplos de cómo se llama a métodos y campos estáticos:
<xsl:value-of xmlns:jMath="java:java.lang.Math"
select="jMath:cos(3.14)" />
<xsl:value-of xmlns:jMath="java:java.lang.Math"
select="jMath:cos( jMath:PI() )" />
<xsl:value-of xmlns:jMath="java:java.lang.Math"
select="jMath:E() * jMath:cos(3.14)" />
Observe que las funciones de extensión anteriores tienen el formato prefijo:nombreFunción(). En los tres ejemplos anteriores, el prefijo es jMath:, que está asociado al URI de espacio de nombres java:java.lang.Math. (El URI de espacio de nombres debe empezar por java:. En los ejemplos anteriores se extiende para contener el nombre de la clase (java.lang.Math).) La parte nombreFunción() de las funciones de extensión debe coincidir con el nombre de una clase pública (p. ej. java.lang.Math) seguido del nombre de un método estático público con sus argumentos (como cos(3.14)) o de un campo estático público (como PI()).
En los tres ejemplos anteriores, el nombre de la clase se incluyó en el URI de espacio de nombres. Si no estuviera en el URI de espacio de nombres, se incluiría en la parte nombreFunción() de la función de extensión. Por ejemplo:
<xsl:value-of xmlns:java="java:"
select="java:java.lang.Math.cos(3.14)" />
Ejemplo de XQuery
Un ejemplo de XQuery similar sería:
<cosine xmlns:jMath="java:java.lang.Math">
{jMath:cos(3.14)}
</cosine>