尝试在 xslt 中调用 javascript 函数时出错 (Java JDK 8)

Error when try to call javascript function in xslt (Java JDK 8)

我正在尝试调用我的 XSL 文件中的 javascript 函数。

我的 XSL:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:jscript="http://www.url.com" exclude-result-prefixes="msxsl jscript">
.
.
.
<html>
    <head>
    .
    .
    .
        <msxsl:script language="JScript" implements-prefix="jscript">
            <![CDATA[
            function testFnc(){
                return "test";
                }
            }]]>
        </msxsl:script>
    </head>
    .
    .
    .
</html>
.
.
.
<xsl:value-of select="jscript:testFnc()"/>

在 Java 文件中,当我尝试创建 Transformer 时:

Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xslUrl));

我收到错误:

ERROR: 'Cannot find class 'www.url.com'.'>

FATAL ERROR: 'Cannot find external method 'www.url.com.testFnc' (must be public).'

javax.xml.transform.TransformerConfigurationException: Cannot find external method 'www.url.com.testFnc' (must be public).

没有这个代码

<xsl:value-of select="jscript:testFnc()"/>

一切正常。

在 Java 7 中,内置 Xalan 存在类似问题: Xalan Java extensions 'Cannot find class' error on JRE 7

我想知道这个问题是否仍然存在于 Java 8.

我也尝试过这样的事情: http://xml.apache.org/xalan-j/extensions.html#basic-pattern How to include a call to JavaScript within XSLT?

但结果是一样的。

提前致谢

感谢 Martin Honnen 的帮助,我能够在 xslt 代码中使用我自己的 Java class。您可以在文档中找到更多信息:http://xml.apache.org/xalan-j/extensions_xsltc.html#java_ext

xslt:

<xmlns:java_util="http://xml.apache.org/xalan/java/com.example.java.util" exclude-result-prefixes="java_util">
<!-- Java function call -->
<xsl:value-of select="java_util:DateUtil.formatDateTime(.)"/>

Java class:

package com.example.java.util;

public class DateUtil {
    public static String formatDateTime(String date){
    //implementation
}
}