错误:无法使用 Saxon EE 的 XSLT 2.0 找到匹配的 0 参数函数(许可证文件位于与 JAR 相同的文件夹中)

问题描述 投票:0回答:1

我正在使用 saxon EE 处理器通过 XSLT-2.0 进行 XML 转换。但它给出了 XSL 文件错误。

以下是XSL文件的代码

    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:setfile ="java:com.output.extensionFile">

<xsl:param name="outDir" select="setfile:getCurrentDir(setfile:new())"/>
 
    </xsl:stylesheet>

下面是我们调用转换器以将 XML 转换为 HTML 的代码。

{
        javax.xml.transform.TransformerFactory tFactory = new EnterpriseTransformerFactory();
        XslImportResolver myResolve = new XslImportResolver();
        tFactory.setURIResolver( myResolve );
        javax.xml.transform.Transformer transformer = tFactory.newTransformer
                        (new javax.xml.transform.stream.StreamSource(xslLocation));
        Registry registry = Registry.getRegistry( this );
        transformer.transform( new StreamSource( xmlLocation ),
                new StreamResult( new FileOutputStream( htmlLocation ) ) );
 }

导入 Java 类的 Java 代码

public class extensionFile {
  
  // Empty Constructor
public extensionFile()
{
}

   public Object getCurrentDir()
    {
        return ReportStatic.getCurrentDir();
    }

}

我们收到以下错误:

第 78 行第 73 列 xsl:param/@select 表达式中 {...e:getCurrentDir(setfile:new...} 附近的 char 22 处出现静态错误: XPST0017:找不到名为 Q{java:com.output.extensionFile}new() 的匹配 0 参数函数。用于诊断 调用 Java 方法,使用 -TJ 命令行选项或设置 Configuration 属性 功能键.TRACE_EXTERNAL_FUNCTIONS

xslt xslt-2.0 saxon xslt-3.0
1个回答
0
投票

您是否运行了建议的诊断程序?

根据给出的信息,最可能的解释是(a)该类的全名不是您所建议的,或者(b)该类不在类路径上。 -TJ 诊断应该会揭示解释。

© www.soinside.com 2019 - 2024. All rights reserved.