Как использовать 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"
атрибут элемента документа.