这是我的XSD校验代码:
import java.io.File;
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.dom4j.io.SAXReader;
import org.xml.sax.SAXException;
public class Main {
public static void main(String[] args) {
File f=new File("/Users/112/Desktop/jiaoyan.xsd");
try {
Source xmlFile = new StreamSource(new File("/Users/112/Desktop/yanzheng.xml"));
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(f);
Validator validator = schema.newValidator();
try {
validator.validate(xmlFile);
System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
System.out.println(xmlFile.getSystemId() + " is NOT valid");
System.out.println("Reason: " + e.getLocalizedMessage());
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
运行完毕后的错误信息只有一条:
但是错误其实有很多,程序只是验证了第一条错误。我现在想知道:
1.如何让程序将XML全部验证并打印错误信息?
2.我的程序自定义了一套XML错误码,怎么样将校验结果和错误码对应起来?
谢谢各位!