【问题标题】:How do I get EXSLT support in Saxon-HE?如何在 Saxon-HE 中获得 EXSLT 支持?
【发布时间】:2011-08-19 08:28:14
【问题描述】:

我有一堆 XSLT 文件,我需要针对一些 XML 文件进行处理。我无法更改 XSLT 文件,因为它们来自第 3 方。 XSLT 是 2.0 版。

我使用的是 Mac OS X 10.6,看起来 Saxon-HE 是唯一可用的 XSLT 2.0 处理器。

XSLT 的大部分工作都很好,但是,有些函数会出现关于缺少函数的错误,特别是 month-in-year() 和其他与日期/时间相关的函数。

根据 http://www.saxonica.com/documentation/extensions/exslt.xml 关于 EXSLT:

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

我是否可以在 Saxon-HE 中使用 EXSLT 函数?

如果可行的话,我很高兴转向另一个工具/处理器。

【问题讨论】:

    标签: xml xslt saxon exslt


    【解决方案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 :)
    【解决方案2】:

    Saxon-B 9.1 仍可供有此类要求的用户使用。当您使用 XSLT 2.0 时,几乎不需要 EXSLT 扩展,但您确实会遇到使用它们的样式表,如果您想坚持使用开源软件,Saxon-B 仍然可以用于此目的。

    【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 谢谢,是的,我看到你可以注册外部函数,我从exslt.org 下载了它们,但我不知道如何注册它们。
    • 我不知道 exslt.org 是否有 Saxon 的实现。有关如何在 Saxon 中编写和注册自己的扩展函数的信息,请参阅 saxonica.com/documentation/extensibility/…
    猜你喜欢
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多