Java: Statische Methoden und statische Felder
Eine statische Methode wird direkt über ihren Java-Namen und durch Angabe der Argumente für die Methode aufgerufen. Statische Felder (Methoden, die keine Argumente haben), wie z.B. die Konstantenwertfelder E und PI werden ohne Angabe eines Arguments aufgerufen.
XSLT-Beispiele
Hier sehen Sie einige Beispiele dafür, wie statische Methoden und Felder aufgerufen werden können:
<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)" />
Beachten Sie, dass die Erweiterungsfunktionen die Form prefix:fname() haben. Das Präfix ist in allen drei Fällen jMath:. Es ist mit der Namespace URI java:java.lang.Math verknüpft. (Die Namespace URI muss mit java:. beginnen. In den obigen Beispielen wurde es um den Klassennamen erweitert (java.lang.Math).) Der Teil fname() der Erweiterungsfunktionen muss mit dem Namen der öffentlichen Klasse (z.B. java.lang.Math) gefolgt vom Namen einer öffentlichen statischen Methode mit ihrem/ihren Argument(en) (wie z.B.(3.14)) oder einem öffentlichen statischen Feld (z.B. PI()) übereinstimmen.
In den obigen Beispielen wurde der Klassenname in die Namespace URI inkludiert. Wäre sie nicht in der Namespace URI enthalten, müsste sie in den fname() Teil der Erweiterungsfunktion inkludiert werden. Z.B:
<xsl:value-of xmlns:java="java:"
select="java:java.lang.Math.cos(3.14)" />
XQuery-Beispiel
Ein ähnliches Beispiel in XQuery wäre:
<cosine xmlns:jMath="java:java.lang.Math">
{jMath:cos(3.14)}
</cosine>