Altova MapForce 2023 Enterprise Edition

Si se accede a las clases por medio de un archivo JAR, entonces se debe especificar el URI del archivo JAR usando esta sintaxis:

 

         xmlns:claseEspacioNombres="java:nombreClase?ruta=jar:uri-del-archivoJar!/"

         

 Para la llamada al método se usa el prefijo del URI de espacio de nombres que identifica la clase: claseEspacioNombres:método()

 

 En la sintaxis anterior:

 

java: indica que se está llamando a una función de Java

nombreClase es el nombre de la clase definida por el usuario

? es el separador entre el nombre de la clase y la ruta de acceso

ruta=jar: indica que se ofrece una ruta de acceso a un archivo JAR

uri-del-archivoJar es el URI del archivo JAR

!/ es el delimitador final de la ruta de acceso

claseEspacioNombres:método() es la llamada al método

 

 

Otra opción es dar el nombre de la clase con la llamada al método. Por ejemplo:

 

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

 

Y aquí puede ver un ejemplo de XSLT que usa un archivo JAR para llamar a una función de extensión 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>

 

Nota:        cuando se presenta una ruta de acceso por medio de una función de extensión, la ruta de acceso se añade al ClassLoader.

 

© 2017-2023 Altova GmbH