Nano Hash - криптовалюты, майнинг, программирование

Необходимо подавить Предупреждение: запуск таблицы стилей XSLT 1.0 с процессором XSLT 2.0 в файле журнала Tomcat std out

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

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

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

14.12.2010

Ответы:


1

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

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

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

15.12.2010
  • Процессор, который я должен использовать, — 2.0, но он обратно совместим, поэтому он запускает мои 1.0 XSLT, я просто хочу подавить предупреждение, чтобы оно не заполняло файлы журнала из Tomcat. 15.12.2010
  • Не рекомендуется выполнять преобразование XSLT 1.0 с процессором XSLT 2.0. Моя рекомендация изменить атрибут version для <xsl:stylesheet> на 2.0 и отладить код, чтобы получить правильные результаты. Это устраняет предупреждение, а также любые плохие побочные эффекты режима обратной совместимости (например, использование XPath 2.0 XDM). 15.12.2010
  • @ user542447: Я рад, что мой ответ оказался полезным. Здесь, в SO, установленный способ выразить благодарность — принять ответ (просто нажмите на галочку рядом с ответом). :) 15.12.2010
  • Ой, извини. Не знал этого. 15.12.2010

  • 2

    Если вы используете процессор 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 следующим образом: saxon -versionmsg:off

    29.12.2011

    3

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

    -версияmsg: выключено

    14.03.2015

    4

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

    TransformerFactory tFactory = TransformerFactory.newInstance();
    tFactory.setAttribute(FeatureKeys.VERSION_WARNING, Boolean.FALSE);
    
    23.04.2015
  • Не могли бы вы немного объяснить свое решение? 23.04.2015
  • Если ваша таблица стилей написана с использованием XSLT версии 1.0, а ваш синтаксический анализатор основан на XSLT 2.0, вы увидите это предупреждающее сообщение. Если таблица стилей написана вами, попробуйте внести изменения, чтобы она была совместима с XSLT 2.0. Но если styesheet написан не кем (в моем случае он был написан не мной), то самым простым решением было бы подавить предупреждение, чтобы оно не раздувало ваши лог-файлы. Чтобы подавить это предупреждение о версии, вы должны установить его как атрибут фабрики преобразования. FeatureKeys определяет набор очень полезных констант. 18.05.2015
  • Изменение вашего ответа с помощью кнопки редактирования было бы общепринятым способом улучшить ответ. ;) 19.05.2015
  • ты счастлив сейчас? Спасибо, что дали мне знать. 19.05.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..