Bạn có thể xem SchematronAssert (tiết lộ: mã của tôi). Nó có nghĩa là chủ yếu cho thử nghiệm đơn vị, nhưng bạn có thể sử dụng nó cho mã bình thường quá. Nó được thực hiện bằng cách sử dụng XSLT.
Unit dụ thử nghiệm:
ValidationOutput result = in(booksDocument)
.forEvery("book")
.check("author")
.validate();
assertThat(result).hasNoErrors();
độc lập xác nhận ví dụ:
StreamSource schemaSource = new StreamSource(... your schematron schema ...);
StreamSource xmlSource = new StreamSource(... your xml document ...);
StreamResult output = ... here your SVRL will be saved ...
// validation
validator.validate(xmlSource, schemaSource, output);
Làm việc với một đại diện đối tượng của SVRL:
ValidationOutput output = validator.validate(xmlSource, schemaSource);
// look at the output
output.getFailures() ...
output.getReports() ...
Nguồn
2014-03-09 19:29:52
Hoặc JAXP không hỗ trợ RelaxNG rất tốt, hoặc tôi phải làm điều gì đó sai khi tôi cố gắng sử dụng nó. –
Chưa thử RelaxNG tbh, chỉ cần WXS – Brabster
Không hoàn toàn là một sự lừa gạt, nhưng cũng thấy [Tôi có thể tìm thấy việc triển khai Java của trình xác nhận hợp lệ ISO Schematron ở đâu?] (Http://stackoverflow.com/questions/10126256/where-can -i-find-a-java-triển khai-of-an-an-is-schematron-validator) – Pops