您好,欢迎访问一九零五行业门户网

通过xsd校验数据正确性

/** * 通过xsd校验数据正确性 * */ public static void validatexmlbyxsd() { string xmlfilename = "d:\\test.xml"; string xsdfilename = "d:\\test.xsd"; try { // 创建默认的xml错误处理器 xmlerrorhandler errorhandler = new xmlerrorhandler(); // 获取基于 sax 的解析器的实例 saxparserfactory factory = saxparserfactory.newinstance(); // 解析器在解析时验证 xml 内容。 factory.setvalidating(true); // 指定由此代码生成的解析器将提供对 xml 名称空间的支持。 factory.setnamespaceaware(true); // 使用当前配置的工厂参数创建 saxparser 的一个新实例。 saxparser parser = factory.newsaxparser(); // 创建一个读取工具 saxreader xmlreader = new saxreader(); // 获取要校验xml文档实例 document xmldocument = (document) xmlreader.read(new file( xmlfilename)); // 设置 xmlreader 的基础实现中的特定属性。核心功能和属性列表可以在 // [url]http://sax.sourceforge.net/?selected=get-set[/url] 中找到。 parser.setproperty( "http://java.sun.com/xml/jaxp/properties/schemalanguage", "http://www.w3.org/2001/xmlschema"); parser.setproperty( "http://java.sun.com/xml/jaxp/properties/schemasource", "file:" + xsdfilename); // 创建一个saxvalidator校验工具,并设置校验工具的属性 saxvalidator validator = new saxvalidator(parser.getxmlreader()); // 设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。 validator.seterrorhandler(errorhandler); // 校验 validator.validate(xmldocument); outputformat format = outputformat.createprettyprint(); format.setencoding("utf-8"); format.setencoding("gbk"); xmlwriter writer = new xmlwriter(format); // 如果错误信息不为空,说明校验失败,打印错误信息 if (errorhandler.geterrors().hascontent()) { system.out.println("xml文件通过xsd文件校验失败!"); writer.write(errorhandler.geterrors()); } else { system.out.println("good! xml文件通过xsd文件校验成功!"); } } catch (exception ex) { system.out.println("xml文件: " + xmlfilename + " 通过xsd文件:" + xsdfilename + "检验失败。\n原因: " + ex.getmessage()); ex.printstacktrace(); } }
其它类似信息

推荐信息