Как использовать XPath 3.1 в Saxon?

В настоящее время я использую синтаксис XPath 3.1, но по какой-то причине Saxon выдает ошибку:

To use XPath 3.1 syntax, you must configure the XPath parser to handle it,

Как мне это сделать?

Большое спасибо!!!

2 ответа

Решение

Если вы используете API s9api, используйте XPathCompiler.setLanguageVersion("3.1"),

Если вы используете JAXP, это, вероятно, плохая идея, потому что JAXP XPath API не может справиться с богатством типов данных XPath 3.1; но если необходимо, приведите объект XPath к net.sf.saxon.xpath.XPathEvaluator; затем вызовите getStaticContext().setXPathLanguageLevel().

В Saxon 9.7 по умолчанию поддерживается уровень языка XPath 3.0, потому что это последняя спецификация W3C, которая достигла статуса Рекомендации.

ОБНОВИТЬ

В Saxon 9.8 по умолчанию используется XPath 3.1.

В случае XSLT и Saxon-HE 9.7.0.3J это работает с использованием -xsltversion:3.0 опция командной строки или version="3.0" атрибут элемента документа.

Другие вопросы по тегам