用户定义的Jar文件
如果是通过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。 |