Altova XMLspy 是否支持 XSLT 3.0、2.0 和 1.0?
如果是,是否有向后兼容的选项?因为我在他们的手册中看到 XSLT 2.0 向后兼容 1.0 不确定 3.0。我想要一个 3.0 向后兼容 2.0 和 1.0 的选项。
首先,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"
需要时打开以进行向后兼容的处理。