Benutzerdefinierte Jar-Dateien

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Informationen zu den Prozessoren > XSLT- und XPath/XQuery-Funktionen > Diverse Erweiterungsfunktionen > Java-Erweiterungsfunktionen >

Benutzerdefinierte Jar-Dateien

JAR-Dateien

Wenn der Zugriff über eine JAR-Datei erfolgt, muss die URI der JAR-Datei mit Hilfe der folgenden Syntax definiert werden:

 

         xmlns:classNS="java:classname?path=jar:uri-of-jarfile!/"

 Die Methode wird anschließend durch Verwendung des Präfix der Namespace URI aufgerufen, der die Klasse bezeichnet: classNS:method()

 

 wobei im obigen Beispiel:

 

java: angibt, dass eine Java-Funktion aufgerufen wird

classname der Name der Klasse der benutzerdefinierten  Klasse ist

? das Trennzeichen zwischen dem Klassennamen und  dem Pfad ist

path=jar: angibt, dass es sich um einen Pfad zu einer JAR-Datei handelt

uri-of-jarfile die URI der jar-Datei angibt

!/ das Trennzeichen am Ende des Pfades ist

classNS:method() der Aufruf der Methode ist

 

Alternativ dazu kann der Klassenname mit dem Methodenaufruf angegeben werden. Hier sehen Sie zwei Beispiele für die Syntax:

 

         xmlns:ns1="java:docx.layout.pages?path=jar:file:///c:/projects/docs/docx.jar!/"

         ns1:main()                

 

         xmlns:ns2="java?path=jar:file:///c:/projects/docs/docx.jar!/"

         ns2:docx.layout.pages.main()

 

Hier sehen Sie ein komplettes XSLT-Beispiel, in dem eine JAR-Datei verwendet wird, um eine Java-Erweiterungsfunktion aufzurufen.:

 

 <xsl:stylesheet version="2.0" 

         xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

         xmlns:xs="http://www.w3.org/2001/XMLSchema" 

         xmlns:fn="http://www.w3.org/2005/xpath-functions"

         xmlns:car="java?path=jar:file:///C:/test/Car1.jar!/" >

 <xsl:output exclude-result-prefixes="fn car xsl xs"/>

 

 <xsl:template match="/">

                 <xsl:variable name="myCar" select="car:Car1.new('red')" /> 

                 <a><xsl:value-of select="car:Car1.getCarColor($myCar)"/></a>

 </xsl:template>

 

 <xsl:template match="car"/>

 

 </xsl:stylesheet>

 

Anmerkung:Wenn ein Pfad über eine Erweiterungsfunktion angegeben wird, wird er zum ClassLoader hinzugefügt.

 


© 2019 Altova GmbH