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

Calling instance method from XSLT using Saxon-HE 9.6

我们有一个用例,我们必须从 Xlst 模板调用实例方法。我们使用的是 Saxon-HE 9.6 版本。通过这个 。我们尝试使用 Java 对象作为参数 psssing XML 转换器,然后更新模板以调用该实例方法。但它给出了 javax.xml.transform.TransformerConfigurationException.

如果我们可以使用 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 模板: 添加:

xmlns:util="java:com.test.utils.TestUtils"

<!--<xsl:value-of select="util:getValue($utils, $country1, $country2, $value)"/>

将此实用程序对象传递给 xlst 的代码

Transformer transformer = factory.newTransformer(xsltTemplate);
transformer.setParameter("utils", util);

不,此功能在 Saxon-HE 中不可用。还有其他选择:请参阅 www.saxonica.com.

文档中的“可扩展性”部分

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