XML schema or DTD for logback.xml?
JavaXsdLogbackDtdXmlJava Problem Overview
I've seen several discussions on the net about how great it would be to have an XML schema or DTD for logback.xml file to have at least the very basic validation and auto-completion in IDEs like IDEA or Eclipse, but I never saw any solution.
Did you?
Java Solutions
Solution 1 - Java
As of June 2011, the official documentation states > As shall become clear, the syntax of logback configuration files is extremely flexible. As such, it is not possible specify the allowed syntax with a DTD file or an XML Schema.
There was a brief thread on the topic, but didn't seem to go anywhere.
Solution 2 - Java
Just to get rid of the annoying warning in Eclipse add <!DOCTYPE xml>
after <?xml version="1.0" encoding="UTF-8"?>
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
To get rid of the exclamation point icon after you fix it, you might need to trigger the validation again by right-clicking the file and choosing Validate
.
Solution 3 - Java
It is not supported officially according to the documentation, but there is an independent project to provide Schema for Logback
However, due to extreme flexibility of the Logback configuration, Schema cannot support all possible configuration options.
Solution 4 - Java
The independent project mentioned by Sergey covered most of my requirements.
However, some elements were missing, I added them on my own fork on on https://github.com/nkatsar/logback-XSD. Hope they will get merged in the main project.
Solution 5 - Java
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">
from GitHub "An XML Schema Definition for logback" https://github.com/nkatsar/logback-XSD
Solution 6 - Java
Thanks to https://github.com/enricopulatzo/logback-XSD
This will allow eclipse to autocomplete and validate if xml is not using plugins or other extensions mechanisms:
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns="http://ch.qos.logback/xml/ns/logback"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://ch.qos.logback/xml/ns/logback
https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd
">