`
totoxian
  • 浏览: 1034833 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

应用XML架构文件

阅读更多

应用XML架构文件

工作上,有时会遇到系统间数据交互的问题。之前我做过的方法是,源系统将数据导出为文本文件(TXT后缀),然后上传到目标系统,分析、读取。现在好一点,应用web service,编写一个数据接口,在程序里直接调用,而无须再经过人工上传一道工序。并且web service传送的数据,全部是XML格式,可以很方便的读取,不必再自己写分析算法。当然,也因为是XML格式,每个字段值前后各一个标记,并且是明文,如果记录很多,可能需要传送的数据量就比较大了,这可能是不够好的地方。

由于XML文件只存储数据,并无数据类型描述,因此从XML文件读入数据可能会出现数据类型与原先不符的情况。比如,有一表employee,结构如下:IDINT),NAMEvarchar(50)),在XML里表示为<EMPLOYEE><ID>1</ID><NAME>张三</NAME></EMPLOYEE>。这样,ID的类型原本为整型,而此时系统却以为是字符型!

因为这个情况我们遇到了点问题。

数据导入的时候,往往要加以分析,将导入的数据和现有数据比较,以确定是插入、更新还是删除。比较的算法,最简单当然是将两个数据集(DataSet)来个嵌套循环,逐条记录比较。不过这种方法效率不高,可以改进一下,将两个数据集排好序,然后再来比较。

怎样排序呢?从XML文件里读取数据,存放在数据集dsXml里,而现有数据,存放在数据集dsCur里,每个数据集里都只有一个DataTable。可以用DataTableSelect方法来实现排序,方法如下:

//XML文件里读取数据

DataSet dsXml = new DataSet(“dsXml”);

DsXml.ReadXml(employee.xml);

//从现有数据库中读取数据。GetData是自定义的函数,从现有数据库中提取数据

DataSet dsCur = GetData();

//按照id的顺序排序。

//其中Select第一个参数是过滤条件,这里为空表示所有记录都适合;第二个参数表示排序字段

DataRow[] drsXml = dsXml.Tables[0].Select(“”,”id”);

DataRow[] drsCur = dsCur.Tables[0].Select(“”,”id”);

然后比较这两个记录集:drsXmldrsCur

但是运行的结果却跟原先设想大相径庭。

什么原因呢?

原来就是因为在dsXml里,字段id是字符型。字符型排序不同于数值排序,如果让系统比较,”9”肯定大于”10”。因此,dsXml的排序没有得到我们预期的效果。

看来要让系统知道id是整型。如何能做到?可以结合XML架构文件。

dsXml.ReadXmlSchema("employee.xsd");

dsXml.ReadXml(employee.xml,XmlReadMode.InferSchema);

这样子读出来后,数据结构就跟架构文件employee.xsd里描述的一模一样了。

补充一点,本人对架构文件语法不熟悉,是先用从数据库中拿到的数据集dsCur输出来,然后再稍作修改:

dsCur. WriteXmlSchema(“employee.xsd”);

分享到:
评论

相关推荐

    spring XML配置文件和相关的包

    框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端...

    spring-mybatis.xml配置文件

    主要用于spring和mybatis的整合,实现SSM架构的应用。

    基于XML的CAD文件网上发布转换方法.pdf

    基于XML的CAD文件网上发布转换方法.pdf

    Java and XML, 3rd Edition

    全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定的Java架构(JAXB)的相关知识。第三版还彻底重写了有关网络技术的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    xmlspy.2013-patch

    的Java / C#/ C++代码生成XML架构 SOAP客户端,SOAP调试器,SOAP验证 XML数字签名XML文档的签名支持 即时图表创建用于显示和分析XML数据 JSON编辑器,JSON和XML转换 Visual Studio集成与Eclipse的集成 HTML编辑器和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA与XML.rar

    全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定的Java架构(JAXB)相关知识。第三版还彻底重写了有关网络技术的章节,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    altova-xmlspy-enterprise-2010-v12-3

    的Java / C#/ C++代码生成XML架构 SOAP客户端,SOAP调试器,SOAP验证 XML数字签名XML文档的签名支持 即时图表创建用于显示和分析XML数据 JSON编辑器,JSON和XML转换 Visual Studio集成与Eclipse的集成 HTML编辑器和...

    基于SSM架构的Java书评网设计源码

    项目共包含139个文件,其中XML配置文件38个,Java源代码文件27个,编译后的Java字节码文件25个,PNG图片文件7个,JavaScript源代码文件5个,CSS样式文件4个,JPG图片文件4个,HTML页面文件4个,Properties配置文件3...

    基于SpringBoot和Vue的单体架构在线投票系统设计源码

    基于SpringBoot和Vue的单体架构在线投票系统设计源码,该项目包含174个文件,主要文件类型有114个xml配置文件,46个java源文件,以及4个Markdown文档用于项目说明。此外,还包括3个gitignore文件用于版本控制,2个...

    基于JSP和BS架构的学生信息管理系统设计源码

    项目共包含192个文件,其中XML配置文件57个,Java源代码文件57个,编译后的Java字节码文件43个,JSP页面文件13个,Properties配置文件8个,LST文件6个,IML文件4个,Git忽略配置文件1个,JSON文件1个,以及项目配置...

    XML 架构表单生成器「XML Schema Form Generator」-crx插件

    通过用户友好的表单编辑复杂的XML文件。 为任何XML模式生成可编辑HTML5表单! XML模式(XSD)包含大量有关XML结构中允许哪些数据以及如何呈现用户界面的信息。 此扩展:-为任何XML模式(XSD)创建即时HTML5表单; -...

    基于Spring和SpringMVC的分布式敏捷开发系统架构设计源码

    项目共包含1251个文件,其中Java源代码文件379个,XML配置文件198个,Properties配置文件159个,JavaScript源代码文件115个,JSP页面文件114个,PNG图片文件54个,CSS样式文件43个,HTML页面文件35个,Shell脚本文件...

    服务器架构ppt.pptx

    报表服务器 WebFOCUS Reporting Server概述 主要用于连接各种数据源 获取数据与执行计算 执行fex文件解析 WebFOCUS核心引擎 适配器 元数据 过程文件 延时报表过程 数据缓冲区 与各种客户端交换信息 服务器架构ppt...

    基于Spring Boot和Spring Cloud的微服务架构设计源码

    文件类型包括223个Java源代码文件、48个XML配置文件、36个YAML配置文件、35个PNG图片文件、7个YAML文件、6个SQL文件、5个Markdown文档、5个TXT文档、4个VM文件和3个LauncherService文件。该架构是一个商业级项目升级...

    基于BS架构的软件项目实训-JSP-丁旭-配套源码及ppt

    用大量且简单的实训案例向读者介绍JSP开发环境、JSP基础应用、JavaScript的应用、文件管理技术应用及数据库管理技术应用等相关技术,初学者参考书中实训案例可以快速构建简单的B/S架构的软件项目;“进阶篇”内容...

    基于JFinal和layui的企业应用管理系统设计源码

    企业应用管理系统:基于JFinal和layui开发,包含717个文件,包括143个JavaScript文件、121个GIF图像文件、113个Java类文件、107个PNG图像文件、105个HTML文件、44个CSS样式文件、13个JPG图像文件、12个SQL文件、7个...

Global site tag (gtag.js) - Google Analytics