Проверка 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 также.