Sau một số nghiên cứu, tôi nghĩ câu trả lời tốt nhất là Xerces , vì nó thực hiện tất cả XSD, là đa nền tảng và được sử dụng rộng rãi. Tôi đã tạo một dự án Java nhỏ trên github để xác thực từ dòng lệnh bằng cách sử dụng trình phân tích cú pháp JRE mặc định, thường là Xerces. Điều này có thể được sử dụng trên Windows / Mac / Linux.
Ngoài ra còn có phiên bản C ++ của Xerces nếu bạn muốn sử dụng nó. Các tiện ích StdInParse có thể được sử dụng để gọi nó từ dòng lệnh. Ngoài ra, một bình luận bên dưới chỉ ra tiện ích trình bao bọc hoàn chỉnh hơn này .
Bạn cũng có thể sử dụng xmllint, một phần của libxml . Bạn cũng có thể đã cài đặt nó. Ví dụ sử dụng:
xmllint --noout --schema XSD_FILE XML_FILE
Một vấn đề là libxml không thực hiện tất cả các đặc điểm kỹ thuật, vì vậy bạn có thể gặp phải các vấn đề :(
Ngoài ra, nếu bạn đang ở trên Windows, bạn có thể sử dụng msxml , nhưng bạn sẽ cần một số loại trình bao bọc để gọi nó, chẳng hạn như GUI được mô tả trong bài viết DDJ này . Tuy nhiên, dường như hầu hết mọi người trên Windows đều sử dụng Trình soạn thảo XML, chẳng hạn như Notepad ++ (như được mô tả trong câu trả lời của Nate ) hoặc XML Notepad 2007 như đề xuất của SteveC (cũng có một số trình soạn thảo thương mại mà tôi sẽ đề cập ở đây).
Cuối cùng, bạn sẽ thấy các chương trình khác nhau sẽ không may cho kết quả khác nhau. Điều này phần lớn là do sự phức tạp của thông số XSD. Bạn có thể muốn kiểm tra lược đồ của bạn với một số công cụ.
CẬP NHẬT : Tôi đã mở rộng về điều này trong một bài đăng trên blog .