Delphi 6 XML映象工具

原创 2002年04月01日 09:26:00

Delphi 6 含有许多更新更强的XML支持功能,增加了XML文件编程,XML数据绑定向导,XML映象和BizSnap(SOAP/XML Web服务)。本文是三篇论述Delphi 6中XML功能系列文章的第三篇,也是最后一篇,论述Delphi 6中的XML映象工具,也称之为XML映象器(XML Mapper)。

XML映象器
可以单独打开或者在IDE的工具(Tools)菜单中打开映象器(XML Mapper)。这个工具将XML文件影射为类似于数据库中的数据集(DataSet)!在前二篇文章中,我们都使用TXMLDocument组件来处理XML文件或XML绑定的数据。现在,我们不再使用TXMLDocument组件了。我们用XML映象器将XML文件转换成数据包(或反之),这样就可以象我们非常熟悉得那样使用诸如DataSet这样的组件来处理XML数据。
XML映象器可以打开XML文件和数据包文件(*.xml,*.cds),纲文件(*.dtd,*.xdr,*.xsd),库文件(*.xrp)和转换文件(*.xtr)。后面这个转换文件是由映象器自行产生的。现在加载我们在前二篇文章中用到的Clinic.xml文件,看看数据影射成什么样。

如图1所示,Clinic.xml影射为一个Clinics结构,含有若干Clinic子项。每个Clinic有4个域:@No, Title, Date, 和Topics。注意@No是属性,其他3个是元素。
将鼠标移至Clinic节点,按右键,选择"Select All"(Ctrl+A)或者"Select All Children",这样就把@No, Title, Date and Topics各项加到中间的映象表内。此时还没有生成相应的数据集域。
我们再次到Clinic节点按下鼠标右键,选择"Create Datapacket from XML"(Ctrl+D),这时产生了相应的数据包并显示在映象器的右方,如图2所示。
映象器将XML文件转换成4个标准格式的数据包。我们还可以增加或删除数据包。这在B2B场合尤为重要,将接收到的数据(纪录)插入到数据库中。

创建并测试转换
按下Create and Test Transformation按钮,随即弹出一个DBGrid窗口,以ClientDataSet数据包格式显示Clinic.xml文件里的数据。数据转换之后,有4种方式存盘。对于初学者来说,可以存回原先的Clinic.xml文件。另外还可以存为包数据文件格式(*.xml),库文件(repository)格式(.xrp)和转换文件格式(*.xtr)。后面的库文件可以被XMLTransform组件(在Data Access标签里)调用。

XML转换
Delphi 6里有3个XML转换组件。TXMLTransformProvider组件通过clinic.xtr文件将原始XML文件转换到ClientDataSet。
举例来说,在Delphi 6的主窗体上安放一个TXMLTransformProvider(在Data Access标签里)。将TransformRead属性的TransformationFile子属性设为clinic.xtr作为数据源。将XMLDataFile设为clinic.xml文件。
然后安放一个ClientDataSet组件,将它的ProviderName属性设为XMLTransformProvider。
现在可以激活ClientDataSet组件了,它将由XMLTransformProvider提供的数据转换过来。它的PacketRecords属性值缺省为-1,表示转换全部XML文件。
要显示数据,我们再加入DataSource和DBGrid组件。将DataSource指向ClientDataSet,DBGrid指向DataSource,就象我们通常使用得那样。结果显示如图3。

现在可以象使用数据库数据那样使用XML文件里的数据了。如果对数据进行了修改,可以调用ClientDataSet.ApplyUpdates方法将改动的数据存回XML文件。
但是这样做是不够的。我们还得启动XML映象器,将创建方式由"XML to Datapacket"改为"Datapacket to XML"。这时如果按下"Create and Test Transformation"键,看到的是空白页。然后将转换结果存为ClinicToXml.xtr文件。
现在,将TXMLTransformationProvider的TransformationWrite属性中的子属性TransformationFile设为ClinicToXml.xtr文件。
最后在主窗体的OnClose事件中加上存盘指令:
  ClientDataSet1.ApplyUpdates(-1)
程序退出之前会将作出的数据修改存回XML文件。
这样就为Delphi 6的B2B开发环境BizSnap的虚拟中间层作好了数据准备。

通过mybatis工具generatorConfig.xml自动生成实体,DAO,映射文件

简介   Mybatis属于半自动ORM,可以利用mybatis工具generatorConfig.xml自动生成DAO、实体、映射文件的方式来代替手动书写的方式,这样既提高了工作效率也可以在项目避...
  • jamesge2010
  • jamesge2010
  • 2016年06月01日 10:09
  • 2684

XStream在Java对象和XML之间相互转换 工具类

1、通过XStream,发现那个功能还是很qda
  • zhonglisen
  • zhonglisen
  • 2014年04月25日 17:34
  • 4678

Java对象、Json、Xml转换工具Jackson使用

在Java项目中將一个对象转换成一段Json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如Gson、JSON-lib、Jackson等等。本文主要介绍Jackson的使用,Jacks...
  • Rongbo_J
  • Rongbo_J
  • 2015年08月25日 23:13
  • 7510

WinImage磁盘映象工具

  • 2017年11月10日 12:16
  • 633KB
  • 下载

网众磁盘映象加载上传工具

  • 2012年08月05日 15:20
  • 2.11MB
  • 下载

Delphi6代码格式化工具

  • 2011年08月30日 20:45
  • 130KB
  • 下载

delforexp-格式化源代码工具 for delphi6 (直接执行EXE文件)

  • 2012年02月16日 10:54
  • 195KB
  • 下载

Delphi XE6 RTM 一键激活工具 Activator Ver 9.0 lSuper

  • 2014年04月24日 04:25
  • 1.4MB
  • 下载

Delphi读取Android设备联系人.DelphiXE6中编译通过

和某牛讨论Delphi读Android联系人.写了如下代码 uses   FMX.Helpers.Android,   Androidapi.JNI.JavaType...
  • harvardfeng
  • harvardfeng
  • 2015年05月30日 09:31
  • 830

回炉再煅——Delphi6,CxGrid4功能实现小记(分组、下拉框、多行复制)

由于公司业务的关系,又要写回Delphi程序。以下是为完成客户需求时所写的一些功能需求代码,作为又一次的记录。 IDE版本:Delphi6, 控件版本:DevExpress4.5 先来个D6截图,缅怀...
  • zhaogang
  • zhaogang
  • 2014年02月20日 10:36
  • 1478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi 6 XML映象工具
举报原因:
原因补充:

(最多只允许输入30个字)