验证使用jaxb针对xsd文件创建的xml

时间:2012-06-08 06:58:10

标签: jaxb jaxb2 xml-validation

我有一个使用jaxb创建的xml文件。我需要针对xsd文档验证它。是否可以在没有解组的情况下进行验证。我需要在xml文件中打印错误。

1 个答案:

答案 0 :(得分:11)

是的,您可以使用1.5中的java中的验证器。这是参考doc

除此之外,您可以使用基于dom或基于流的API来针对xsd文件验证XML文档。 如果您希望将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。如需进一步参考,请参阅here

stackoverflow中也有一个相关的answer