Skema XML atau DTD untuk logback.xml?

108

Saya telah melihat beberapa diskusi di internet tentang betapa hebatnya memiliki skema XML atau DTD untuk file logback.xml untuk memiliki setidaknya validasi yang sangat dasar dan penyelesaian otomatis dalam IDE seperti IDEA atau Eclipse, tetapi saya tidak pernah melihatnya solusi apapun.

Apakah kamu?

Vladislav Rastrusny
sumber
38
Sejauh validasi dan pelengkapan otomatis, lihat jawaban di bawah ... tetapi agar gerhana berhenti memperingatkan saya, saya menggunakan DTD lama yang tepercaya <!DOCTYPE configuration>. Tidak tahan dengan peringatan pada proyek saya, kurasa OCD.
Lucas
6
@Las Tidak begitu OCD menurut saya. Peringatan yang tidak relevan bisa membayangi peringatan penting. Baru saja terjadi pada saya.
raphinesse
2
Saya agak kompulsif seperti itu juga, tetapi menambahkan baris <! DOCTYPE configuration> seperti yang Anda sarankan tidak melakukan apa pun untuk menghapus peringatan bagi saya ... ada ide ??
Marc
1
Setelah menambahkan baris <! DOCTYPE configuration>, seseorang harus memicu validasi misalnya melalui menu konteks 'Validasi'.
Manuel

Jawaban:

31

Itu tidak didukung secara resmi menurut dokumentasi , tetapi ada proyek independen untuk menyediakan Skema untuk Logback

Namun, karena konfigurasi Logback sangat fleksibel, Skema tidak dapat mendukung semua opsi konfigurasi yang memungkinkan.

Sergey
sumber
1
Solusi ini berhasil. Cukup letakkan logback.xsddi direktori yang sama logback.xmldan tambahkan ke proyek Anda secara manual. Di IntelliJ, misalnya, Anda akan pergi ke Settings > Languages & Frameworks > Schemas and DTDsdan mengklik "+" hijau untuk menambahkan sumber daya eksternal. Setel "URI" ke http://ch.qos.logback/xml/ns/logbackdan "Lokasi" ke lokasi logback.xsd.
Jonathan Landrum
1
Saya baru saja membuat pemendek url untuk file logback.xsd proyek ini, dan berfungsi seperti yang diharapkan. Anda dapat menggunakanxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3
81

Pada Juni 2011, dokumentasi resmi menyatakan

Seperti yang akan menjadi jelas, sintaks file konfigurasi logback sangat fleksibel. Dengan demikian, tidak mungkin menentukan sintaks yang diizinkan dengan file DTD atau Skema XML.

Ada utas singkat tentang topik itu, tetapi sepertinya tidak ke mana-mana.

Eugene Yokota
sumber
13
Dengan cara yang sama bahasa Inggris sangat fleksibel sehingga tidak memiliki aturan tata bahasa ???? Benar-benar alasan yang tidak tepat!
Ken Alton
77

Hanya untuk menghilangkan peringatan yang mengganggu di Eclipse tambahkan <!DOCTYPE xml>setelahnya <?xml version="1.0" encoding="UTF-8"?>.

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

Untuk menghilangkan ikon tanda seru setelah Anda memperbaikinya, Anda mungkin perlu memicu validasi lagi dengan mengklik kanan file dan memilih Validate.

Adrian Ber
sumber
3
Seperti yang dikatakan oleh @lucas, gunakan <!DOCTYPE configuration>. Ini bekerja untuk sayaVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne
Untuk menghilangkan ikon tanda seru setelah Anda memperbaikinya, seperti yang dikatakan @Manuel, picu validasi lagi dengan mengklik kanan file dan memilih "Validasi".
Noumenon
1
@Noumenon Saya akan menambahkan komentar Anda ke jawaban saya. Terima kasih!
Adrian Ber
2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

dari GitHub "Definisi Skema XML untuk logback" https://github.com/nkatsar/logback-XSD

Ricardo Padua Soares
sumber
Meskipun ini secara teoritis dapat menjawab pertanyaan, akan lebih baik jika menyertakan bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Rohit Gupta
1
Seberapa lengkap dukungan yang ada di repo itu?
Vladislav Rastrusny
Untuk tahun-tahun mendatang seperti saya, lokasi xsd sebelumnya tidak berlaku lagi. Anda dapat merujuk ke git.io/logback.xsd seperti yang disebutkan dalam tanggapan sebelumnya
gavard.e
0

Jawaban yang sedikit berbeda yang memungkinkan pelengkapan otomatis gerhana adalah:

<?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">
kismis
sumber