博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML自动建表/存库
阅读量:2384 次
发布时间:2019-05-10

本文共 2491 字,大约阅读时间需要 8 分钟。

流程

  1. 验证XML文档是否合法;
  2. 使用SAX解析XML内容到HashMap中;
  3. 根据HashMap内容,模仿sql语句的格式动态生成SQL语句,执行该语句实现自动建表/入库操作

注:源码实现XML自动生成XSD函数,XSD自动生成类(Java Bean),绑定XML内容到类(Java Bean),对象转化为XML


源码下载


xsd验证XML

public static boolean validateXMLByXSD(String xmlFileName,String xsdFileName) {          boolean flag=true;          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 = 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);                 XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint());                 //如果错误信息不为空,说明校验失败,打印错误信息                 if (errorHandler.getErrors().hasContent()) {                     System.out.println("XML文件通过XSD文件校验失败!");                     writer.write(errorHandler.getErrors());                     flag=false;                } else {                     System.out.println("Good! XML文件通过XSD文件校验成功!");                 }             } catch (Exception ex) {                 System.out.println("XML文件: " + xmlFileName + " 通过XSD文件:" + xsdFileName + "检验失败。\n原因: " + ex.getMessage());                 ex.printStackTrace();                 flag=false;            }            return flag;        }

转载地址:http://ygkab.baihongyu.com/

你可能感兴趣的文章
docker基础命令
查看>>
JScript实现将指定目录下的vc工程加到解决方案
查看>>
docker ADD命令的用法
查看>>
windows平台编译pthreads库的经验总结
查看>>
使用pip的libxml安装错误的解决办法
查看>>
windows下编写绿色软件的设想
查看>>
如何调试release版的C#程序
查看>>
引用类库出现类型初始值设定项引发异常错误
查看>>
MarkdownPad2无法预览Markdown文档问题的解决
查看>>
在windows平台上编译SCIP
查看>>
Failed to execute spring-boot-maven-plugin问题的解决
查看>>
在windows平台上编译libgeotiff-1.6.0
查看>>
安卓手机可以连上wifi但无法上网的解决办法
查看>>
C++程序员常用工具集
查看>>
在CSDN博客中添加量子恒道统计功能的做法
查看>>
C++调用IDL程序的做法(一)
查看>>
C++调用IDL程序的做法(二)
查看>>
jscript的常用文件操作
查看>>
eCognition学习记录
查看>>
移动硬件的异军突起及其影响
查看>>