Если вы используете интерфейс s9api, вы можете вызвать
XPathCompiler.setBackwardsCompatible(true);
, чтобы заставить выражения XPath работать в режиме совместимости с XPath 1.0.Это не полностью повторяет все аспекты поведения XPath 1.0, но оно будет обрабатывать большинство вещей, которые изменились между XPath 1.0 и 2.0.
Очень часто несовместимости, которые были введены в 2.0, связаны с тем, что они затрагивают области, которыебыли распространенным источником пользовательских ошибок в 1.0.На самом деле лучше не полагаться на неявное усечение входной последовательности, выполняемой такими функциями, как string()
;это является причиной многих ошибок приложения.
== ПОЗЖЕ ==
Мы пытались удалить режим совместимости 1.0 в Saxon-HE 9.8, думая, что через 10 лет малолюди все еще будут полагаться на это.К сожалению, эти немногие подняли шум, и мы решили отказаться.Но я только что видел, что в HE 9.8 метод setBackwardsCompatible () выдаст сообщение о том, что он не поддерживается.Попробуйте вместо:
XPathCompiler.getUnderlyingStaticContext().setBackwardsCompatibilityMode(true);