当前位置:编程学习 > JAVA >>

【急】利用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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,