Altova XMLSpy 2024 Professional Edition

Fichiers Jar définis par l'utilisateur

Accueil Préc Haut Suivant

Si l'accès s'effectue par le biais d'un fichier JAR, l'URI du fichier JAR doit être spécifié à l'aide de la syntaxe suivante :

 

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

         

La méthode est ensuite appelée en utilisant le préfixe de l'URI d'espace de nom qui identifie la classe : classNS:method()

 

 Dans l'exemple ci-dessus :

 

java: indique qu'une fonction Java est appelée

classname est le nom de la classe définie par l'utilisateur

? est le séparateur entre le nom de classe et le chemin d'accès

path=jar: indique qu'un chemin d'accès vers un fichier JAR est donné

uri-of-jarfile est l'URI du fichier jar

!/ est le délimiteur de fin du chemin d'accès

classNS:method() est l'appel de la méthode

 

 

En alternative, le nom de classe peut être donné avec l'appel de la méthode. Voici deux exemples de la syntaxe :

 

         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()

 

Voici un exemple XSLT complet qui utilise un fichier JAR pour appeler une fonction d'extension Java :

 

 <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>

 

Note :Lorsqu'un chemin d'accès est fourni par le biais de la fonction d'extension, le chemin est ajouté au ClassLoader.

 

© 2017-2023 Altova GmbH