Java中使用XSD校验XML的问题

这是我的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错误码,怎么样将校验结果和错误码对应起来?
谢谢各位!

阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题