Altova XMLSpy 2024 Enterprise Edition

如果是通过JAR文件访问,则JAR文件的URI必须使用以下语法指定:

 

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

         

然后通过使用标识该类的命名空间URI的前缀来调用该方法:classNS:method()

 

 在上文中:

 

java:表示一个正被调用的Java函数。

classname是用户定义的类的名称

?是类名称和路径之间的分隔符

path=jar:表示给出了JAR文件的路径

uri-of-jarfile是jar文件的URI

!/是路径的结束分隔符

classNS:method()表示对方法的调用

 

 

或者,类名可以与方法调用一起给出。下方给出了两个示例:

 

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

 

以下是一个完整的XSLT示例,使用了一个JAR文件来调用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>

 

提示:当一个路径是由扩展函数提供的,则该路径将被添加到ClassLoader。

 

© 2017-2023 Altova GmbH