经常会用到xml文件,但是不知道xml文件是否符合对应的xsd约束,下面粘贴出来验证的方法:
xsd文件约束xml,测试xml是否符合规范(附件为xml文件盒xsd文件)
package utlis; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; 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.xml.sax.SAXException; /** * @author changpan * @desc:深圳供需平台 * Jun 7, 2013 */ public class ValidateXMLUtils { /** * 根据xsd文件验证xml文件是否符合规则 * @param xsdpath * @param xmlpath * @return * @throws SAXException * @throws IOException */ public static Map<String,Object> Validatexml(String xmlpath,String xsdpath) throws SAXException,IOException{ Map<String,Object> result = new HashMap<String,Object>(); //建立schema工厂 SchemaFactory schemaFactory=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); //建立验证文档文件对象,利用此文件对象所封装的文件进行schema验证 File schemaFile=new File(xsdpath); //利用schema工厂,接收验证文档文件对象生成Schema对象 Schema schema=schemaFactory.newSchema(schemaFile); //通过Schema产生针对于此Schema的验证器,利用schenaFile进行验证 Validator validator=schema.newValidator(); //得到验证的数据源 Source source=new StreamSource(xmlpath); //开始验证,成功输出success!!!,失败输出fail try{ validator.validate(source); result.put("status", 1); result.put("message", "数据校验成功"); return result; }catch(Exception ex){ String error=ex.getMessage(); error = error.substring(error.indexOf("valid.1.2.1:")+12,error.length()); result.put("status", 0); result.put("message", error); return result; } } public static void main(String[] args) { String xsdpath="C:\\Users\\Administrator\\workspace_1\\jcjg\\supervision\\utlis\\objinfo.xsd"; String xmlpath="C:\\Users\\Administrator\\workspace_1\\jcjg\\supervision\\utlis\\objinfo.xml"; try { Map<String, Object> validatexml = Validatexml(xmlpath,xsdpath); System.out.println(validatexml);//{message=数据校验成功, status=1} } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
三维图形显示及浏览,可进行放大,缩小,导航,平移,全图,以及显示鼠标的坐标
SXD-Document Rust中的XML库。 概述目前,该项目分为两类:文档-基本DOM操作和读/写X SXD-Document Rust中的XML库。 概述该项目目前分为两个板条箱:文档-基本DOM操作和从字符串读取/写入XML。 xpath-XPath 1.0...
会生成错误sxd的xml文档,
DSP28035例程
DSP 28035例程 ( SXD28035A) DSP 28035例程 ( SXD28035A)
将 xfig 格式的文件转换为 OpenOffice.org / LibreOffice.org Draw 格式的实用程序。
SXD-XPath Rust中的XML XPath库。 概述项目分为两部分:文档-基本DOM操作和从SXD-XPath读取/写入XML Rust中的XML XPath库。 概述项目分为两部分:文档-基本DOM操作和从字符串读取/写入XML。 xpath-XPath 1.0表达式的...
自己花钱买的课程,学习DSP F28335的例程源码,只能运行在DSP环境中,使用CCS4.0以上的版本编译和下载。
玻尔电子宙斯盾板之SXD28335B_QFP电路原理图,内部详细绘制了开发板的电路原理图。
Keil uVision2下,串口模式0串行移位输出,与74LS164配合点亮7段数码管
dubbo.xsd下载 dubbo 标签不错,亲测可用,下载之后添加.xsd文件约束就不报错了。
发电机典型事故案例sxd.ppt
发电机典型事故案例sxd .ppt
康耐德C2000-A1-SXD0020-BX3使用说明书 本문档為康耐德C2000-A1-SXD0020-BX3使用说明书,旨在指导用户正确使用康耐德C2000-A1-SXD0020-BX3产品。该产品是一款Ethernet→2DO遠端I/O模块,具有DO控制、远程I/O模块等...
sxd-html:使用html5ever对sxd-documentsxd-xpath进行html解析
sxd-personnel-admin-1.020231106.zipactivity
玻尔电子宙斯盾板之SXD28335B_QFP用户手册详细介绍了开发板SXD28335B的用户操作步骤和实验方法。
12 玻尔电子护卫舰版之SXD28335_QFP软件例程.zip