Схема XML или DTD для logback.xml?

108

Я видел несколько дискуссий в сети о том, как здорово было бы иметь схему XML или DTD для файла logback.xml, чтобы иметь хотя бы самую базовую проверку и автозаполнение в IDE, таких как IDEA или Eclipse, но я никогда не видел любое решение.

А ты?

Владислав Раструсный
источник
38
Что касается проверки и автозаполнения, см. Ответы ниже ... но чтобы заставить eclipse перестать предупреждать меня, я использую старый добрый DTD <!DOCTYPE configuration>. Я думаю, ОКР терпеть не могу предупреждений о моих проектах.
Лукас
6
@ Лукас Я бы сказал, не ОКР. Нерелевантные предупреждения могут затмевать важные предупреждения. Просто случилось со мной.
raphinesse
2
Я тоже немного компульсивен, но добавление этой строки <! DOCTYPE configuration>, как вы предлагаете, не помогло мне удалить предупреждение ... любая идея ??
Marc
1
После добавления строки <! DOCTYPE configuration> необходимо запустить проверку, например, через контекстное меню «Проверить».
Мануэль

Ответы:

31

Официально он не поддерживается в соответствии с документацией , но есть независимый проект для предоставления схемы для Logback.

Однако из-за чрезвычайной гибкости конфигурации Logback Schema не может поддерживать все возможные варианты конфигурации.

Сергей
источник
1
Это решение работает. Просто поместите logback.xsdв тот же каталог, что logback.xmlи, и добавьте его в свой проект вручную. В IntelliJ, например, вы должны перейти Settings > Languages & Frameworks > Schemas and DTDsи щелкнуть зеленый «+», чтобы добавить внешний ресурс. Установите "URI" на http://ch.qos.logback/xml/ns/logbackи "Location" на местонахождение logback.xsd.
Джонатан
1
Я только что создал сокращатель URL-адресов для файла logback.xsd этого проекта, и он работает должным образом. Вы можете использоватьxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3
81

По состоянию на июнь 2011 г. в официальной документации указано

Как станет ясно, синтаксис файлов конфигурации логбэка чрезвычайно гибкий. Таким образом, невозможно указать разрешенный синтаксис с файлом DTD или XML-схемой.

Была короткая ветка по теме, но, похоже, никуда не ушла.

Юджин Йокота
источник
13
Точно так же, как английский язык чрезвычайно гибкий, поэтому в нем нет грамматических правил ???? Что за отговорка!
Кен Альтон
77

Просто чтобы избавиться от надоедливого предупреждения в Eclipse добавьте <!DOCTYPE xml>после <?xml version="1.0" encoding="UTF-8"?>.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>

Чтобы избавиться от значка восклицательного знака после его исправления, может потребоваться повторно запустить проверку, щелкнув файл правой кнопкой мыши и выбрав Validate.

Адриан Бер
источник
3
Как говорится в комментарии @lucas, используйте <!DOCTYPE configuration>. У меня это работаетVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Шамал Карунаратн
Чтобы избавиться от значка восклицательного знака после его исправления, как сказал @Manuel, снова запустите проверку, щелкнув файл правой кнопкой мыши и выбрав «Проверить».
Noumenon
1
@Noumenon Я добавлю ваш комментарий к своему ответу. Спасибо!
Адриан Бер,
3

Независимый проект , упомянутый Сергей охватывает большинство моих требований.

Однако некоторые элементы отсутствовали, я добавил их в своей вилке на https://github.com/nkatsar/logback-XSD . Надеюсь, они объединятся в основной проект.

нкацар
источник
Теперь он объединен. Согласно Github Network Graph , схема enricopulatzo кажется самым богатым источником.
Olivier Cailloux,
2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

из GitHub "Определение схемы XML для входа в систему" https://github.com/nkatsar/logback-XSD

Рикардо Падуя Соарес
источник
Хотя теоретически это может дать ответ на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки.
Рохит Гупта
1
Насколько полная поддержка в этом репо?
Владислав Раструсный 08
Для тех, кто, как и я, спустя годы, предыдущее местоположение xsd больше не действует. Вы можете сослаться на git.io/logback.xsd, как упоминалось в предыдущем ответе
gavard.e
0

Несколько другой ответ, который позволяет автозаполнение eclipse:

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.padual.com/java/logback.xsd" 
    debug="true" packagingData="true" scan="true" scanPeriod="30 seconds">
повышение стоимости
источник