基于XML(精选12篇)
基于XML 篇1
摘要:VoiceXML是建立于XML语言规范基础之上的一种应用于语音浏览的标记语言。利用VoiceXML, 用户可以开发出基于语音的Web应用系统, 能够通过语音来方便的访问网络, 获取信息和得到资源, 从而简化网络的访问手段, 扩大网络的访问范围。本文将着重通过分析设计VoiceXML解析器的基本框架, 突出VoiceXML解析器的作用和地位。
关键词:VoiceXML,语音浏览,解析器
0 引言
Voice XML为语音应用领域展现了一个广阔的未来, 在语音门户、语音呼叫中心 (Call Center) 、语音信息服务、语音电子商务等领域有着广泛的应用。它的出现使得语音应用系统访问WEB站点由困难变得容易, 使得访问网络的途径由传统的只能够以画面来访问的形式变成了可以通过语言的形式来访问网络, 极大的扩展了网络资源的应用范围和应用的对象。
1 Voice XML解析器在Web应用系统中的位置及作用
Voice XML解析器是位于Web的客户端应用程序与服务器端的应用程序之间的一个中间部件。作为Voice XML Web应用系统的核心部分, Voice XML解析器相当于整个应用系统的大脑。通过Voice XML解析器, 系统可以知道从Web端过来的Voice XML文件要求怎样去执行程序, 执行的顺序是怎样的, 该如何选择客户端应用程序所提供的共通部件, 怎样调用这些共通的接口, 数据的输入和输出应该如何处理等。如图1所示Web Voice XML应用系统的组成示意图。
一个Voice XMl解析器管理着多个Web客户端应用系统。不同的客户端应用系统可以在相同的服务提供者那里去调用已经编译好的共通部品。不同的客户端应用系统对应不同的来自Web Server端的Voice XML文件, 这些文件主要用Voice XML的语法描述了要怎么样去搭建以一个Web客户端应用系统, 去哪里调用公共的执行接口, 数据从哪里接受, 数据该存放到哪里, 以及这些数据的输入、输出和共通接口的执行顺序和执行逻辑是什么样的。
当然要完成Voice XML文件所描述的事情还得靠Voice XML解析器 (以下称parser) 能够读懂Voice XML文件所讲述的事情, 并按照里面的描述去一步一步执行这些事情, 来连接客户端和服务端的通讯, 完成数据信息的传输, 达到构建系统的目的。
系统的开发模式得到一定改进, Web应用系统的客户端开发者只要开发好自己的web端程序就可以了, 同样服务器的程序开发者也只需完成相应的任务即可。各自对外部提供好相应接口, 至于客户端和服务器端的连接, 完全不用担心的。只要这两个部分的程序正确, 接口对外统一, 那么, 两个部分的连接工作是通过Voice XML文件来完成的。Voice XML文件描述了如何去构建一个系统, 具体的构建工作则由parser来完成。无论是客户端还是服务器端, 程序的开发只需要一次, 以后再要用到这些部分的时候, 只需要通过Voice XML文件去调用就可以了, 这样系统功能的扩展和维护会变得更加快速和容易了。
2 Voice XML解析器的整体构造
Voice XML解析器是系统的核心, 它负责接收用户在客户端发送的请求, 根据用户的输入进行不同的操作, 并将结果反馈给用户, 与用户进行各种交互。基于Voice XML的解析器有资源代理模块、对象树生成模块、语义解释模块、输入输出模块以及一些辅助模块构成。如图2所示是Voice XML解析器的构造图。
2.1 控制接入模块
负责对用户请求的接收, 首先是对请求进行判断与分析, 然后根据请求码找出与之相对应的流程文件所在放的路径, 再启动相应的浏览器线程, 并解释相应的执行流程。为了方便快速查找, 需要在控制接入模块中保存一个请求码与对应流程Voice XML文档地址URL的映射表。
2.2 资源代理模块
负责从网络服务器端取到相应的Voice XML文件, 为提高获取文档的效率, 缩短时间, 还应建立文档的cache机制, 采用映射表机制去管理缓存中的文档。
2.3 对象树生成模块
因为Voice XML文档是XML文件, 所以按照对XML文件的处理方式, 对象树生成模块接收资源代理模块获取的Voice XML文档, 调用SAX的Parser接口, 依据流程文档, 整理生成一棵XML对象树, 其输出的结果是一个对象树结构, 该结构包含了相应的数据及处理方法, 并完成了部分初始化、构建索引列表等工作, 生成的对象树结构, 则是语义解释模块的核心基础。便于了后期的运行交互过程中方便运用。
2.4 语义解释模块
语义解释模块是解析器核心模块, 主要实现系统流程的总控、语义的解释和输入输出的交互等功能。该模块根据生成的对象树结构所表示的流程信息, 进行解释, 并通过输入输出接口模块与客户进行交互, 产生事件信息, 然后采取相应的处理。该模块还包含了多个子模块, 包括变量保存模块, Voice XML具体标记的语义解释模块, 事件处理模块等。
2.5 输入输出接口模块
该模块负责解释器的输入输出操作, 保证客户与系统流程的交互作用, 实现数据库操作、语音的ASR输入、Irrs输出、录音、DTMF输入、资源的控制以及电话功能等。它通过模块, 向客户播放提示音;通过DTMF或ASR模块, 将客户的输入信息收集到浏览器内部进行处理;通过电话接口实现用户摘机判定、电话转接等功能。还有Java Script处理模块负责对Java Script的处理以完成变量维护、脚本维护、表达式运算等功能, Grammar处理模块负责对语音输入中的特定词进行处理等。
2.6 Web Server模块
该模块是独立于整个Voice XML解析器的, 它是位于服务器上的一个功能模块。通过在服务器上发布该Web Service方法, 客户端的应用程序就能够去调用这些方法了。在本系统中, Web Service方法的作用主要是获取服务器端的Voice XML文件。并将这些文件传递给客户端应用系统。另外, Web Service方法还提供了访问数据库的功能, 这些方法可以从数据库中读取数据到客户端应用系统, 已可以将客户端的数据写到数据库中。
3 总结
本文首先通过Voice XML的Web交互环境来分析Voice XML解析的外部因素, 在分析的基础上, 设计了简单解析器的基本模型。在这个模型中, 包括了控制接入模块、资源代理模块、对象树生成模块、语义解释模块、输入输出模块 (包括事件处理模块) 等模块的设计。语音识别、语音合成等新的人机交互方式的成熟应用, 以及Internet的飞速发展, 促进了语音浏览的诞生。而基于XML的Voice XML标记语言又将语音浏览带入了数据浏览的世界, 为语音浏览技术开创了新的未来。
参考文献
[1][美]Rick Beasley, 等.VoiceXML语音应用程序开发[M].王建华, 王卫峰, 等, 译.北京:机械工业出版社, 2002.
[2]赵丰年, 武远明, 编.HTML&DHTML实用教程[M].北京:北京理工大学出版社, 2002.
[3]顾淑珍, 等.宽带增值服务开发实例[M].北京:机械工业出版社, 2002.
基于XML 篇2
飞行器虚拟样机总体设计是一项复杂的系统工程,涉及到众多的学科领域之间的协同设计,针对总体设计阶段分系统处于异构平台并行设计、集成类型复杂、涉及面广的特点,对飞行器总体设计按功能模块进行详细划分,采用流程化“向导”模式进行设计,并采用XML数据文件作为数据交换平台,通过设计通用的.XML数据描述,实现不同模块、不同商业软件的数据互操作,结合可视化技术,构建了飞行器虚拟样机总体设计流程化、数字化、虚拟化的设计平台及可视化演示系统.
作 者:肖振 陈铮 彭晓源 XIAO Zhen CHEN Zheng PENG Xiao-yuan 作者单位:北京航空航天大学先进仿真技术实验室,北京,100083 刊 名:系统仿真学报 ISTIC PKU英文刊名:JOURNAL OF SYSTEM SIMULATION 年,卷(期): 18(z2) 分类号:V4 TP3 关键词:虚拟样机 飞行器 总体设计 XML 虚拟装配
基于XML 篇3
关键词:可扩展标识语言、关系型数据库、数据交换
一、引言
异构数据库分布在网络的不同位置,其异构性体现在DBMS(Database Management system)运行的系统环境和使用的数据模型的不同,以及用户各自独立对数据进行建模而引起的数据结构和数据语义表达的差异。系统异构给数据库间跨网络的互操作带来困难,模型异构使得用户无法使用本地的数据库语言访问异构数据库中的数据,结构异构和语义异构则使应用系统难以理解异构数据库中的数据并对其进行分析和处理。因此,这些异构数据库就象一个个“信息孤島”,彼此间的共享存在困难。
数据交换是实现异构数据库共享的途径之一。解决异构数据库的共享主要有远程访问、数据库集成、数据交换等方式,其中数据交换是用源数据库的使双方的数据互为补充,达到异构数据库共享的目的。
二、研究内容
XML是一种数据格式描述的元语言标准,具有系统独立性、可扩展性、自描述性、遵循严格的语法规范以及支持多语种等特点,自产生之后就迅速被作为中间数据格式标准应用到数据交换领域。作为数据交换的中介,XML不仅能够提供对数据的存储,还包含对数据结构的描述回。XML的系统独立性使得XML数据能够在不同的系统中使用各种编程语言解析和处理,屏蔽了异构数据库间系统环境的差异。因此,基于XML的数据交换方案已经被广泛用于解决网络环境下异构数据库的共享。
本文主要研究如何实现各个关系型数据库之间的信息交换。XML是一种新型的数据交换标准,通过XML和JDBC,Hibernate,J2EE等技术的应用可以实现不同数据库间信息的交换。为完成数据库到XML和XML到数据库之间数据的交换与传递,系统解决了XML文档结构和数据库结构之间的映射,研究XMLSchema与关系模式之间的映射,这一步采用的是Xmlbeans与Java反射机制。还研究了基于XML的数据交换系统的设计、运行机制等。
三、XML技术
XML为ExtensibleMarkupLanguage的简称,即可扩展标记语言。XML的出现就是为了要应用于各个不同的层面,可根据应用领域的不同,而以不同的方式来描述文件。简单地说,对XML是以一种简单、标准、并可扩充的方式,将各种信息如文本、表格,甚至图形等以原始数据的方式储存。在储存的过程中,加入一些可供识别的标记,而凭借这些可供识别的标记,在网络上的服务器可将信息内容做进一步的处理,从而得到所需的信息。
四、XML数据交换方案设计
(一)系统设计
基于XML的数据交换方案使用较为广泛,方案是实习依赖与XML模式与关系模式,在进行关系模式与XML模式转换时,需要对数据进行操作和处理以消除异构性,因此灵活性较差。针对这一问题,利用XMLSchema对数据的结构、类型和约束的强大表达能力,由源方和目标方分别对各自的关系模式进行描述,构造源XML模式和目标XML模式,然后在源XML模式和目标XML模式间建立匹配规则来实现异构数据库的交换。数据交换过程中,源方将关系数据转换为源XML模式的数据,然后由按照匹配规则将源XML数据映射为符合目标XML模式的数据,消除数据异构性,交付给目标方,目标方再将目标XML数据转换为关系数据入库。
异构数据库交换方案包括三个部分,源数据库方、数据转换方和目标数据库方。源数据库方负责提供源XML模式以及将关系数据封装为源XML数据交付给数据转换方;目标数据库方负责提供目标XML模式,按该模式接收XML数据并转换为关系数据装载入库;数据转换方负责将源XML数据映射为目标XML数据并交付到目标数据库方。数据转换方根据源XML模式和目标XML模式与目标数据库方交互生成,并保存在数据转换方,用于数据映射。由于数据交换是双向的,因此这里所说的源方和目标方是相对的,可以根据实际的数据交换方向来确定。所以,源方是交换中提供数据的一方,目标方是接收数据的一方,数据转换方则是提供交换服务功能的一方。
(二)系统实现研究
1、数据提取模块的实现
该模块完成从源数据库中提取数据的功能。本模块中我们用到了Hibernate框架,通过Hibernate建立关系——对象映射,方便数据的存取。
2、模式转换模块的实现
该模块是本系统的核心模块。该模块完成源数据库模式到目标模式的转换。消除数据库表结构,数据类型的异构性,达到数据库间进行数据交换的目的。
模式匹配的具体实现分两个步骤:
1)XML模式到JAVA对象的映射。
这一步是通过Apache的开源项目XMLBEANS来实现的。利用XMLBEANS,我们能很方便的完成XMLSCHEMA到JAVA对象的映射。
2)通过反射机制实现源方与目标方的模式匹配。
反射机制是java中十分重要的特性,利用它可以在运行时进行必要的处理。通过反射,我们可以得到源模式下的javabean对象的字段与目标模式下的javabean对象的字段,通过字段的对比以及预先定义的规则可以完成简单的映射,消除数据的差异。
3、生成目的XML数据文件及其入库
本模块通过数据转换模块的对象把数据提取模块的数据转换为目标模式下的javabean对象。然后再通过XML文档处理对象把javabean对象写入目标XML文档。最后,将目标XML文件导入目标数据库。
(三)模式转换
系统核心模块-模式转换的流程。这个过程是完全封装的,实现了平台和网络的透明性、数据模型的转换、模式转换和分布环境的支持的透明性。
第一步Hibernate把源数据库中的表关系映射到具体的Java对象,通过操作Java对象来处理关系数据库;第二步通过Xmlbeans处理目标XMLSchema的结构、元素等信息,建立目标XML模式到Java对象的映射以及目标XML文件处理对象;第三步通过反射机制,分析Hibernate映射对象与目标XML模式的Java映射对象,把Hibernate映射对象的数据信息转入目标XML模式的Java映射对象中,这样就能在第四步使用目标XML文件处理对象生成基于目标模式的XML文件;最后目标XML文件处理对象完成XML文件处理,得到目标数据库映射对象,再通过Hibernate存入目标数据库。
由于系统在不同的数据库间进行数据交换,可能由于数据库地址变化,或者数据库名称改变,所以系统提供了数据库配置功能,完成数据库配置,基本实现数据库位置的透明性。
五、总结
目前,对异构数据库的研究还处在发展阶段,它的研究不仅仅涉及到不同的数据库系统本身,还要考虑到许多复杂的因素:平台和网络的透明性、数据模型的转换、模式转换和分布环境的支持、位置的透明性等。
基于XML快速建站系统 篇4
1.1 快速建站系统的背景和现状
XML技术发展至今, 已经非常成熟, 它广泛应用于电子商务层之间的数据交换、手机、PDA等各种移动平台的信息传输, 是目前为止解决因平台异构性所带来的软件移植性问题的最佳方案。
XML在构建网站中的作用也日渐突显, XML与HTML最大的区别就在于, 前者所包含的标签内容可以很自然的表达某种含义, 方便表示数据, 而后者做为网页设计中历史悠久的标签语言, 其标签内容本身只是代表某种显示格式, 基本上数据和显示是混合在一起的, CSS虽然在一定程度上实现了数据和实现的部分分离, 但是大部分HTML代码仍然非常混乱, 采用XML可以实现数据和显示的彻底分离。在很长一段时间里, HTML/XML将同时存在, XHTML语言便是两者过渡时期的中间产物, 事实上, 它被称为是完全符合XML定义规范的HTML, HTML中存在的一些不合理设计得到了解决, 目前也已经投入使用。
1.2 系统开发的目的
ASP/ASP.NET/JSP等动态网页技术目前在市场上使用的非常普遍, ASP是其中最简单易学的一种开发工具, 但是由于它是基于脚本语言的解释性平台, 处理每一个请求都需要启动解释器解释并返回结果, 而ASP.NET/JSP, 分别基于C#/JAVA, 它们是编译性语言, 编译一次后, 可以缓冲结果, 处理下一次请求时, 除非代码发生改变, 否则直接返回缓冲中的结果, 相比较ASP的每次都要解释的特性, 速度有显著提高, 然而, 不管是解释性, 还是编译性的动态网页技术, 我们访问HTML/XML格式网页的速度永远比动态网页格式的网页速度快。因为每一次请求只是简单的返回文本而已, 中间不需要与数据库通信, 不需要执行服务端程序。也就是通常所说的静态网页, 静态生成技术所要解决的问题就是把动态网页所有的可能结果网页, 都生成为单独的一张静态HTML/XML网页。
静态生成技术是快速建站系统中, 最核心的技术之一, 通过静态生成技术, 用户只要提交遵循系统标准的网页模板, 系统会自动为用户生成前台网页, 同时, 由于前台全都是静态页面, 提高了用户访问速度, 也加强了安全性。
传统快速建站系统的静态生成技术采用的是HTML, 也就是说生成为HTML网页, 模板必须按照指定的规格编写, 模板中包含一些类似”$content$”这种特定格式的字符串, 代表模板中将会被替换的内容, 而该部分替换内容通过系统调用相应的库函数得到, 而这些库函数由系统开发人员预先编写, 再通过输入输出系统, 写入服务器的文件系统, 通过web服务器, 对外发布, 网页设计师没有一定的自由度。大部分模板样式, 排版感觉都差不多, 灵活性不足。
而采用XML的快速建站系统, 以XML为数据中心, 数据库系统只负责数据的中转, 系统对外的所有接口, 都只是XML数据而已, 完全不对格式做任何限制, 显示格式和效果完全由网页设计师负责, 代价就是网页设计师需要学习XSL (专门为XML设计的样式定义语言, 其文件结构本身遵循XML1.0规范) , 这种语言很容易掌握, 无形成本相对合理。
基于XML的快速建站系统, 不仅仅是一项应用的实现, 更确切的说, 是提出了一种团队合作建站的工作模式, 目的在于提高团队合作的自由性和合理性, 进而提高生产效率。
2 系统分析及设计
本系统是基于XML技术的快速建站系统, 应具有网站内容管理系统的功能, 包括了稿件管理、上传管理、广告管理、调查管理、链接管理、分类管理, 同时做为本系统的关键性技术, 即模板技术, 也提供模板管理功能, 此外, 对于系统用户, 也必须提供用户管理功能, 可以添加用户, 同时可对用户进行角色分配。该系统还应该具有数据备份功能, 如图1。
例1广告管理:
功能描述:系统管理员成功登陆该系统后, 进入广告管理模块, 可以新建广告, 编辑广告等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入广告管理界面;2) 系统管理输入新的广告信息, 或者删除修改广告信息;3) 系统接受;4) 用例结束。
例2调查管理:
功能描述:系统管理员成功登陆该系统后, 进入调查管理模块, 可以新建调查, 编辑调查等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入调查管理界面;2) 系统管理输入新的调查信息, 或者删除修改调查信息;3) 系统接受;4) 用例结束。
例3链接管理:
功能描述:系统管理员成功登陆该系统后, 进入链接管理模块, 可以新建链接, 编辑链接等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入链接管理界面;2) 系统管理输入新的链接信息, 或者删除修改链接信息;3) 系统接受;4) 用例结束。
例4上传管理:
功能描述:系统管理员成功登陆该系统后, 进入上传管理模块, 可以新建上传, 编辑上传等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入上传管理界面;2) 系统管理输入新的上传信息, 或者删除修改上传信息;3) 系统接受;4) 用例结束。
例5分类管理:
功能描述:系统管理员成功登陆该系统后, 进入分类管理模块, 可以编辑分类等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入分类管理界面;2) 系统管理输入新的分类信息, 或者删除修改分类信息;3) 系统接受;4) 用例结束。
例6稿件管理:
功能描述:系统管理员成功登陆该系统后, 进入稿件管理模块, 可以新建稿件, 编辑稿件等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入稿件管理界面;2) 系统管理输入新的稿件信息, 或者删除修改稿件信息;3) 系统接受;4) 用例结束。
例7模板管理:
功能描述:系统管理员成功登陆该系统后, 进入分类管理模块, 可以编辑模板等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入模板管理界面;2) 系统管理输入新的模板信息, 或者备份还原模板信息;3) 系统接受。
功能名称:数据备份
主执行者:系统管理员
范围:基于XML快速建站系统
级别:用户目标级
功能描述:系统管理员成功登陆该系统后, 进入数据备份模块, 可以备份, 恢复等。
前提条件:系统管理员成功登陆该系统。
主成功场景:1) 系统管理员在成功登陆该系统之后, 进入数据备份界面;2) 系统管理点击备份或恢复;3) 系统接受;4) 用例结束。
例8用户管理:
功能描述:系统管理员成功登陆该系统后, 进入用户管理模块, 可以新建用户, 编辑用户等。主成功场景:1) 系统管理员在成功登陆该系统之后, 进入用户管理界面;2) 系统管理输入新的用户信息, 或者删除修改用户信息;3) 系统接受;4) 用例结束。
例9数据备份:
功能描述:系统管理员成功登陆该系统后, 进入数据备份模块, 可以备份, 恢复等。
主成功场景:1) 系统管理员在成功登陆该系统之后, 进入数据备份界面;2) 系统管理点击备份或恢复;3) 系统接受;4) 用例结束。
例10手动更新:
功能描述:系统管理员成功登陆该系统后, 可以更新首页, 次页, 列表页, 内容页。
主成功场景:1) 系统管理员在成功登陆该系统之后, 进入上手动更新界面;2) 系统管理更新某部分;3) 系统接受;4) 用例结束。
3 系统详细设计及实现
本系统共分10个主功能模块, 25个具体功能单元, 如图2具体结构如下:
稿件管理:新建稿件、已审稿件、待审稿件、已删稿件
上传管理:新建上传、管理上传
广告管理:新建广告、管理广告
调查管理:新建调查、管理调查
链接管理:新建链接、管理链接
分类管理:文章分类、上传分类、广告分类、链接分类
模板管理:首页模板、次页模板、列表模板、内容模板、自定义模板
下面对系统的主要几个功能模块的功能设计和具体实现分别叙述:
3.1 稿件管理
3.1.1 撰写稿件
功能描述:添加信息稿件, 把信息写入数据库, 同时写入XML数据库, 并调用已定义模板生成HTML网页。
3.1.2 编辑稿件
功能描述:对稿件进行删除, 修改, 审核, 支持批处理。
3.2 分类管理
3.2.1 文章分类
功能描述:对文章分类进行增加, 删除, 修改。
3.2.2 广告分类
功能描述:对广告位删除, 新建等。
3.3 模板管理
3.3.1 首页模板
功能描述:对首页模板修改, 备份和恢复。
4 结论
快速建站系统使用了XSL等先进技术, 并采用了XML设计模式, 具有很好的伸缩性、扩展性和易维护性。电子名片是互联网的新事物, 相信本文对类似系统的开发有一定的启迪作用。
参考文献
[1]陈锦辉.XML与ASP网站实作大全[M].北京:中国铁道出版社, 2001.
[2]贾素玲, 王强, 许珂, 罗昌.XML核心技术[M].北京:高等教育出版社, 2005.
[3]贾小珠, 宋立智, 赵玮.深入浅出XML[M].北京:人民邮电出版社, 2001.
[4]吴洁.XML应用教程[M].北京:清华大学出版社, 2005.
[5]黄泳瑜, 徐蕙英.XML网页设计应用基础教程[M].北京:中国铁道工业出版社, 2006.
[6]孙鑫.深入编程系列--XML网页编程开发详解[M].北京:华夏树人数码科技有限公司, 2005.
基于XML 篇5
XML是Extensible Markup Language的简写,一种扩展性标识语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言, XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
格式特性
XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。
XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows,Mac OS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
简单语法
SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:
1 某些起始标签不允许出现结束标签,例如HTML中标签。包含了结束标签就会出现错误。
2 某些起始标签可以选择性出现结束标签或者隐含了结束标签
3 某些起始标签要求必须出现结束标签,例如HTML中
4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is a sample string是正确的。
5 某些特性要求必须包含值,例如中的src特性。
6 某些特性不要求一定有值,例如中的nowrap特性。
7 定义特性的两边有没有加上双引号都是可以的,所以和都是允许的。
这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入我们的视野。
XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法:
1 任何的起始标签都必须有一个结束标签。
2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如。XML解析器会将其翻译成。
3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
4 所有的特性都必须有值。
5 所有的特性都必须在值的周围加上双引号。
这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML,
因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。
打开方法:用记事本,editplus等文本工具软件都可以打开,多用户保存配置文件或网页英语,手机阅读网站多是基于xml开发的,多用户网页制作相关的数据存储等
现在教你打开xml文件的方法和软件。
呵,其实最简单的就是用EXCEL表格打开了。。
也可以用Netscape 6来打开XML文档,并且也可以用右键选择“察看源文件”
当你用Netscape 6打开XML文档后,
浏览器将用带颜色的代码显示根元素和子元素。
如何在 Excel 中打开文件
在 Excel 中打开 XML 文件时,系统将提示您选择下列方法之一来导入 XML 数据:作为 XML 列表
作为只读工作簿
使用“XML 源”任务窗格
作为 XML 列表打开文件
当打开 XML 源时,Excel 会查找 XML 样式表 (XSL) 的标记。XSL 说明数据的显示方式。如果存在相应的标记,Excel 将会提示您选择是否应用样式表。如果选择应用 XSL,则 XSL 将指示数据的显示方式;在这种情况下,本文中这一部分的其余信息将不再适用。
如果没有 XSL 标记,您将收到以下消息:
指定的 XML 源没有引用架构。Excel 将基于 XML 源数据创建架构。
然后,Excel 将导入 XML 源中的数据。如果 XML 数据在一个元素内包含重复的字段,Excel 会将数据分布到多个行上。每一行都包含一个唯一的数据集。这可能会导致 XML 中的小数据集在 Excel 中显示为很多行。
作为只读工作簿打开文件
如果选择作为只读工作簿打开 XML 源文档,则元素的第一个标记将被用作标题并被放入单元格 A1 中。其余的标记依照字母顺序排序,并放入第二行。当作为只读工作簿打开上文中的天气报告示例时,其中的数据将被排列到下面的列标题列表中: /area/city
/area/country
/area/region
/area/state
/date
/measurements/h-index
/measurements/humidity
/measurements/skies
/measurements/temperature
/measurements/uv-index
/measurements isibility
/measurements/wind/direction
/measurements/wind/windspeed
/time
如果有一个数据集,则每列的数据都放在电子表格的第三行上。如果 XML 数据在一个元素内包含重复的字段,Excel 会将数据分布到多个行上。每一行都包含一个唯一的数据集。这可能会导致 XML 中的小数据集在 Excel 中显示为很多行。
使用“XML 源”任务窗格
XML 数据文件的架构显示在“XML 源”任务窗格中。然后,可以将架构元素拖到工作表中,以将这些元素映射到工作表。
基于XML 篇6
【关键词】XML技术;排课系统;应用开发
一、前言
可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的标记语言,具有自我描述、容易扩展、数据可验证等诸多优点, 非常适合于网络上多种数据源间进行数据的交换。XML目前已经成为全球的标准网络语言, 在数据发布、数据交换和整合、信息本地化处理等领域内得到了广泛深入的应用。本人在实际的基于Web的排课系统的研究和开发过程中, 大量地使用了XML技术来实现数据处理, 如数据的本地化处理、数据发布等。下面本文将结合XML 技术的特点,探讨XML技术在实际的排课系统中的应用, 并论述具体应用的实现方法。
二、XML的特点
(一)内容的描述和处理分开
XML文档的主要功能就是定义内容本身,它保持用户接口和结构化信息的独立。在XML中,标记只是用来描述数据本身, 如课程名、教师等。在XML中, 对数据的处理是通过样式( XSL 或 CSS) 实现的。将数据和对数据的处理隔离开来, 使得多方面来源的数据可以完全整合, 让所有数据在中间层次转换成 XML( 或者已经是XML格式) , 然后在线交换并对数据进行各种处理, 最后根据用户的需求和能力以特定格式将数据提交给用户。
(二)自我描述能力
在XML文档中, 标记本身就是对被标记信息最好的说明。加上通过XML文档可以获得的DTD和XML Schema中定义的各种约束, 在只有XML文档的情况下, 计算机也能理解文档中的数据。
(三)良好的开放性和可扩展性
在XML中, 可以定义无限量的标记。它提供了一个标记结构化信息的架构, 用户依据需求,可以随时定义新的标记, 大大拓展了可用标记的范围,也方便用户的使用和理解。
(四)XML文档具有可验证的特性
利用XML文档对应的模式(如XML Schema和DTD) , 可以验证XML文档中数据在结构上的正确性和标记使用的规范性。在制定模式时,XML文档的一切都已经定义好了, 这样, 我们在数据形成阶段就能对数据的有效性和正确性进行部分检验, 提高了数据的可靠性和可用性,而不用等到数据使用阶段。
三、XML在排课系统中的应用
在学分制教学模式下, 排课活动是一切教学活动安排的前提, 是实行学分制的最核心的内容。在基于浏览器/服务器结构的排课系统中, 利用XML技术, 可以均衡系统负载、提高系统性能和增强系统的可靠性。
(一)XML在排课冲突判断方面的应用
在排课过程中, 会经常出现课程冲突的问题, 因此, 排课过程中的冲突判断是排课系统要解决的重要问题。
如果在服务器端解决排课冲突, 必然会给系统造成极大的负担, 因为在排课时, 存在大量的并发操作, 服务器端的工作已经相当繁重, 因此将排课冲突的判断迁移到客户端是减轻服务器端负载的最好方法。在实际的排课系统的开发中, 本人利用XML技术, 成功地解决了上课时间冲突和教室冲突的判断问题, 而且冲突的判断准确, 效果明顯。下面部分简单代码为例, 说明XML在这方面的应用及实现方法。
(二)XML在数据加载和验证方面的应用
利用XML技术, 可以在客户端完成数据的整理工作, 然后成批加载到数据库中, 减少了网络来回的次数, 减轻了服务器端的压力, 而且利用 DOM技术和XML Schema 还可以在服务器端进行更为细致的验证, 保证数据的可靠性。在实际排课系统的开发中,本人就是利用XML技术实现了课程数据的批量添加和验证工作。
实现数据批量加载的思想就是: 在客户端利用XML, 向XML文档输入数据; 检查无误后使用 XMLHTTP 对象将准备好的数据包传送到服务器; 在服务器端利用XMLDOM技术对数据包进行剖析验证, 如验证无误, 则将提取节点数据, 将其添加到数据库中, 否则向客户端反馈错误信息。
(三)XML技术在数据发布中的应用
在每学期学生入学之前, 教学管理人员可以发布课程安排表等。这些发布的XML文件的名字与专业、年级等信息建立一个对应关系, 如课程安排表的名字由专业、年级、学制和学生类型组成, 这样的话, 无论是学生还是管理用户, 输入相关信息后, 系统就可以找到该文件显示给用户( 当然, 如果将XML文件名称可以存入数据库中, 在管理上将更方便) 。每隔一段日期, 管理人员可以进行必要的整理工作, 如学期结束之后, 删除更新(文件在删除之后, 教务处管理人员可以直接从数据库中提取数据实现查询的操作) 。下面以课程安排表的发布为例, 说明数据发布的应用方法。
数据发布的过程就是从数据库中提取数据转入相应XML文件的过程, 首先发布程序会遍历新年级的所有专业及相关学制和学生类型信息, 然后提取所有相关信息, 将获得的数据写入到XML文件中。因为XML文件本身是一个文本文件, 所以数据写入的方法与向文本文件中写入数据的方法相同。发布数据的查询比较简单, 对于教学管理用户, 根据用户输入的信息进行组合, 就可以形成对应的XML 文件的名称, 实现查询功能(如果不存在对应的文件时, 系统会直接从数据库中提取数据实现查询; 对于学生用户, 在学生登录时, 系统会提取学生的专业、学制和学生类型信息放入Session变量中,用户在查询的时候, 系统会自动组合文件名, 实现查询。
利用XML进行排课系统的数据发布, 可以使系统的数据发布更加简单, 随时可以进行更新, 系统设计者只需要设计好一些通用的、固定的样式文件, 就可以使发布的数据以丰富的网页形式显示给用户。
四、结论
传统的客户端/服务器结构的排课系统普遍存在着信息本地处理能力差、负载不均衡、数据验证烦琐和数据发布不灵活等缺点。通过利用XML技术,能够有效地解决这些问题, 较好地地弥补了不足。以上应用及其实现方法也同样适用于其他的WEB应用程序, 对于WEB 应用程序的开发都有一定的借鉴意义。
参考文献:
[1]孔令波,唐世渭,杨冬青,等.XML数据索引技术[J].软件学报,2005,16(12):2063-2079.
基于XML的数据安全交换 篇7
1 XML安全标准概述
为了保证XML信息的安全性,推动XML应用和安全服务的发展,国际标准化组织W3C和OASIS提出了一系列新的XML安全服务标准,来为以XML作为数据交换载体的应用提供安全性保障。这些标准包括:XML加密(XML Encryption)、XML数字签名(XML Signature)、XML密钥管理规范(XKMS)、XML访问控制标记语言(XACML)等。
1.1 XML加密
XML加密可以为任何类别的数据提供机密性服务。被加密的数据内容同样称为数据对象。数据对象的密码加密结果和加密信息以XML元素的形式存放在文档中,称为加密元素,如果对普通数据对象加密,加密元素为EncryptedData,如果对密钥加密,加密元素为EncryptedKey。为便于描述,本文给出XML加密语法的非正式表示(如图1所示),其中“?”表示出现0次或者1次;“+”表示一个或者多个;“*”代表0个或者更多。
元素EncryptedData标识了整个XML加密,其内容模型只允许有三个子元素:加密算法元素(EncryptionMethod)、密钥信息元素(Keylnfo)和密文数据元素(CipherData)。
加密后的数据有两种(封装或引用)方式存放在密文数据元素(CipherData)中,如果是封装方式,则密文数据直接包含在其CipherValue元素中;如果是引用方式,则CipherData的子元素CipherReference描述了密文数据的存放位置。
1.2 XML签名
XML数字签名可以为任何类别的数据提供数据完整性、消息确认和签字方确认服务。被签字的任意数字内容称为数据对象。数据对象的签字结果加上数字签名信息以XML元素的形式存放在文档中,称为签字元素。签字元素由XML元素Signature表示,为便于描述,本文给出XML数字签名语法的非正式表示(如图2所示),其中“?”表示出现0次或者1次;“十”表示一个或者多个;“*”代表0个或者更多。
图2中,元素Signature标识了整个XML数字签名,它包含了签字信息元素(Signedlnfo),签字值元素(SignatureValue)。密钥信息元素(Keylnfo)和客体元素(Object)四个关键子元素,其内容如下:
1)签字信息元素:它包含与签字相关的所有信息,如数据对象信息、数据对象处理方式以及签字算法等。
2)签字值元素:容纳Base64编码的鉴字值。
3)密钥信息元素:表示密钥信息,以使验证方得到验证密钥。
4)客体元素:可包含任何内容(如数据对象、时间戳等)。
在XML数字签名中,数据对象被摘要,摘要值(和其他信息一起)放在签字信息元素里,接着整个签字信息元素被签字。
1.3 XML密钥管理规范(XKMS)
XKMS定义了分发和注册XML签名规范所使用的公共密钥的方法。XKMS以已有的XML加密和XML数字签名为基础。其关键的思想是提供Web上的可信服务,这样XML应用可以不用太多关注PKI(Public Key Infrastructure,公钥基础设施)细节。XKMS包括了两部分:XML密钥注册服务规范(X-KRSS)和XML密钥信息服务规范(X-KISS)。
X-KISS用于向用户提供密钥和证书服务。分为两类,定位服务和确认服务,前者负责提供密钥和证书,后者负责密钥和证书的合法性检验。X-KRSS用于向密钥和证书的持有者提供密钥管理服务,提供了密钥(证书)注册、密钥(证书)注销、密钥恢复和密钥更新服务。
1.4 XML访问控制标记语言(XACML)
XACML是OASIS讨论制定的用于XML文档访问控制的一种策略描述语言,用来决定是否允许一个请求使用一项资源,比如它是否能使用整个文件,多个文件,还是某个文件的一部分。主要思想是围绕一个四元组
2 XML数据安全交换实例
对于来自外部的数据交换和访问请求,最重要的步骤是验证请求者的身份信息,确认“他”是谁,同时确定访问权限,防止非法访问。由于不同的企业、部门采取不同的访问控制技术、不同的技术实现平台,造成访问控制的安全边界通常局限在企业内部,而给跨边界的互操作带来很大的不便。
XML作为实现跨平台信息交换和提高异构系统之间的互操作性的最佳解决方案的提出,极大地促进了数据交换应用的发展。
下面以一个典型的例子来论述在运用XML进行数据交换的体系结构下如何确保数据的安全。
如图3所示,应用程序A要传送一个XML文档到应用B,分为两个部分完成:代理A传送到消息管理器,再由消息管理器传送到代理B。每个代理都有一对公钥和私钥,消息管理器也有一对公钥和私钥。(1)代理A先对要传送的XML文档数据部分用哈希方法做一个摘要追加在XML文档的后面,利用哈希函数的不可逆防止攻击者对报文修改。(2)用自己的私钥对摘要信息进行非对称加密,完成对这个文档的数字签名。(3)随机生成一个DES对称加密的密钥M对需要加密的数据部分加密。(4)对M用代理B的公钥进行非对称加密,把最后生成的文档传送到消息管理器。消息管理器根据消息头文件发送到目的地,并且告诉代理B这个文档的来源。(5)代理B用自己的私钥对M解密。(6)用解出来的M对加密数据部分解密。(7)得到完整的XML文档用同样的方法做摘要。(8)对附加在文档后面已经加密的摘要用代理A的公钥解密得到原来的代理A做的摘要。(9)比较两个摘要信息,如果一样,说明这个文档的确是代理A发送过来的,则完成了一次完整的数据传输,否则说明可能被篡改过了,要求重传。
数据加密是确保数据安全很重要的部分,对XML文档加密可以加密整个XML文档的数据部分,也可以加密一个XML元素,比如传送到膳食科的学生数据中passwd元素要加密,用对称密钥M加密后,XML文档部分如图4所示。
为了加密后的XML文档仍然能在这个体系上正确地传输,并且要满足安全性的要求,需要对XML消息头作一定的修改。每个消息都有可能包含一个安全性的要求,如果消息管理器能满足这个消息头的安全要求,则继续,否则表示不能满足安全要求的错误信息发送给这个消息的发送者。消息头的格式修改如图5所示。
图5中EncryptionLevel表示要求加密的程度,用数字表示,用对称加密的方法,可以规定如下:
1)O———不要求加密。
2)1———使用长40bit的对称密钥。
3)2———使用长56bit的对称密钥。
4)3———使用长80bit的对称密钥。
5)4———使用长128bit的对称密钥。
上面的安全头中要求的安全级别是4,要求可以满足128bit的加密密钥加密,这个消息送到消息管理器,消息管理器判断出这个消息是自己指定目的地址的,
这样,基于使用XML的安全服务标准,XML文件就能安全地从应用A传送到应用B,从而也就确保了数据交换的安全性。
3 结束语
本文提出了使用XML文件完成数据交换的优点,介绍了XML安全服务的标准。通过实例说明:使用XML对数据进行规范化定义,采用XML加密技术,能确保数据交换的安全性。XML为业务应用提供了统一、安全的数据交换平台,为业务应用多方数据交换提供了安全保障。
摘要:随着XML技术的发展与应用,XML文件成为了数据交换的标准,它为各个应用之间建立一个公共应用平台,解决了数据格式的相互转换问题。数据交换过程中,XML信息的安全性也是要考虑的一个重要因素。该文介绍了XML安全服务的标准,通过实例分析论证如何运用XML技术确保数据交换的安全性。
关键词:XML,数据交换,安全
参考文献
[1]邓芳.基于XML的数据交换及其存在问题[J].福建电脑,2008(4).
[2]徐晶,刘彦明.XML数据安全的研究[D].微机发展,2005.
[3]陈述.对XML数据安全加密技术的研究[D].大连海事大学,2006.
[4]车葵,牛晓太,邢书涛.XML加密方法的研究与实现[J].计算机工程与设计,2008(20).
[5]曹君,裴志杰,孙娜.XML安全技术应用与分析[J].计算机与数字工程,2009(3).
[6]傅海英,李晖,王育民.XML及相关研究进展[D].计算机应用研究,2004.
[7]耿建勇.XML安全技术的应用研究[D].中国科学院研究生院(计算技术研究所),2005.
[8]刘力军.基于XML数据交换的若干问题研究[D].中国优秀博硕士学位论文(硕士),2001(2).
[9]李寅,林宣雄.基于WEB的XML数据交换技术[J].计算机系统应用,2000(11).
基于XML链式结构的研究 篇8
在数据结构中,树型结构是一种非常重要的非线性结构,树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。这里可以充分利用其优点进行系统管理。
XML( Extensible Markup Language,可扩展的标记语言)。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。其起源于SGML( Standard Generalized Markup Language),是SGML的一个子集合,即SGML的一个简化版本,它非常适合于在Web上或其他多种数据源间进行数据的交换。XML非常适合表达树的层次逻辑,为此将XML与数据库技术结合起来,实现树的显示和维护。
2二叉链表的结构
在计算机中存储一棵树,不仅要存储树中每个结点的数值,而且还要存储结点与结点之间的关系。二叉树(Binary Tree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由1个根结点及2棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。
3树形结构的具体实现
3.1 二叉链表结构的设计
给出一个二叉树接点的Java接口,称之为BinNode。BinNode类中存储指向Object类的引用。创建二叉树时,可以根据需要而采用实际的数据类型。成员函数包括返回元素的值,返回左、XML右节点指针,设置元素的值,判断该结点是否为叶结点。
Interface BinNode{ //二叉树结点的抽象数据类型
//返回并设置元素值
public Object element();
public Object setElement(Object V);
//返回并设置左孩子
public Binnode left();
public Binnode setLeft(BinNode p);
//返回并设置右孩子
public Binnode right();
public Binnode setRight(BinNode p);
//判断是否为叶结点
public boolean isLeaf();
} //interface BinNode
3.2 将数据库中树的信息转化成XML
初始条件:树T存在,id是树中某个结点编号。操作目的:将以id为根结点的子树转化为XML格式。算法思想:根据当前根结点找出左孩子和右兄弟,添加当前结点信息到XML中,然后递归以左孩子为根结点的子树,最后在递归以右兄弟为根结点的子树。还要注意如果当前结点为该树的根结点,则不能递归以它的右兄弟为根结点的子树。
算法描述:
void genTreeViewXML( String rootNode,String currNode){
//根据当前结点currNode找出其左孩子llink
和右兄弟rlink以及name,
XML+="
if(llink==′0′){XML+=">"}
else( XML+=">"
genTreeViewXML( rootNode,llink);
XML+="" ;}
if(rlink!=′0′&& currNode!=rootNode){
//递归调用生成右兄弟的子树
genTreeViewXML(rootNode,rlink);
}}
3.3 解析XML显示树形结构
将数据库中以二叉链表结构存储的树的信息通过上述方法转化为所需的XML后,现在就可以通过操作XML文档对象模型将数据岛显示在浏览器端。
初始条件:XML形式的数据岛。操作目的:通过JavaScript解析XML并以HTML的形式在浏览器端显示树。算法思想:将数据岛加载到DOM对象后,向浏览器添加根结点的HTML代码,对DOM对象根结点的所有一级子结点,再递归调用显示其下一级子结点的HTML代码。
算法描述:
function getTreeHTML(rootNode){
//将结点rootNode的HTML信息以htm1形式添加到浏览器端
for(i=0;i< rootNodechidNodeslength;i++)
{
//递归调用生成其各子结点的HTML代码
getTreeHTML( rootNode childNodes [i] );
}}
3.4 基于树形结构的维护
从数据库中提取树的信息后,在浏览器端树上设置JavaScript事件,通过它们我们可以对该树进行维护,包括插入、删除、更新、移动等操作。维护的时候,JavaScript事件将用户对树的维护情况记录到XML对象中。
<插入目标结点编号=" ">
<插入项属性名="name"值=" "/>
<插入项属性名="id"值=" "/>
其他删除、更新、移动结点操作需要对XML增加的信息与此相似。用户维护结束,将该XML对象提交到服务器,后台负责根据设置的插入、删除等操作标志解析上述XML对象,就可以生成相应的插入、删除、更新的SQL语句,最后提交到数据库。另外需要注意的是,由于数据库中存储的二叉链表形式的各结点相互间有关联,所以对其进行插入、删除、移动操作时候还必须考虑因此操作而引起的相关结点的信息的更新,比如当删除一个结点时,除了需要删除该结点外,还可能要修改其父结点的左孩子指针的值,或者需要修改其上一个兄弟结点的右兄弟指针的值。
4结语
软件设计中数据结构的选择十分重要。对目前应用非常广泛的树形结构做了比较深入的研究,发现应用XML技术和二叉链表的存储结构相结合能够非常方便稳定地存储、显示、维护树,并且此种存储结构应用于支持递归SQL的Oracle数据库时更能体现其方便性,如获取该树的一个子树,以及取得某结点的父结点等都可以通过1条简洁的递归SQL语句实现,为该树的可扩展性和可通用性提供了必要的条件。
参考文献
[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2002.
[2]XML Encryption WG[EB/OL].http://www.w3.org/En-cryption/2001/(Accessed Nov.6,2004).
[3]XML Signature WG[EB/OL].http://www.w3.org/Signa-ture/(Accessed Nov.6,2004).
基于XML信息检索技术的研究 篇9
随着Internet技术的发展,网络逐渐融入人们的生活,成为日常工作和学习中不可或缺的一部分,Internet是一个巨大的、开放的数据平台,如何组织和消化如此大量的信息,一直是困扰着最终用户的难题。如何帮助用户准确提出信息需求,并快速获得“满意”的查询结果,从而提高检索的效率,一直是研究的热点。
自从万维网协会(W3C)推出XML以来,许多行业已经把XML作为基本的文档形式。XML以其所具有的自描述性、灵活的数据结构以及丰富的数据表示能力等特点,现在己经被广泛应用到Internet智能信息检索。
基于XML信息检索技术首先要解决的是建立一个比较高效的索引机制,索引是实现快速查询的重要保证,它可以快速定位查询信息,达到高查询效率的目的。
1 面向XML文档信息检索系统的索引研究
因为XML文档检索系统中的索引是有结构的数据,所以存储在关系数据库中是比较好的选择。Zhang等和Florescu等提出了在关系数据库中实现关键字检索的两种倒排索引[3,4]。下面在介绍上述两种倒排索引的基础上,提出一种新的在关系数据库中实现的倒排索引技术,并从存储空间开销和查询效率两方面,对三种索引进行性能比较,通过实验数据凸现新索引技术的优越性。
(1)基于位置关系的倒排索引
Zhang等扩展了倒排索引表,提出了基于位置关系的倒排索引技术(简称为PosIdx)。Zhang等根据关键字的分类,在关系数据库中建立两个索引表T-index和E-index,T-index用于存储元素内容(文本信息)的倒排文档,和传统的信息检索技术中的倒排文档类似;E-index用于存储元素的倒排文档,是支持结构查询的重点。和传统信息检索不同,对具有结构特性的XML文档查询时,不仅要对文本关键字进行查询,还要对元素关键字进行查询,将两者结合在一起,最终返回一个让用户满意的结果集。
因此,Zhang等提出的两个倒排索引分别记录了文本信息和元素的具体位置信息。文本关键字和元素关键字的具体位置记录了它们所属的文档、它们在文档中出现的位置以及它们在XML文档中的层次。这些信息是通过如下的方法获得的:对XML文档进行标引,得到任意文本关键字所在的XML文档号以及在XML文档中的一个序号,而任意元素关键字除了记录所在的XML文档号,还有两个序号(因为XML文档的元素标识是成对出现的,从而可以注明元素信息的开始和结束),一个是元素标识的开始位置,一个是元素标识的结束位置。因此,可以构建基于位置关系的倒排索引,元素关键字表E-index
(2)基于包含关系的倒排索引
在XML文档中,考虑到任意关键字必定被它的父元素或祖先元素所包含,而且这种包含关系相对固定。因此,法国INRIA研究所的Florescu等提出通过记录这种包含关系的倒排索引结构,称为基于包含关系的倒排索引(简称为ContainIdx) 。Florescu等把传统的倒排文件扩展为(eIID, word, docno, depth, location>, eIID表示元素的标识,word表示关键字,docno 表示文档号,depth表示关键字相对于eIID所标识元素的深度,location标识关键字的具体位置。ContainIdx的特点是用多条记录分别记录与任意关键字不同祖先元素之间的包含关系。为了提高查询效率,Florescu等还将关系表
(3)一种新的倒排索引——基于树的优化倒排索引
这种倒排索引仍然考虑到元素与元素(元素与关键字)的相对位置固定性,但它和ContainIdx不一样,并不记录它们所有包含关系的相对位置信息,而只是记录相邻的元素与元素(关键字)的相对位置信息,从而可以大大减小倒排索引的存储开销,优化了ContainIdx倒排索引技术。在这里,称这种新的倒排索引为基于树的优化倒排索引(简称TreeExContainIdx)。
经过XML文档解析技术将XML文档解析成一棵树,为每个节点分配一个唯一标识号,这个标识号通过先序遍历XML文档树得到,我们都知道在XML文档中任一元素都有一个开始标签和一个结束标签,分别标识元素内容的开始和结束。经过解析后的XML文档树中的每个节点都有唯一的eIID,元素的eIID可以标识元素内容的开始,元素内容的结束用boundID标识,boundID表示在树中以该元素节点为根的子树的最右孩子节点的elID。把ContainIdx倒排索引的元素表Element
2 实验结果及其分析
为了检验提出的倒排索引是否有效,进行了一系列实验验证。下面主要从存储空间开销和查询效率两方面,对文中的三种索引进行性能比较。
实验运行在WINDOWS XP环境下,硬件配置为3.20GHzPIV处理器,512MB内存,后台数据库选用关系数据库MySQL Server 5.0。实验数据集选用标准测试集莎士比亚戏剧,由37个XML文档构成,大小为7.6M。下面给出具体实验结果数据的详细分析。
(1) 存储空间开销比较
这个实验测试了三种倒排索引的存储空间开销,表1给出了它们存储空间开销的实验数据结果。PosIdx只用2个关系表来记录元素关键字和文本关键字的信息,而ContainIdx和TreeExContainIdx根据关键字的数目来记录它们的信息,并且以它们作为关系表的名称。
从存储空间开销方面比较,PosIdx的存储空间最小,TreeExContainIdxd的存储空间比PosIdx稍大些,ContainIdx和其它两种倒排索引相比,所占的存储空间最大,甚至过于庞大,大大浪费了存储空间。这是因为,PosIdx只保存了元素关键字信息和文本关键字信息两张数据表;TreeExContainIdx根据关键字分类保存了元素关键字和文本关键字的信息,并为了提高检索效率在其中添加了和它们直接相邻元素的信息,存储空间自然比PosIdx要稍大些;而ContainIdx不但保存了元素关键字和文本关键字的信息,而且保存了所有具有包含关系的元素关键字与元素关键字(文本关键字)之间的相对位置信息,这些位置信息占用了非常庞大的存储空间,以至于我们看到的实验数据远远大于前两种索引的存储空间开销。
(2)查询效率比较
查询效率比较如表2所示。
这个实验测试了三种倒排索引进行查询时的效率。为了方便,这里只考虑给定元素(eTerm)包含特定的关键字(Term)的查询。为了提高检索结果的有效性,本节所选的四条查询语句最大程度地覆盖了整个测试集,并具有一定的代表性。表2列出了四个查询的元素和关键字,它们在文档中出现的次数,以及符合查询条件的结果数目。
3 结束语
基于XML的数据交换技术研究 篇10
目前人们使用的数据交换技术有很多种,XML就是其中最常见的一种。XML有着严格的语法规范,因此使用XML保存的数据格式都是一致的,从而能够很好地解决“信息孤岛”和信息异构问题。同时,在存入数据的时候,还能够依据XML的规范对数据进行判断,从而有效地避免数据的重复录入和数据不一致性问题。XML以其严格的标准和强大的功能赢得了众多开发人员的青睐,并成为数据交换领域的重要标准。
1常用数据交换技术比较
数据在不同的信息实体之间交互的过程称为数据交换[1]。 目前,常用的数据交换技术主要有以下四种:
1)电子数据交换(EDI)方式[2]:EDI通过统一的格式来交换企业信息,企业之间通过专用的数据网络来交换数据。EDI也带来了许多问题,如格式不灵活、成本高、安全控制困难、连接可靠性不高等。
2)中介层方式:提供一个应用程序负责专用的数据转换, 这个程序是特定的、专用的、复杂的。在这种方式下,参与数据交换的各方必须严格遵循相同的规则,才能准确地对数据进行封装和解析,缺乏良好的复用性和扩展性。
3)中间数据库方式:在不同环境下使用如Access等较小的数据库系统来实现不同数据源间的数据减缓。先对要转出的数据库生成脚本,得到该数据库的表结构,然后按照不同数据库系统间的区别对脚本进行修改,生成符合规范的SQL语句, 最后再在新环境的数据库系统中执行脚本[3]。这种利用中间数据库的方式需要将信息从其他地方转存到中间数据库中,这一过程需要按照一定的格式对数据进行转换,因此操作上比较繁琐、效率低下。
4)中间件方式:各个数据源将自己的数据按照一定的通用格式提供出来,实现透明的数据交互。与中间数据库方式相比,使用中间件较好地保留了各个分布场地的自治权,同时保证了一定的实时性。
2基于XML的数据交换技术
2.1XML介绍
XML[4]是extensible Markup Language(可扩展的标记语言)的缩写,是W3C组织于1998年2月发布的标准。W3C组织制定XML标准是为了定义一种能够在互联网上进行数据交换的标准。W3C采取了简化SMGL的策略,在SMGL基础上,去掉语法定义部分,适当简化DTD部分,并增加了部分互联网的特殊部分。因为XML是一种树状结构,可以把形式与内容彻底分离, 正是基于这个原因,可以使用XML将不同数据格式的数据进行转换,从而达到数据交换的目的。此外,XML允许用户按照W3C组织的规定去定义无数个自定义标签,标签形式多种多样。XML可以用来描述关系结构的数据,还可以用作配置文件,当作一个小型的数据库或数据载体来使用。
2.2基于XML的数据交换模型
基于XML的数据交换模型采用了上述的中间件模式来实现数据源的交换,作为沟通数据源和应用/逻辑层的一个纽带。XML在进行数据交换的过程中,一方面,针对所有数据源数据模式进行抽取,将各数据库中的不同数据表示形式统一成一致的数据视图XML文件。另一方面,要将XML的数据转换为RDBMS系统下的数据组织形式,以关系数据库系统来存储数据[5]。基于XML的数据交换模型分为三层结构,如图1所示:
2.3几种常见的XML解析器
2.3.1 DOM
DOM(Document Object Model),称为文档对象模型,是以层次结构组织的节点或信息的集合,是W3C组织推荐的一种处理XML的标准编程接口,与平台和语言无关。DOM在解析XML文件的过程中,会一次性将所有内容加载到内存中,形成一个树形结构,因此DOM又被认为是基于树或基于对象的模型。在使用DOM过程中会使用Document对象来代表XML在内存中的映像,即代表一个XML文档的模型树,所有的节点都包含在该Document对象中。之后,开发人员即可使用该对象对XML文档进行相应的编辑与操作。DOM虽然使用起来较为简单,但是在处理大文件时就显得力不从心了。因为DOM每次都会将XML文件全部加载到内存中,因此对于大文件内存的占用就很高。另外,DOM解析速度较慢,效率不高,因此只适用解析小的配置文件等。
2.3.2 SAX
SAX(Simple API for XML),是sun公司提供的一个基于事件的xml解析器,既是一个接口,又是一个软件包。SAX解析XML文档不同于DOM,它是多次将XML文档加载到内存中,因此它可以一边扫描以便解析。正是基于这一特点,对于大文件,SAX的解析速度比DOM要快得多,并且占用的内存少。 SAX采用基于事件的模型,在解析XML文档的时候,会根据XML此时的状态,即开始标签、结束标签,调用SAX处理器相应的方法。正如我们常说的,任何事物都具有两面性,SAX也不例外。SAX没有像DOM那样的父/子支持,因此不能交流元信息,从而导致了越是复杂的文档,其应用逻辑就越复杂,编码的难度就越大。
2.3.3 DOM4J
DOM4J是一个非常优秀的JAVA XML API,是由dom4j.org出品的一个XML解析包。DOM4J采用了java集合框架,能够完全支持DOM和SAX。因为它内部包含了多个接口,因此在使用上非常灵活,从而形成了它性能优异、功能强大和极易使用的特点。DOM4J还有一个特点,它是完全开源的,现在越来越多的java软件都是用它来进行XML解析。DOM4J主要接口图如图2所示:
图中各接口的功能分别为:Node为dom4j中XML的节点定义了多态行为;Branch为能够包含子节点的节点定义了一个公共的行为;Element定义XML元素;Document定义了XML文档;Document Type定义了XML DOCTYPE声明;Entity定义了XML entity;Attribute定义了XML的属性;Processing Instruction定义了XML处理指令;Character Data是一个标识接口,标识基于字符的节点,如CDATA;CDATA定义了XML CDATA区域; Text定义XML的文本节点;Comment定义了XML注释的行为。
3XML数据交换的实现过程
使用中间件XML来实现数据的交换,将XML文档作为一个桥梁实现各平台之间的互连,从而实现数据的整合及共享。 对于现有的各种资源,其中绝大部分都是结构化的数据,可以存储在关系数据库中,因此,XML与这些数据的交换实质上就是与关系数据库中数据的交换。
当前XML与关系数据库之间的相互换转换的方法有很多,例如基于模型驱动的XML与数据库双向映射技术,将XML中的数据同数据库对应的表进行映射匹配,使得XML文件中保存的数据和数据间的关系通过这种映射关系保存到数据库中[6],该方法的核心是在数据库模式(包括关系型和面向对象型)和XML Schema或DTD之间建立双向映射。另一种方法是在XML和数据库之间添加一个数据转换程序组件,将数据从XML文件中解析出来存入数据库,或从数据库中读取数据并添加到XML档中[7]。
3.1关系数据库向XML转换
关系数据库向XML转换需要经过三个主要步骤:提取、转换和存储。首先,从数据库中提取要保存在XML文档中的数据,数据的提取可以通过JDBC或者ODBC接口访问技术实现, 该数据包括两部分:数据库中关系模式和表中的字段值。其次,将提取出来的数据与XML约束(DTD或XML Schema)相结合即可生成XML文档。这个过程涉及到的操作有两个:将数据库中的关系模式转换为XML约束、将数据库表中的值与XML约束结合生成XML文档。整个转换过程如图3所示。
3.2XML向关系数据库转换
XML向关系数据库转换实际上就是关系数据库向XML转换的逆过程,也分为三个主要阶段:提取、转换和存储。首先, 使用DOM或SAX等解析方法对XML进行解析,这一过程也涉及两个操作:提取XML文档中的约束(XML Schema)并将其转换为相应的关系模式、解析XML文档中的数据。其次,根据上一步得到的关系模式建表,并将解析出来的数据添加到相应的表中。这一过程可以使用JDBC或ODBC接口访问技术实现与数据库的连接。转换过程如图44所示:
4结束语
XML技术有着严格的标准和强大的功能,并且提供了统一的方法来描述和交换独立于应用程序或供应商的结构化数据。因此使用XML作为中间件就可以方便的实现各数据源间数据的交换,将各数据源中的数据统一成一致的格式进行集中处理,进而消除“信息孤岛”,实现数据共享。
摘要:目前,可供选择的数据交换技术有很多,例如XML、Json等。文章以XML作为数据交换的标准进行研究,首先对XML进行了必要的介绍,在此基础上对常用的XML解析器和XML与关系数据库进行交互的过程进行了详细分析。
基于XML 篇11
关键词:果园;环境数据;数据表示;XML
中图分类号:TP274+2 文献标识码:A DOI 编码:10.3969/j.issn.1006-6500.2015.12.018
Data Acquisition and Data Format of Orchard Environment based on XML
ZHOU Guo-min,FAN Jing-chao,WU Ding-feng,XIA Xue,QIU Yun
(Agricultural Information Institute, Chinese Academy of Agricultural Sciences, Beijing 100081, China)
Abstract:According to the lack of exchanging and sharing data format in the orchard environment,based on analyzing the characteristics of the orchard environment data, an orchard environment data format which was expressed by Schema XML was presented by method of variable data acquisition indicator. It consisted of 43 elements. The root element was <OrchardEnvironmentData>, and consisted of 7 elements: <Version>, <BeginDate>, <EndDate>, <Orchard>, <FruitVariety>, <RecordingDefinition>, <RecordSet>. Its feasibility was verified by the actual application of data representation which acquired by the Orchard Data Acquisition System, and by the data share application in Internet.
key words:orchard;environment data;data format;XML
突破传统果业的限制,发展现代果业是我国水果产业发展的必然趋势。现代果业的重要特征是果园生产和管理的数字化、信息化、机械化,数字果园的概念也应运而生[1]。果园环境涉及的数字化对象包括空气温湿度、光照强度、光有效辐射、紫外线强度、降雨量、风速、风向、露点、土壤水分含量、土壤温度、土壤NPK含量、土壤微量元素含量、土壤重金属含量等。近年来,果园环境数据采集系统的研制与应用已得到重视,相关研究也比较多。在围绕某一个指标进行数据采集和监测的研究方面,Changying Li[2]报道了一种气体传感器阵列监测蓝莓果实病害的方法,樊志平等[3]设计实现了柑橘园土壤墒情远程监控系统,李光林等[4]研制了一种基于太阳能的柑桔园自动灌溉与土壤含水率监测系统, 张会霞等[5]利用“3S”技术设计实现了一种柑橘园GPS数据采集系统。在对整个果园环境多个指标进行数据采集和综合管理的研究方面,叶娜等[6]报道了一种苹果园环境监控系统的研究与设计,王新忠等[7]研究了基于无线传感的丘陵葡萄园环境监测系统,杨爱洁等[8]提出了一种基于无线传感器网络的果园数字信息采集与管理系统,王文山等[9]采用物联网技术设计了一种果园环境信息监测系统。另外,还有一些学者的研究则侧重在果园环境数据采集所涉及的信息通讯技术,如Raul Morais等[10]报道了用于葡萄精准管理的多点环境数据采集装置,岳学军等[11]采用GPRS和ZigBee技术实现了果园环境监测系统,潘鹤立等[12]采用ZigBee和3G/4G技术研究分布式果园远程环境监控系统的设计,徐兴等[13]报道了山地橘园无线环境监测系统优化设计方法及如何提高监测的有效性。综上,这些研究工作基本上都是在利用多种信息技术来实现果园环境数据的获取和监测,不同的是使用的监测指标和监测手段有所差异,但他们都对所获取的数据多采用私有的数据格式进行存贮和管理,对如何把所监测的数据与其他信息系统进行交换和共享则几乎没有涉及。
近年来如何从技术角度来消除“信息孤岛”,解决信息系统之间的数据交换问题受到很多研究者的关注,常志国等[14]提出了一种交通信息基础数据元XML Schema表示模型来解决交通信息系统之间的数据交换和共享,潘峰等[15]构建了国家卫生数据字典XML Schem来实现卫生数据的交换与共享,农业领域也有学者开展数据交换和共享方面的研究,如戴建国等[16]针对国营农场管理报道了基于 REST 架构和XML的农情数据共享技术研究,陈宏等[17]提出了蔬菜种植元数据模型信息描述方法。但针对果园环境数据表示以及数据共享技术方面的研究几乎没有涉及。
本研究在分析果园环境数据内涵的基础上,研究基于XML技术的果园环境采集数据表示技术,重点解决果园环境采集数据的表示格式,为不同系统之间果园环境采集数据的交换和共享应用提供支撑。
1 材料和方法
1.1 果园环境数据分析
果园环境是果园中果树群体以外的空间,以及直接或间接影响该果树群体生存与活动的外部条件的总和。果园环境包括非生物因素和生物因素两方面,非生物因素是指温度、光、水分、空气、土壤、地形、污染等环境因素;生物因素是指果树以外的动物、植物、微生物等环境因素。果园环境采集数据就是利用技术手段获取的各种环境因子的状态数据或者特征数据,从数据形态上来看,有数值、字符、图像、视频、声音、矢量等。
果园气候环境因子方面,大气、温度、光照、水分等气候因子与果树生产有密切的关系,目前利用物联网技术可直接采集的数据包括空气温湿度、光照强度、光有效辐射、紫外线强度、降雨量、风速、风向、露点等。
果园土壤环境因子方面,利用物联网技术或者实验室检测手段可以采集的数据有土壤含水率、土壤pH值、土壤有机质含量、土壤电导率、土壤温湿度、土壤重金属含量、地下水位、土壤盐分等。其中,土壤有机质含量是评价果园土壤肥力的重要指标,也是影响果树生长的重要因素。土壤水分是果树吸收水分的主要来源,土壤湿度过低时,果树吸水困难,甚至凋萎,但如果土壤湿度过高,又会发生渍害,土壤水分含量影响着果树的产量和品质。土壤中重金属含量影响着果品安全,也越来越受到人们的关注。
果园地形环境因子方面,一般利用遥感技术和GIS技术获取和管理果园的地形起伏、海拔、山脉、坡度、坡向、高度等地貌特征数据。
果园生物环境因子方面,果园病虫害和杂草方面的数据更受关注。近来利用现代信息技术手段自动测报果园病虫害数据得到研究和应用部门重视。伍梅霞等[18]报道了自动虫情测报灯在果园有害生物测报上的初步应用情况。邢东兴等[19]利用光谱数据定量化测评红蜘蛛虫害对红富士苹果树的危害程度。
1.2 果园环境采集数据表示格式设计方法
果园环境采集数据不但为果园生产管理系统提供支撑,同时也是果品质量追溯、果品电子商务等果园经营管理系统的数据源之一,果园环境采集数据需要在不同管理系统之间实现自动交换和共享。现有的果园数据采集与管理系统一般采用私有的数据格式进行数据存贮和管理,因此需要设计一个果园环境采集数据表示格式,基于这样的标准格式,才能在不同系统之间实现数据的自动交换和共享。
XML(Extensible markup language)是国际互联网联盟(W3C)开发的用于网络环境下进行数据交换和管理的技术[20],它以一种开放的、自我描述的方式定义数据结构,通过Schema使XML文档结构化,并能创建不依赖于平台、语言或者格式的共享数据。近年来,农业领域一些学者也开始采用XML技术来研究农业数据元数据标准以及数据表示。日本学者吉田智一[21]提出了农业生产工程管理中的数据表示格式FIX-pms,欧洲学者Martini[22]提出了用于农业信息交换的agriXchange格式规范,Kunisch M[22-23]提出了针对农场的信息表示格式规范agroXML。本研究也采用XML技术来描述果园环境采集数据。
果园环境因子众多,不同果园因管理目的不同,所选择的采集指标也不同,不同采集指标的采样频率也不尽相同。为了提高果园环境采集数据表示格式的通用性,本研究采用可变采集指标项的数据表示方法。该方法把果园环境采集数据文件分为两个部分。第一部分用来定义所选择的采集指标项情况,包括指标名称、数据单位、数据采集点的GPS坐标、数据采用方法说明。第二部分用来顺序存放所采集的数据,每条数据中采集指标项的次序与第一部分定义的数据采集指标项相对应。
2 结果与分析
2.1 果园环境采集数据格式的Schema
果园环境采集数据采用XML文件来存贮,按照可变采集指标项的数据表示方法,其XML文件的语法规则采用Schema文件来定义。在Schema文件中,按照基本数据类型、基础子元素类型、子元素类型、根等4个层次,一共定义了43个元素。Schema文件中各元素之间逻辑关系如图1所示。
从图1可以看出,果园环境采集数据表示格式的根元素是<OrchardEnvironmentData>,它由<Version>、<BeginDate>、<EndDate>、<Orchard>、<FruitVariety>、<RecordingDefinition>、 <RecordSet>这7个元素组成。版本元素<Version>描述了果园环境数据表示格式所采用的XML Schemas版本号。时间元素< BeginDate > EndDate >描述果园环境数据采集的开始时间和结束时间。<Orchard>元素描述果园名称和果园ID号, < FruitVariety>元素描述水果品种名称、学名和ID号。通过这两个元素的ID号可以把果园的环境数据与其他生产经营管理数据进行关联。<RecordingDefinition>元素描述数据存贮的结构,是对具体数据记录存放形式的解释,由若干个数字型、矢量型、图像型、视频数据型、声音型、备注型的数据采集指标项的结构定义组成,支持可变指标项的定义,可根据实际情况来决定数据采集指标项的数量。<RecordSet>元素是实际采集数据的记录实体,由顺序存放的<Record>元素组成,<Record>元素中的数据项和<RecordingDefinition>元素中定义的数据采集指标项是一一对应的,并通过数据采集指标项中的<index>元素值来关联。
2.2 果园环境采集数据表示格式实例
以位于陕西洛川某果园的数据采集系统为例,其数据采集点现场以及采集数据的快照如图2。各种传感器采集的果园环境数据由专门系统来进行管理,并存贮在SQL Server数据库中。
根据Schema文件中所规定的语法形式,就可以把SQL Server数据库中存贮的果园环境数据表示成XML格式的数据。图3是所形成的果园采集环境数据XML文件的片段。如图3所示,在<RecordingDefinition>元素部分,定义了所采集的指标项分别是大气温度、大气湿度、降雨量、监测点1的土壤温湿度和监测点2的土壤温湿度以及光合辐射,这些数据都是DataItem型,如果涉及到监测点的GPS坐标,则在<Coord>元素中定义。在< RecordSet >元素部分,则通过<Record>元素来顺序存放所采集的数据。
2.3 果园环境采集数据表示格式的应用
对于现有的果园数据采集与管理系统来说,利用本文所述的果园环境数据表示格式,不需要改变其数据存贮形式和相应的管理程序,只需在此基础上,通过一个数据转换程序,把果园的环境数据转换成符合果园环境数据表示格式的XML文件,然后通过webservices技术实现一个数据共享接口,需要使用这个果园的环境数据时,只需要调用这个数据共享接口,就能获得相关的数据。其应用方案的逻辑结构如图4,其特点在于不改造原有的果园数据采集系统,仅需通过新增加一个数据共享接口就能实现果园环境数据的共享应用。
果园环境数据共享服务包括3个接口。GetDataStruct接口返回数据结构定义信息,实际上就是<RecordingDefinition>元素中的内容。GetDataBeginEndDate接口返回已有数据的起始和结束日期,以图2所示的实例为例,其返回开始日期是2015-01-01T08:00:00,结束日期是2015-01-01T15:00:00。GetData接口返回指定起止日期的果园环境数据,实际输出形如图3的XML文件。
3 结 论
本研究设计了一种果园环境采集数据表示格式,并通过对某果园数据采集系统所采集数据的实际表示,以及在Internet环境中的共享应用,来验证果园环境采集数据表示格式的设计。结果表明,该格式的设计是可行的,并且具有潜在的良好性能:(1)数据格式简明易用;(2)系统集成简单,用户可以很方便地建立起一个网络化的果园环境数据集成共享系统;(3)透明,用户关心的事情少,并不需要知道原有果园数据采集系统的实现细节,只需要了解能提供的服务。
参考文献:
[1] 周国民.数字果园研究现状与应用前景展望[J].农业展望,2015,11(5):61-63.
[2] LI C Y, GERARD W K, JI P S, et al. Gas sensor array for blueberry fruit disease detection and classification[J]. Postharvest Biology and Technology,2010, 55:144-149.
[3] 樊志平,洪添胜,刘志壮,等. 柑橘园土壤墒情远程监控系统设计与实现[J].农业工程学报,2010,26(8):205-210.
[4] 李光林,李晓东,曾庆欣. 基于太阳能的柑桔园自动灌溉与土壤含水率监测系统研制[J].农业工程学报,2012,28(12):146-152.
[5] 张会霞,陈宇晖,望勇. “数字果园”GPS 数据采集系统的设计与实现[J].广东农业科学,2014,41(5):227-231.
[6] 叶娜,钱稷,刘俊峰,等. 苹果园环境监控系统的研究与设计[J].农机化研究,2010,32(10):55-58.
[7] 王新忠,顾开新,陆海燕. 基于无线传感的丘陵葡萄园环境监测系统研究[J].农机化研究,2011,33(11):191-194.
[8] 杨爱洁,沈焱鑫,金丹娜,等. 基于无线传感器网络的果园数字信息采集与管理系统[J].农业工程,2011,1(1):37-41.
[9] 王文山,柳平增,臧官胜,等. 基于物联网的果园环境信息监测系统的设计[J].山东农业大学学报(自然科学版),2012,43(2):239-243.
[10] RAUL M, MIGUEL A, FERNANDES S G, et al. A ZigBee multi-powered wireless acquisition device for remote sensing applications in precision viticulture[J].Computers and Electronics in Agriculture, 2008, 62: 94-106.
[11] 岳学军,王叶夫,刘永鑫,等. 基于GPRS与ZigBee的果园环境监测系统[J].华南农业大学学报,2014,(4):109-113.
[12] 潘鹤立,景林,钟凤林,等. 基于ZigBee和3G/4G技术的分布式果园远程环境监控系统的设计[J].福建农林大学学报(自然科学版),2014,43(6):661-667.
[13] 徐兴,洪添胜,岳学军,等. 山地橘园无线环境监测系统优化设计及提高监测有效性[J].农业工程学报,2013,29(11):147-153.
[14] 常志国,张绍阳,曹金山,等. 交通信息基础数据元XML Schema表示模型[J].现代电子技术,2012,35(18):29-32.
[15]潘峰,刘丹红,杨鹏,等. 国家卫生数据字典XML Schem的构建[J].第四军医大学学报,2009,30(10):869-872.
[16] 戴建国,王克如,李少昆,等.基于 REST 架构和XML 的农情数据共享研究[J].中国农业科学, 2012, 45(20):4156-4165.
[17] 陈宏,赵健,池美香,等. 蔬菜种植元数据模型信息描述研究[J].安徽农业科学,2012,40(3):1288 -1290,1475.
[18] 伍梅霞,李立国,杨小平,等. 自动虫情测报灯在果园有害生物测报上的应用初报[J].山西果树,2012(2):8-9.
[19] 邢东兴,常庆瑞. 基于光谱反射率的果树病虫害级别定量化测评[J]. 西北农林科技大学学报(自然科学版), 2009, 37(11):143-148.
[20] W3C.Extensible Markup Language(XML) 1.0[EB/OL].[2015-03-18]. http://www.w3.org/TR/1998/REC-XML-19980210.
[21] 吉田智一,木浦卓治,南石晃明. 農業生産工程管理データ表現形式FIX-pms の開発[J].農業情報研究, 2013,22 (2):103-116.
[22] MARTINI D, MIETZSCH M. The agriXchange platform as a means for coordination and support on data exchange in agriculture [C]// Proc of the Joint Congress of EFITA 2011 and WCCA 2011,Prague, Czech Republic. Berlin:Springer, 2011:393-399.
基于XML的数据交换模型之研究 篇12
1 相关技术介绍
1.1 XML技术
XML语言(Extensible Markup Language)是1982年2月由W3C组织制定的一种通用语言规范,它没有复杂的语法和数据定义。X M L具有易扩展、结构性强、语义性强、纯文本、易于处理、与平台无关等特点。XML的自描述性使其非常适用于不同应用间的数据交换。XML作为数据传输的中介格式,为异构数据源提供了一层理想的缓冲,从而使异构数据源之间保持透明。XML作为独立于平台和设备的结构化数据表达方式,可以有效地实现异构数据源的集成。
1.2 异构数据交换
数据交换是实现数据共享的一种技术,因此通过数据交换,实现各系统间的数据共享、互联互通、业务协同是解决目前“信息孤岛”现象的关键途径。
目前常见的异构数据交换技术可分为电子数据交换方式、中介层方式、数据仓库方式、中间数据方式,但都还存在不足[2]。基于X M L的数据交换技术具有良好的通用性,扩展性,可移植性和自治性,同时满足一定的实时性要求,从而它弥补了以上数据交换方法的缺点,提高了数据交换系统的兼容性和扩展性,在一定程度上提高了数据交换系统的开发效率。
2 系统设计
2.1 系统结构设计
数据交换平台主要由数据提取、数据读/写、数据分析、数据转换几部分构成。
2.2 数据提取部分
在进行数据交换时数据提取部分根据用户的指令将需要进行交换的数据从数据库中提取出来。数据提取的数据源主要有:(1)文本文件:主要指部门自定义的特定格式的文件;(2)数据库:主要指专业用于存储数据的各种关系数据库系统;(3)X M L文档,它是一种简单、灵活的文档,可对结构化数据提供透明的组织及交换的方法[3]。
2.3 数据读/写部分
数据读/写部分负责对数据源的读写操作,具体包括从源数据中读取要进行交换的数据及把转换后的数据写入目标数据。数据读/写部分根据不同的数据采用不同的读写方式:(1)对文本文件,通过字符输入/输出流依次读/写文本中的字符来实现;(2)对数据库,利用数据库连接驱动(如J D B C)来实现;(3)对X M L数据文件,通过调用X M L解析器的读/写接口加载整个XML文件来实现。
2.4 数据分析部分
数据分析部分负责解决数据映射的问题,并构建出异构数据之间进行数据转换的映射文件。此处主要针对异构关系数据库之间的数据交换进行研究,为了在数据库与X M L文档之间传递数据,必须在X M L文档结构和数据库结构之间建立映射关系。在设计时应考虑:(1)数据类型:为了匹配关系型数据库严格的数据类型,本系统采用X M L Schema数据类型。(2)主键/外键:在进行基于XML的双向数据转换时,要将源表中的主键/外键信息保留下来。(3)空数据:当将XML文档与异构数据库进行双向转换时,要注意那些可为空的列。(4)数据结构:在进行基于XML的双向数据转换时,要保留源数据的结构,可将XML文档设计成两部分,一部分存放结构信息;另一部分存放数据信息。结合以上要求,定义异构数据库双向数据交换的中间数据模型如下:
2.5 数据转换部分
在数据分析的基础上,数据转换部分负责源数据和目的数据之间的转换操作,其中包括源数据到中间数据的转换及中间数据到目标数据的转换。异构数据之间的转换方法有两种:基于模板的转换方法和基于模型的转换方法[4]。鉴于本系统要实现XML文档与其他格式数据的双向转换,采用基于模型的转换方法。
基于模型的数据转换方法用事先定义好的数据模型来映射XML文档结构与其他格式数据的结果之间的关系(如图2)。
3 系统实施
该系统在Windows Server 2003平台上开发,使用Oracle9i数据库、S Q L Server 2000数据库。系统采用Java技术实现,XML是独立于平台的标记语言,而Java是与平台无关的计算机语言,XML与Java的结合能够最大限度地体现系统平台的无关、应用无关性[5]。该系统具有如下特点:(1)基于开放的标准技术,具有良好的可扩展性;(2)类模块架构设计,效率高;(3)Java和XML结合,可以跨越多种平台。
4 结语
数据交换是X M L的重要应用之一,XML使得不同应用系统间能够方便地交换数据,实现异构系统的集成。本文的创新在于构建了一个新的基于X M L的数据交换模型,该模型能有效地解决企业各部门之间资源共享问题。
参考文献
[1]徐俊杰.基于XML的数据交换模型研究[D].哈尔滨:哈尔滨工程大学,2007.
[2]李雯,谢辅雯,邹道.XML数据交换技术的应用与研究[J].计算机与现代化,2008(1):91~93.
[3]刘敏.基于XML和JMS的数据交换模型的设计及应用[D].沈阳:东北大学,2005.
[4]刘立华.基于XML的异构数据库之间的数据交换[D].武汉:华中科技大学,2005.
[5]陈兵,万晖.基于XML的Web数据交换[J].计算机工程,2002(2):112~114.
[6]王大刚,谢荣传.基于XML Schema的数据匹配方法的研究[J].计算机科学与技术,2008(6):28~31.
[7]L.Seligman,A.Roenthal.XML’s im-pact an databases and data sharing[J].Computer,2001,34(6):59~67.
[8]Maria Arigeles.The challenges thatXML faces[J].Computer,2001,34(10):15~18.