XPath 3.1是否100%向上兼容XPath 2.0?

问题描述 投票:0回答:1

我们正在使用Saxon,从Java调用它来执行查询。当我们升级到XPath 3.1时,它是否会像以前一样处理所有为XPath 2.0编写的查询?还是对某些查询的返回内容有变化?

我之所以这么问,是因为如果是100%向上兼容,我们只需要修改现有的XPath 2.0代码,就可以使用XPath 3.1。但如果不一样,那么我们就需要添加XPath 3.1作为新的数据源类型。

我们确实将XPath 1.0作为一个独立的数据源,因为XPath 1.0和2.0对于一些查询返回的内容是有区别的。

xpath saxon xpath-2.0
1个回答
1
投票

你可以通过这个链条来保证这个前提。

XPath-3. 0 是向后兼容XPath-2.0的。

本附录提供了XPath 3.0和[XML路径语言(XPath)1.0版]之间不兼容的领域的总结。在每一种情况下。XPath 3.0处理器与XPath 2.0处理器兼容。

XPath-3.1 向后兼容 XPath-3.0。

本建议规定 XPath 3.1版本,是XPath 3.0版本的完全兼容扩展。


1
投票

XPath 3.1允许新的数组、映射和函数表达式,所以如果你有一个测试套件检查XPath 2表达式中的一些语法错误,你可能会发现它们可以在XPath 3.1中被允许,并且不会给出错误。

我记得要转换为合法语法的主要错误是 foo/[bar] 在上一步中,它在XPath 3.1中构造了一个数组。

© www.soinside.com 2019 - 2024. All rights reserved.