我在类中有自己的java静态函数:
package com.test;
public class A {
public static void returnSameNodes(Object nodes){
return nodes;
}
}
我试图将此函数绑定到XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:ext="java:com.test.A" >
<xsl:template match="root">
<xsl:apply-templates select="ext:returnSameNodes(//child::*)"></xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
,但出现以下错误:
找不到名为etc的匹配单参数函数。
我知道我做错了什么 - 我必须告诉撒克逊人(9B)我的班级在特定位置,但我不知道该怎么做。有什么建议??包括例如Math.sqrt()效果很好。感谢
编辑:问题是设置Java类路径,有人知道如何针对这种特殊情况执行此操作吗?以下链接中有关于设置类路径变量的注释,但是如何? http://www.saxonica.com/documentation/extensibility/functions.xml 谢谢你的建议答案 0 :(得分:1)
如果您从命令行运行,那么
(a)使用-TJ选项更好地诊断扩展功能的问题
(b)确保包含您的方法的类在类路径上,例如
java -cp mycode; saxon9ee.jar net.sf.saxon.Transform -TJ -xsl:xxx.xsl -s:yyy.xml
其中mycode是包含已编译类的目录
(c)确保您使用支持自反扩展功能的Saxon版本(Saxon-HE不支持)。