Является ли XPath 3.1 100% совместимой снизу вверх с XPath 2.0? - PullRequest
0 голосов
/ 17 июня 2020

Мы используем 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 возвращает для некоторых запросов.

Ответы [ 2 ]

1 голос
/ 18 июня 2020
• 1000 *

Основная ошибка, которую я помню, чтобы преобразовать в допустимый синтаксис, - это foo/[bar], которая на последнем этапе создает массив в XPath 3.1.

1 голос
/ 17 июня 2020

Вы можете убедиться в этом предположении, следуя этой цепочке:

XPath-3.0 обратно совместим с XPath-2.0

Это приложение содержит сводку области несовместимости между XPath 3.0 и [XML Path Language (XPath) Version 1.0]. В каждом из этих случаев процессор XPath 3.0 совместим с процессором XPath 2.0.

XPath-3.1 обратно совместим с XPath-3.0.

В этой Рекомендации указывается XPath версии 3.1, полностью совместимое расширение XPath версии 3.0.

...