Saxon 9是否支持扩展函数中的java varargs?

时间:2014-10-07 13:31:31

标签: java xslt saxon

Saxon可以映射下面的扩展函数,用下面的varargs调用java静态方法吗?

XSLT:

<xsl:value-of select="mylib:fun('a', 'b', 'c')"/>

爪哇

public static String fun(String arg1, String... args) { ... }

我希望撒克逊支持varargs但是,我得到了

  

可识别名称空间URI和本地名称,但参数数量错误

我做错了吗?

它似乎能够识别序列(),但我想实现一个零或多个参数的函数,比如标准XPath函数库中的参数。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您已经回答了自己的问题:SAXON不支持它。

此外,有意义 SAXON不支持它。 Java varargs在编译器中实现;它们不在类文件或字节码中表示。所有SAXON看到的是接受两个参数(StringString[])并返回String的方法。

我不熟悉SAXON类型映射的所有细节,但也许您可以通过将列表作为第二个函数参数来实现您的目标:

<xsl:value-of select="mylib:fun('a', ('b', 'c'))"/>