Проверка xml, созданного с помощью jaxb, на xsd-файл
У меня есть xml-файл, созданный с помощью jaxb. Мне нужно проверить его на документ xsd. Можно ли просто выполнить проверку без unmarshalling. Затем мне нужно распечатать ошибки в xml-файле.
1 ответов
Да, вы можете использовать валидатор в Java от 1.5. вот ссылка doc
кроме того, вы можете использовать API на основе dom или stream для проверки Вашего XML-документа против xsd-файла. Если вы хотите использовать SAX API для своей задачи, тогда слушайте пример:
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());
}
в противном случае вы можете использовать DOM, DOM4J или Xom API. Для дополнительной справки вы можете увидеть здесь.
есть обзоры ответ в stackoverflow также.