想知道 Altova XML 间谍

Want to know Altova XML Spy

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

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

首先,XMLSpy是一个XMLIDE像Stylus Studio或oXygen,而不是像Saxon 9那样的纯XSLT和XQuery处理器。我认为XSLT和XQuery处理in XMLSpy 由 Altova 的 Raptor XSLT 和 XQuery 实现提供。至于 XSLT 3 支持,我认为唯一不支持的主要功能是流。

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

The XSLT 3.0 Engine of XMLSpy conforms to the World Wide Web Consortium's (W3C's) XSLT 3.0 Recommendation of 8 June 2017 and XPath 3.1 Recommendation of 21 March 2017.

The XSLT 3.0 engine has the same implementation-specific characteristics as the XSLT 2.0 engine. Additionally, it includes support for a number of new XSLT 3.0 features: XPath/XQuery 3.1 functions and operators, and the XPath 3.1 specification.

Note: The optional streaming feature is not supported currently. The entire document will be loaded into memory regardless of the value of the streamable attribute, and will be processed if enough memory is available. In 64-bit apps this should not be a problem. If memory does turn out to be an issue, a solution would be to add more memory to the system.

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

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

中使用 XSLT 3 引擎 运行 XSLT 1 样式表

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

<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" 以进行向后兼容处理。