Altova XMLspy是否支持XSLT 3.0,2.0和1.0?
如果是,是否有向后兼容的选项?因为我在他们的手册中看到XSLT 2.0向后兼容1.0不确定3.0。我想要一个选项,其中3.0向后兼容2.0和1.0。
答案 0 :(得分: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引擎符合万维网 2017年6月8日的联盟(W3C&#39)XSLT 3.0建议书和XPath 3.1 2017年3月21日的建议。
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"
以进行向后兼容处理。