Lược đồ XML hay DTD cho logback.xml?


108

Tôi đã thấy một số cuộc thảo luận trên mạng về việc có một lược đồ XML hoặc DTD cho tệp logback.xml sẽ tuyệt vời như thế nào để có ít nhất là xác thực cơ bản và tự động hoàn thành trong các IDE như IDEA hoặc Eclipse, nhưng tôi chưa bao giờ thấy bất kì giải pháp nào.

Bạn đã?


38
Về phần xác thực và tự động hoàn thành, hãy xem câu trả lời bên dưới ... nhưng để khiến nhật thực ngừng cảnh báo tôi, tôi sử dụng một DTD cũ đáng tin cậy của <!DOCTYPE configuration>. Tôi đoán là không thể chịu được những lời cảnh báo về các dự án của tôi.
Lucas

6
@Lucas Tôi không muốn nói là OCD đâu. Các cảnh báo không liên quan có thể che khuất các cảnh báo quan trọng. Chỉ xảy ra với tôi.
raphinesse

2
Tôi cũng hơi ép buộc như vậy, nhưng việc thêm dòng <! DOCTYPE configuration> này như bạn đề xuất đã không làm gì để xóa cảnh báo cho tôi ... bất kỳ ý tưởng nào ??
Marc

1
Sau khi thêm dòng <! DOCTYPE configuration>, người ta phải kích hoạt xác thực, ví dụ qua menu ngữ cảnh 'Validate'.
Manuel

Câu trả lời:


31

Nó không được hỗ trợ chính thức theo tài liệu , nhưng có một dự án độc lập để cung cấp Schema cho Logback

Tuy nhiên, do cấu hình Logback cực kỳ linh hoạt, Schema không thể hỗ trợ tất cả các tùy chọn cấu hình có thể có.


1
Giải pháp này hoạt động. Chỉ cần đặt logback.xsdtrong cùng một thư mục logback.xmlvà thêm nó vào dự án của bạn theo cách thủ công. Ví dụ: trong IntelliJ, bạn đi tới Settings > Languages & Frameworks > Schemas and DTDsvà nhấp vào dấu "+" màu xanh lục để thêm tài nguyên bên ngoài. Đặt "URI" thành http://ch.qos.logback/xml/ns/logbackvà "Vị trí" thành vị trí của logback.xsd.
Jonathan Landrum

1
Tôi vừa tạo một trình rút gọn url cho tệp logback.xsd của dự án này và nó đang hoạt động như mong đợi. Bạn có thể sử dụngxsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://git.io/logback.xsd"
Osguima3

81

Kể từ tháng 6 năm 2011, tài liệu chính thức cho biết

Như sẽ trở nên rõ ràng, cú pháp của các tệp cấu hình logback là cực kỳ linh hoạt. Do đó, không thể chỉ định cú pháp được phép với tệp DTD hoặc Lược đồ XML.

một chủ đề ngắn gọn về chủ đề này, nhưng dường như không đi đến đâu.


13
Trong cùng một cách mà ngôn ngữ tiếng Anh cực kỳ linh hoạt do đó nó không có quy tắc ngữ pháp ???? Thật là một kẻ ngụy biện!
Ken Alton

77

Chỉ để loại bỏ cảnh báo khó chịu trong Eclipse thêm <!DOCTYPE xml>sau <?xml version="1.0" encoding="UTF-8"?>.

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

Để loại bỏ biểu tượng dấu chấm than sau khi bạn sửa nó, bạn có thể cần phải kích hoạt xác thực lại bằng cách nhấp chuột phải vào tệp và chọn Validate.


3
Như nhận xét của @lucas nói, hãy sử dụng <!DOCTYPE configuration>. Nó phù hợp với tôiVersion: Oxygen.2 Release (4.7.2) Build id: 20171218-0600
Shamal Karunarathne

Để loại bỏ biểu tượng dấu chấm than sau khi bạn sửa nó, như @Manuel đã nói, hãy kích hoạt xác thực lại bằng cách nhấp chuột phải vào tệp và chọn "Xác thực".
Noumenon

1
@Noumenon Tôi sẽ thêm nhận xét của bạn vào câu trả lời của tôi. Cảm ơn!
Adrian Ber

3

Các dự án độc lập được đề cập bởi Sergey bao phủ hầu hết các yêu cầu của tôi.

Tuy nhiên, một số yếu tố bị thiếu, tôi đã thêm chúng vào fork của riêng mình trên https://github.com/nkatsar/logback-XSD . Hy vọng chúng sẽ được hợp nhất trong dự án chính.


Nó hiện đã được hợp nhất. Theo Github Network Graph , giản đồ của richopulatzo dường như là nguồn phong phú nhất.
Olivier Cailloux

2
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd">

từ GitHub "Định nghĩa lược đồ XML để đăng nhập lại" https://github.com/nkatsar/logback-XSD


Mặc dù về mặt lý thuyết, điều này có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo.
Rohit Gupta

1
Hỗ trợ đầy đủ trong repo đó như thế nào?
Vladislav Rastrusny

Đối với những năm sắp tới như tôi, vị trí xsd trước đó không còn hợp lệ nữa. Bạn có thể tham khảo git.io/logback.xsd như đã đề cập trong một phản ứng trước
gavard.e

0

Một câu trả lời hơi khác cho phép tự động hoàn thành nhật thực là:

<?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">
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.