9

我有一个使用 jaxb 创建的 xml 文件。我需要根据 xsd 文档对其进行验证。是否可以只进行验证而不进行编组。然后我需要在 xml 文件中打印错误。

4

1 回答 1

12

是的,您可以使用从 1.5 开始的 java 中的验证器。这是参考文档

除此之外,您还可以使用基于 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。如需进一步参考,您可以在此处查看

stackoverflow 中也有一个相关的答案

于 2012-06-08T12:37:48.640 回答