26
我有一个像下面这样的标准代码来验证xml对xsd,但是它会在第一个错误时抛出异常并停止。如何验证xml,但继续处理第一个和下一个错误,并最终得到它们?它甚至有可能吗?如何根据xsd验证xml并获取* ALL *错误?
public static void validate(File xml, InputStream xsd) {
try {
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(xsd));
Validator validator = schema.newValidator();
StreamSource xmlFile = new StreamSource(xml);
validator.validate(xmlFile);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这个例子可能会有帮助:http://java-by-ash.blogspot.com/2012/07/xml-schema-validation.html – ThreaT