如何在Saxon-HE中获得EXSLT支持?

7
我有一堆需要对一些XML文件处理的XSLT文件。由于它们来自第三方,因此我无法更改这些XSLT文件。这些XSLT的版本是2.0。
我在Mac OS X 10.6上运行,看起来Saxon-HE是唯一可用的XSLT 2.0处理器。
大多数XSLT都可以正常工作,但某些XSLT会出现有关缺少函数的错误,特别是month-in-year()和其他与日期/时间相关的函数。
根据http://www.saxonica.com/documentation/extensions/exslt.xml关于EXSLT的说明:

这些扩展在Saxon-PE和Saxon-EE中“开箱即用”。它们在Saxon-HE中不可用

是否有任何方法可以在Saxon-HE中使用EXSLT函数?
如果可以的话,我很乐意转移到另一个工具/处理器。
3个回答

6

对于有这种需求的人来说,Saxon-B 9.1仍然可用。当您使用XSLT 2.0时,很少需要EXSLT扩展,但是您会遇到使用它们的样式表,如果您想坚持使用开源软件,则Saxon-B仍然可用于此目的。


下载链接在这里:http://sourceforge.net/projects/saxon/files/Saxon-B/ - jordelver

1
Saxon9 HE没有EXSLT扩展。为了使用EXSLT,您需要回到Saxon 9.1或选择完全不同的产品,例如Xalan(Java)或MSXML(Windows)或LibXSLT(C和脚本),它们只实现XSLT和XPath 1.0。话虽如此,有了Saxon9 HE和XSLT 2.0,您为什么需要EXSLT呢?
好的,在回复之前应该先阅读您的帖子。要求似乎是:
- XSLT 2.0 - EXSLT - 不能更改XSLT
如果这些都可以假设,那么看起来只剩下Saxon9 PE或EE了。(当然,还有Saxon 9.1。)

谢谢。我已经成功使用了Saxon-B 9.1 :) - jordelver

0
无论您选择哪种处理器,它都不必本地支持EXSLT函数,只需要是可扩展的,以便您可以注册自己的函数,这样您就可以自己实现EXSLT函数。

谢谢,是的,我看到你可以注册外部函数,并从http://exslt.org/下载它们,但我无法弄清楚如何注册它们。 - jordelver
我不知道exslt.org是否有适用于Saxon的实现。请参阅http://www.saxonica.com/documentation/extensibility/integratedfunctions.xml,了解如何在Saxon中编写和注册自己的扩展函数的信息。 - Max Toro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接