Tôi có tệp xml được tạo bằng jaxb. Tôi cần phải xác nhận nó đối với một tài liệu xsd. Có thể chỉ cần làm xác nhận mà không unmarshalling. Tôi cần phải in các lỗi trong tệp xml.Xác thực xml được tạo bằng cách sử dụng jaxb dựa vào tệp xsd
Trả lời
Có, bạn có thể sử dụng trình xác thực được tìm thấy trong java từ 1.5. dưới đây là tài liệu tham khảo doc
Ngoài ra, bạn có thể sử dụng API dựa trên cơ sở hoặc dựa trên luồng để xác thực tài liệu XML của bạn dựa vào tệp xsd. Nếu bạn muốn sử dụng SAX API cho nhiệm vụ của bạn sau đó nghe là ví dụ:
try {
String schemaLang = "http://www.w3.org/2001/XMLSchema";
SchemaFactory factory = SchemaFactory.newInstance(schemaLang);
Schema schema = factory.newSchema(new StreamSource("sample.xsd"));
Validator validator = schema.newValidator();
validator.validate(new StreamSource("test.xml"));
} catch (SAXException e) {
System.out.println(" sax exception :" + e.getMessage());
} catch (Exception ex) {
System.out.println("excep :" + ex.getMessage());
}
Nếu không, bạn có thể sử dụng DOM, DOM4J hoặc XOM API. Để tham khảo thêm, bạn có thể xem here.
Có liên quan answer trong ngăn xếp chồng cũng.
Bạn cũng có thể xác nhận trước khi sửa lỗi: JAXBSource source = JAXBSource mới (jaxbContext, objectBeingMarshalled); \t \t validator.validate (nguồn); – Ritesh
Tôi đang nhận ngoại lệ exeception sax này: Mục tiêu xử lý lệnh đối sánh "[xX] [mM] [lL]" không được phép. – AutoMEta
nó có nghĩa là trong XML của bạn bắt đầu nó có một số không gian, loại bỏ không gian hoặc bất cứ điều gì khác ở đầu XML của bạn, hãy làm theo các liên kết: http: //gonithethinker.blogspot.com/2012/06/processing-instruction-target-matching .html @AutoMeta – Forhad
- 1. VB.NET xác thực tệp XML dựa vào tệp XSD và phân tích cú pháp qua xml
- 2. Xác thực XML dựa vào XSD theo một phương thức
- 3. Làm cách nào để xác thực tệp xml dựa vào Lược đồ XSD bằng thư viện Amara bằng Python?
- 4. Xác thực Xml bằng lược đồ XSD
- 5. Xác thực xml dựa trên xsd với JS/jQuery
- 6. Tạo tệp XML bằng tệp XSD
- 7. Có thể xác thực xml dựa trên xsd khi sử dụng mã khi chạy không?
- 8. Cách hiệu quả nhất để xác thực XML dựa vào XSD
- 9. Làm cách nào để sử dụng PowerShell để Xác thực các tệp XML với XSD?
- 10. Xác thực XML đối với XSD
- 11. Xác thực XML dựa vào XSD và bỏ qua thứ tự các phần tử con
- 12. Sử dụng xsd để tạo XML trong .net
- 13. Xác nhận hợp lệ một XML dựa vào XSD trong Java/Bắt giữ lược đồ Location
- 14. Trường trùng lặp trong XML được tạo bằng cách sử dụng JAXB
- 15. Java xác nhận XML dựa trên XSD Schema
- 16. Làm cách nào để xác thực xml dựa trên xsd và nhận các lỗi * ALL *?
- 17. Làm cách nào để xác thực XML (thông qua tệp XSD) trong Haskell?
- 18. Xác nhận hợp lệ XML bằng cách sử dụng nhiều XSD trong Ruby
- 19. Xác nhận lược đồ XSD bằng XSD
- 20. tạo xml từ xsd
- 21. Xác thực Java xsd của xml không có vùng tên
- 22. Sử dụng Netbeans để tạo XML mẫu từ XSD
- 23. Lỗi xác thực XML bằng lược đồ XSD lồng nhau - Loại không được khai báo
- 24. XSD cho tài liệu XML được tạo cho C#?
- 25. Làm cách nào để xác thực xml dựa vào tệp DTD trong Python
- 26. JAXB - Chuyển sang XSD hoặc XSD sang đậu?
- 27. XSD: Cách xác thực tệp XML theo giá trị của một số thẻ?
- 28. Unmarshalling XML cho đối tượng hiện có bằng cách sử dụng JAXB
- 29. Sử dụng Xerces-j để xác thực Tài liệu XML
- 30. Tạo các tệp lớp MULTIPLE dựa trên XSD
Một trong những ưu điểm chính của việc tạo mã ràng buộc từ xsd và sau đó sử dụng mã để tạo một cá thể xml là tạo ra một xml hợp lệ và được tạo đúng. Tôi không chắc chắn lý do tại sao bạn muốn xác thực lại nó? –
Bạn có thể đặt Schema và ValidationEventHandler trên chính bản thân trình soạn thảo. Nó sẽ xác nhận hợp lệ đối với lược đồ trong khi soạn thảo. Xem http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Marshaller.html#setSchema(javax.xml.validation.Schema) – Ritesh