XPath 3.1 是否 100% 向上兼容 XPath 2.0?
Is XPath 3.1 100% upwardly compatible with XPath 2.0?
我们正在使用 Saxon,从 Java 调用它来执行查询。当我们升级到 XPath 3.1 时,它会像以前一样处理为 XPath 2.0 编写的所有查询吗?还是某些查询的 returned 内容有变化?
我问是因为如果它 100% 向上兼容,我们只需更改现有的 XPath 2.0 代码以使用 XPath 3.1。但如果不同,那么我们需要添加 XPath 3.1 作为新的数据源类型。
我们确实将 XPath 1.0 作为一个独特的数据源,因为对于某些查询,XPath 1.0 和 2.0 return 之间存在差异。
你可以通过遵循这条链来确保这个前提:
XPath-3.0 向后兼容 XPath-2.0
This appendix provides a summary of the areas of incompatibility between XPath 3.0 and [XML Path Language (XPath) Version 1.0]. In each of these cases, an XPath 3.0 processor is compatible with an XPath 2.0 processor.
XPath-3.1 向后兼容 XPath-3.0。
This Recommendation specifies XPath version 3.1, a fully compatible extension of XPath version 3.0.
XPath 3.1 允许对数组、映射和函数使用新表达式,因此如果您有一个测试套件来检查 XPath 2 表达式中的一些语法错误,您可能会发现它们在 XPath 3.1 中是允许的并且不会给出错误。
我记得要转换成合法语法的主要错误是foo/[bar]
最后一步用XPath 3.1构造数组
我们正在使用 Saxon,从 Java 调用它来执行查询。当我们升级到 XPath 3.1 时,它会像以前一样处理为 XPath 2.0 编写的所有查询吗?还是某些查询的 returned 内容有变化?
我问是因为如果它 100% 向上兼容,我们只需更改现有的 XPath 2.0 代码以使用 XPath 3.1。但如果不同,那么我们需要添加 XPath 3.1 作为新的数据源类型。
我们确实将 XPath 1.0 作为一个独特的数据源,因为对于某些查询,XPath 1.0 和 2.0 return 之间存在差异。
你可以通过遵循这条链来确保这个前提:
XPath-3.0 向后兼容 XPath-2.0
This appendix provides a summary of the areas of incompatibility between XPath 3.0 and [XML Path Language (XPath) Version 1.0]. In each of these cases, an XPath 3.0 processor is compatible with an XPath 2.0 processor.
XPath-3.1 向后兼容 XPath-3.0。
This Recommendation specifies XPath version 3.1, a fully compatible extension of XPath version 3.0.
XPath 3.1 允许对数组、映射和函数使用新表达式,因此如果您有一个测试套件来检查 XPath 2 表达式中的一些语法错误,您可能会发现它们在 XPath 3.1 中是允许的并且不会给出错误。
我记得要转换成合法语法的主要错误是foo/[bar]
最后一步用XPath 3.1构造数组