【急】利用xsd校验xml格式问题
各位大神,小弟最近碰到个问题。是关于用xsd校验xml格式的。具体情况是这样:
在servlet接收xml报文,然后利用xsd文件校验这个xml格式,例如某元素的时间格式正不正确。
但是当我进行校验的时候,如果校验不通过,会抛出对应的异常,我要把这些异常转换成友好的中文信息反馈到客户端。具体是哪个元素的格式不正确,是长度太长还是不能为空。目前不知怎么下手,请各位大神赐教。
我是用schema校验xml,具体代码如下:
InputStream inputStream=request.getInputStream();//获取xml报文
SchemaFactory schemaFactory;
try {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
DOMSource source = new DOMSource(doc);
DOMResult result = new DOMResult();
schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL url=this.getClass().getResource("XXXX.xsd");//获取定义好的xsd文件
Schema schema=schemaFactory.newSchema(url);
Validator validator=schema.newValidator();
validator.validate(source, result);//校验开始
}catch(SAXException e){//如果校验不通过,会抛出异常,就是这里不知怎么把异常转换为具体是哪个元素的格式不正确,要中文显示
e.printStackTrace();
} --------------------编程问答-------------------- 求大神回复。。
补充:Java , Java EE