Altova XMLspy支持XSLT3.0、2.0和1.0吗?
如果是,是否有向后兼容性的选项?因为我在他们的手册中看到XSLT2.0与1.0向后兼容,不确定3.0左右。我想要一个3.0向后兼容2.0和1.0的选项。
发布于 2017-10-26 08:18:05
首先,XMLSpy是像Studio或oXygen这样的XML,而不是像Saxon 9那样的纯XSLT和XQuery处理器。我认为XMLSpy中的XSLT和XQuery处理是由Altova的Raptor和XQuery实现提供的。至于XSLT 3的支持,我认为唯一不受支持的市长特性是流。
xslt30.htm说
XMLSpy的XSLT3.0引擎符合万维网联合会2017年6月8日的(W3C)XSLT3.0建议和2017年3月21日的XPath 3.1建议。 XSLT3.0引擎具有与XSLT2.0引擎相同的特定于实现的特性。此外,它还支持许多新的XSLT3.0特性: XPath /XQuery3.1函数和操作符,以及XPath 3.1规范。 注意:当前不支持可选的流功能。不管可流属性的值如何,整个文档都将被加载到内存中,如果有足够的内存可用,则将进行处理。在64位应用程序中,这不应该是个问题。如果内存确实是一个问题,解决方案将是向系统添加更多的内存。
另外,请注意,它们提供了评估许可证,这样您就可以尝试满足您的哪些需求。
至于向后兼容性,在XMLSpy 2018中运行XSLT3.0样式表并检查系统属性xsl:supports-backwards-compatibility时,结果是yes。但是,我不确定是否有任何方法可以在XSLT中使用XSLT3引擎运行XSLT1样式表。
不过,我也没有尝试运行一个简单的测试,您是否可以在version="3.0"样式表和Saxon9.8HE以及XMLSpy 2018年的样式表中切换到XSLT1.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"上切换向后兼容的处理。
https://stackoverflow.com/questions/46948437
复制相似问题