我有一个使用 jaxb 创建的 xml 文件。我需要根据 xsd 文档对其进行验证。是否可以只进行验证而不进行编组。然后我需要在 xml 文件中打印错误。
问问题
10866 次
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 回答