Необходимо отключить «Предупреждение: запуск таблицы стилей XSLT 1.0 с процессором XSLT 2.0» в файле журнала std out Tomcat - PullRequest
12 голосов
/ 15 декабря 2010

Я использую преобразования xslt в моем текущем проекте.Оригинальные xslts были написаны в формате таблицы стилей 1.0.Проект выполняется на сервере Apache Tomcat.В выходных журналах с сервера постоянно выводится предупреждение:

Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor

в стандартные журналы от Tomcat.Я попытался изменить номер версии таблицы стилей на «2.0», но часть моего проекта не получает правильные данные после преобразователя.Единственная причина, по которой я хочу решить эту проблему, заключается в том, что файл журнала занимает слишком много места в памяти.Так кто-нибудь знает, как подавить предупреждение для конкретного сервера Tomcat?Подавление этого конкретного предупреждения было бы предпочтительным, но любые мнения очень ценятся.Спасибо.

Ответы [ 4 ]

11 голосов
/ 15 декабря 2010

Не можете ли вы выполнить преобразование с процессором XSLT 1.0?

Если ответ отрицательный, то не является хорошей идеей для запуска преобразования XSLT 1.0 с процессором XSLT 2.0 .

Я рекомендую изменить атрибут версии <xsl:stylesheet> на 2.0 и отладить код , чтобы получить правильные результаты. Это устраняет предупреждение, а также любые плохие побочные эффекты режима обратной совместимости (например, при использовании XPath 2.0 XDM).

5 голосов
/ 29 декабря 2011

Если вы используете процессор Saxon 8+ XSLT 2.0, вы можете отключить это предупреждение при вызове Transformer следующим образом:

TransformerFactory tf = TransformerFactory.newInstance();
tf.setAttribute("http://saxon.sf.net/feature/version-warning", Boolean.FALSE);
Transformer t = tf.newTransformer();
t.transform(xmlSource, outputTarget);

Если вы получаете сообщение об ошибке в XMLUnit, вы можете установить версию XSLT на 2.0 следующим образом:

XMLUnit.setXSLTVersion("2.0");

Примечание:

Для вызова саксонской командной строки запустите Saxon следующим образом: saxon -versionmsg:off

2 голосов
/ 14 марта 2015

Ответ @rustyx - если вы используете Saxon API.На случай, если вам или кому-то еще понадобится то же самое из командной строки, добавьте параметр:

-versionmsg: off

1 голос
/ 23 апреля 2015

Если ваша таблица стилей написана с использованием XSLT версии 1.0, а ваш синтаксический анализатор основан на XSLT 2.0, то вы увидите это предупреждение. Если таблица стилей написана вами, попробуйте внести изменения, чтобы она была совместима с XSLT 2.0. Но если таблица стилей не написана (в моем случае она была написана не мной), то самым простым решением было бы подавить предупреждение, чтобы оно не распустило ваши файлы журнала. Чтобы подавить это предупреждение о версии, вы должны установить его как атрибут фабрики преобразований. FeatureKeys определяет набор констант, которые очень полезны.

TransformerFactory tFactory = TransformerFactory.newInstance();
tFactory.setAttribute(FeatureKeys.VERSION_WARNING, Boolean.FALSE);
...