0

Altova XMLspy 是否支持 XSLT 3.0、2.0 和 1.0?

如果是,是否有向后兼容的选项?因为我在他们的手册中看到 XSLT 2.0 向后兼容 1.0 不确定 3.0。我想要一个 3.0 向后兼容 2.0 和 1.0 的选项。

4

1 回答 1

2

首先,XMLSpy 是像 Stylus Studio 或 oXygen 这样的 XML IDE,而不是像 Saxon 9 这样的纯 XSLT 和 XQuery 处理器。我认为 XMLSpy 中的 XSLT 和 XQuery 处理是由 Altova 的 Raptor XSLT 和 XQuery 实现提供的。至于 XSLT 3 支持,我认为唯一不支持的市长特性是流。

http://manual.altova.com/XMLSpy/spyenterprise/index.html?xsxqengine_xslt30.htm

XMLSpy 的 XSLT 3.0 引擎符合万维网联盟 (W3C) 2017 年 6 月 8 日的 XSLT 3.0 建议和 2017 年 3 月 21 日的 XPath 3.1 建议。

XSLT 3.0 引擎具有与 XSLT 2.0 引擎相同的特定于实现的特征。此外,它还支持许多新的 XSLT 3.0 特性:XPath/XQuery 3.1 函数和运算符,以及 XPath 3.1 规范。

注意:目前不支持可选的流媒体功能。无论streamable属性的值如何,整个文档都将被加载到内存中,如果有足够的内存可用,则将被处理。在 64 位应用程序中,这应该不是问题。如果内存确实是个问题,解决方案是向系统添加更多内存。

另请注意,它们提供评估许可证,因此您可以自己尝试满足您的哪些要求。

至于向后兼容性,在 XMLSpy 2018 中运行 XSLT 3.0 样式表并检查系统属性xsl:supports-backwards-compatibility时,结果为yes. 但是我不确定是否有任何方法可以在 XMLSpy IDE 中使用 XSLT 3 引擎运行 XSLT 1 样式表。

但是,我也没有尝试运行一个简单的测试,您是否可以在version="3.0"样式表和 Saxon 9.8 HE 以及 XMLSpy 2018 中切换到 XSLT 1.0 向后兼容性

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">

    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    
    <xsl:param name="foo-list">
        <foo>1</foo>
        <foo>2</foo>
    </xsl:param>
    
    <xsl:template match="/" name="xsl:initial-template">
        <result>
            <result version="3.0">
                <xsl:value-of select="$foo-list/foo"/>
            </result>
            <result xsl:version="1.0" version="1.0">
                <xsl:value-of select="$foo-list/foo"/>
            </result>
        </result>
    </xsl:template>
    
</xsl:stylesheet>

输出

<result>
    <result version="3.0">1 2</result>
    <result version="1.0">1</result>
</result>

因此,基于此,它们都支持在xsl:version="1.0"需要时打开以进行向后兼容的处理。

于 2017-10-26T08:18:05.023 回答