Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Saxon HE 9.6从XSLT调用实例方法_Java_Templates_Xslt_Saxon - Fatal编程技术网

Java 使用Saxon HE 9.6从XSLT调用实例方法

Java 使用Saxon HE 9.6从XSLT调用实例方法,java,templates,xslt,saxon,Java,Templates,Xslt,Saxon,我们有一个用例,必须从Xlst模板调用实例方法。我们使用的是萨克森HE9.6版本。我经历过这个。我们尝试使用Java对象作为参数使用XML transformer,然后更新模板以调用该实例方法。但它给出了javax.xml.transform.TransformerConfiguration异常 如果我们可以使用Saxon HE从XSLT模板调用实例方法,有人能帮忙吗 Java对象: public Double getValue(String s1, String s2, Double d1)

我们有一个用例,必须从Xlst模板调用实例方法。我们使用的是萨克森HE9.6版本。我经历过这个。我们尝试使用Java对象作为参数使用XML transformer,然后更新模板以调用该实例方法。但它给出了javax.xml.transform.TransformerConfiguration异常

如果我们可以使用Saxon HE从XSLT模板调用实例方法,有人能帮忙吗

Java对象:

public Double getValue(String s1, String s2, Double d1) {
    // perform some operation and call other service to fetch data.
    Double response = 2.0;
    return response;
}
Xlst模板: 增加:


不,此功能在Saxon HE中不可用。还有一些替代方案:请参阅位于的文档中的“可扩展性”部分

还要注意9.6是一个相当旧的版本。由于Saxon在开发XSLT 2.0和3.0规范草案时跟踪了它们,因此最好避免使用旧版本的产品,因为在产品发布时规范一直在变化中。

如果要调用Java,需要使用所谓的集成扩展函数。文档位于
xmlns:util="java:com.test.utils.TestUtils"

<!--<xsl:value-of select="util:getValue($utils, $country1, $country2, $value)"/>
Transformer transformer = factory.newTransformer(xsltTemplate);
transformer.setParameter("utils", util);