XML数据流

2024-08-19

XML数据流(共11篇)

XML数据流 篇1

摘要:随着分布计算和数据处理技术的不断发展, 我们所处的计算环境都可能是异构的, 无论是网络、计算机硬件还是计算机操作系统, 各种各样的数据源分布在计算机网络的各个角落, 本地的数据库需要借助网络相互交换大量的数据, 而数据结构的不一致又给交换带来了难题。本文献综合并简要评价了XML和异构数据库的相关理论, 为解决上述问题提供一些参考。

关键词:XML,关系数据库,数据交换

一.XML的理论

1.XML简介

XML (extensible markup language, 可扩展的标记语言) 是由World Wide Web Consortium (W3C) 的XML工作组定义地。这个工作组是这样描述该语言的[1]:"XML是SGML (standard generalized markup language, 标准通用标记语言) 的子集, 其目标是允许普通的SGML在Web上以目前HTML (hypertext markup language) 的方式被服务、接受和处理。XML被设计成易于实现, 且可在SGML和HTML之间互相操作。"

XML是一套定义语义标记的规则, 这些标记将文档分成许多部件并对这些部件加以标识。它不像HTML或格式化程序。这些语言定义了一套固定的标记, 用来描述一定数目的元素。XML是一种元标记语言, 用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建, XML标记描述的是文档内容的结构和含义, 而不是描述页面元素的格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记, 而不是说明文档看起来是什么样的[2]。

XML是非专有并易于阅读和编写的。这使得它成为在不同的应用间交换数据的理想格式。XML不是第一种公共文档格式, 但它与已有的文档交换格式相比具有很多优点。XML是源文档的最佳格式, 因为它允许用最佳的输出格式, 例如HTML、PDF (portable document format) 和PostScript格式, 并格式化应用程序, 例如电子数据交换 (electronic data interchange, EDI) 。

2.XML与数据库的交互[3]

从技术角度讲, XML和关系数据同属于数据管理的手段。狭义的XML仅仅指一种语言和采用该语言所描述的XML文档, 广义的XML包括XML语言、XML文档以及所有与XML相关的工具和技术, 例如, XML解析器及解析技术, XML转换技术 (XSL、XSML) 等。

XML数据源有多种多样, 根据具体的应用, 大概可分为下面三种:

第一种是XML纯文本文档;

第二种是关系数据库;

第三种来源于其他各种应用数据, 如邮件、目录清单、商务报告等。

第一种来源是最基本的也是最简单的, 将数据存储于文件中, 其最大的优点在于可以直接方便地读取, 或者加以样式信息在浏览器中显示, 或者通过DOM接口编程同其他应用相连, 第二种数据来源是对第一种来源的扩展, 目的是便于开发各种动态应用, 其优点则在于通过数据库系统对数据进行管理, 然后在利用服务器端应用 (如ASP、JSP、Servlet) 等进行动态存取, 这种方式最适合于当前最为流行的基于三层结构的应用开发;第三种数据由于来源广泛, 因此需要具体情况具体对待。

二.关系数据库理论

1.关系数据库简介

关系数据库是目前各类数据库中最重要、最流行的数据库, 它应用数学方法来处理数据库数据, 是目前使用最广泛的数据库系统。关系数据库是建立在集合代数基础上, 应用数学方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。换句话说, 关系数据库是建立在关系模型基础上的数据库。关系模型是由IBM公司的埃德加·科德于1970年首先提出的。现如今虽然对此模型有一些批评意见, 但它还是数据存储的传统标准。

2.关系数据库的局限性

只要有程序, 就会有数据。IT行业最早具有商业价值之一的就是数据管理。自动的数据管理意味着业务能够扩展、具有竞争力, 没有它就不可能。所以毫无疑问机智的商业技术员很早把目光聚集在数据管理市场。在新的数据库产生之前的20年, E.F Codd博士提出的关系型理论找到了出路, 开发出商业的关系型数据库产品。在80年中期, 在IT领域有一个宗教式的信仰, 认为数据的所有理论问题都已经解决, 实践的问题也会随之解决。然而, 很明显, 事实并不是这样。

今天, 数据库所管理的数据发生了根本的变化, 它的基本标志就是从过去仅仅管理由键盘输入的数字、字符等简单数据, 到今天必须管理由各种设备、装置、计算所产生的多种类型的复杂数据。例如, 图形、图像、视频、音频、电子图书与档案、Web网页等等。这一变化给数据库技术带来了很多的挑战, 需要我们研究许多新的问题。关系数据库已经无法胜任这种变化了的应用需求, 可以说它使数据库技术的发展面临一个新的分水岭, 我们必须寻求新的解决办法。

(1) 数据库的一个基本问题就是要找到一个恰当的数据模型来表达它所管理的对象。关系数据库的模型可以简化为普通的表格, 它对于表达键盘输入的数据十分到位。但是, 如果我们用表格表达一本书, 而书里面有文字、图形、图像、数学公式, 还有很多特定领域特殊的内容, 还要分成章节, 这对关系数据库模型而言显然是件十分困难的事情, 它处理不了这么复杂的数据内容与它们之间的结构。

(2) 数据模型的变化意味着查询语言的变化。

(3) 数据的变化, 意味着后端对查询数据的处理要发生变化。过去的对象很简单, 都是一行一行的纪录。现在一个对象除了一部电影、一幅图像、一个电视节目这些对象本身以外, 还有很多关于它们的描述性的东西, 即对象的元数据 (对这些内容特征的描述) 。比如一张照片, 它的颜色、纹理等等, 这使得数据本身呈现一种多维的趋势, 数据库系统必须考虑这样的要求。

(4) 在存储方面, 过去数据存储不太考虑10年、20年这样长期的存储。一般的数据用了一年两年之后, 我们就采取备份的手段, 把它倒到磁带上, 变成离线的, 再放到架子上, 编目进行管理。现在则不同, 一本书, 一部档案, 可能10年、20年以后还要用, 用户只要有需要, 都希望能把它在线地调出来使用。从存储容量的要求来看, 现在的要求跟过去键盘输入时代的要求有天壤之别。如何在计算机里长期保存这样超大规模的数据, 并且实现随时可用的在线访问, 这就需要一个合理的存储系统, 这显然不是仅仅增加磁盘阵列就能解决的问题。

(5) 是对数据的使用。传统的关系数据库保存的都是键盘输入的数据, 对它的使用也很简单, 就是查一条或者一组记录, 然后在终端显示出来。今天, 当我们把一张照片调出来, 看照片要用特定的浏览器。我们把一本书调出来, 需要各种索引服务。存储的对象和服务都产生了很大的变化, 它会反过头来对数据库的支撑技术提出了很多的新要求。比如视频音频的索引技术, 都会与现在关系数据库所处理的常规数据索引有很大的不同。

三.数据交换的现有解决方案

1.利用数据库厂商提供的工具

数据库厂商为了帮助异构数据库进行转换数据, 提供了一些转换工具。但这些工具往往只是提供自己的DBMS访问异构数据库的机制, 通用性较差。常用的有:

(1) SQL Server的DTS工具

DTS工具是Microsoft公司开发的SQL Server数据转换工具。它允许用户在多中数据源之间导入和导出数据或在使用SQL Server的多个计算机之间转移数据库和数据库对象。

(2) Oracle导入/导出工具

Oracle导入/导出 (Export/Import) 主要是用来对Oracle数据库进行逻辑备份, 利用Export导出数据库的转储二进制文件作为数据库Import输入从而达到移植的目的。

2.利用第三方数据库

在网络环境下和不同的操作系统间进行数据转换时可以借助如Access等较小的桌面数据库系统。先对要转出的数据库生成脚本, 生成符合规范的SQL语句, 再在新环境的数据库系统中执行脚本。

3.通用数据库转换工具

通用数据转换工具可以实现不同数据库系统之间的数据定义模式转换和数据转换。此类工具利用ODBC、JDBC等数据访问技术访问各种不同的数据库, 进行类型转换, 然后使用SQL作为标准的数据访问语言进行数据定义、模式转换和数据转换。四.小结

随着各行各业的不断发展, 计算机网络化趋势的加速和网络性能的提高, 使得在关系数据库系统之间进行数据交换的需求越来越迫切, 同时对异构平台的数据交换的要求越来越高。同时随着XML技术的迅猛发展, 使其成为一种被广泛采用的数据表示格式。XML是可扩展的, 与平台无关的, 并且支持国际化。正是因为有了这些强大的功能, 出现了一些与XML相关的数据库管理技术, 数据库对XML的支持越来越好。因此如何利用XML来实现关系数据库系统间的数据交互, 具有现实意义和应用价值。

参考文献

[1].World Wide Web Consortium.Extensible Markup Language (XML) 1.0 (Third Edition) .W3C Recommendation, 4 February 2004.http://www.w3.org/TR/REC-xml/

[2].万常选.XML数据库技术[M].北京:清华大学出版社, 2005.

[3].邵敏, 李力鸿, 郑震川等, XML编程实践[M].北京清华大学出版社, 2005

[4].张正明, 伶俐鹃.异构数据库系统集成的研究.计算机科学[J], 2004, 31 (10增刊) :372~374

[5].张正明, 伶俐鹃.异构数据库集成的研究与实现.航空计算技术[J], 2004, 2:33~36

[6].张正明.异构数据库集成的研究与实现.硕士学位论文[D].北京机械工业学院, 2005

XML与Web数据挖掘技术 篇2

由于Internet的发展,网上数据的不断激增,人们对网上信息的应用需求也不断提高,将这些数据进行复杂的应用成了现今数据库技术的研究热点。将传统数据库技术直接应用于网上数据的最大困难在于:传统的数据库中的数据结构性很强,即其中的数据为完全结构化的数据,而Web上的数据最大特点就是缺乏统一的、固定的模式,数据往往是不规则且经常变动的半结构化(即是相对于完全结构化的传统数据库的数据而言)。因此充分利用有用的数据,废弃虚伪无用的数据,是数据挖掘技术的最重要的应用。所谓数据挖掘就是从大量的数据中发现隐含的规律性的内容,解决数据的应用质量问题。

1.半结构化的数据结构

Web上的数据与传统的数据库中的数据不同,传统的数据库都有一定的数据模型,可以根据模型来具体描述特定的数据。而Web上的数据非常复杂,没有特定的模型描述,每一站点的数据都各自独立设计,并且数据本身具有自述性和动态可变性。因而,Web上的数据具有一定的结构性,但因自述层次的存在,从而是一种非完全结构化的数据,也被称为半结构化数据。

2.解决半结构化的数据源问题

Web上的每一个站点都是异构的数据源,因而每一站点之间的信息和组织都不一样,这就构成了一个巨大的异构数据库环境。如果想要利用这些数据进行数据挖掘,首先,必须将这些站点的数据都集成起来,提供给用户一个统一的视图,才有可能从巨大的数据资源中获取所需的东西。其次,还要解决Web上的数据查询问题,因为如果数据不能很有效地得到,对这些数据进行分析、集成、处理就无从谈起。

解决Web上的异构数据的集成与查询问题,就必须要有一个模型来清晰地描述Web上的数据。Web数据挖掘技术首要解决半结构化数据源模型和半结构化数据模型的查询与集成问题。针对Web上的数据半结构化的特点,寻找一个半结構化的数据模型是解决问题的关键所在。除了要定义一个半结构化数据模型外,还需要一种半结构化模型抽取技术,即自动地从现有数据中抽取半结构化模型的技术。也就是说面向Web的数据挖掘必须以半结构化模型和半结构化数据模型抽取技术为前提。

二、XML与Web数据挖掘技术

XML可看作一种半结构化的数据模型,可以很容易地将XML的文档描述与关系数据库中的属性一一对应起来,实施精确地查询与模型抽取。

1.XML简介

XML其特点可概括为简单、开放、高效可扩充、国际化等,是一种类似于HTML,被设计用来描述数据的语言。XML解决了HTML不能解决的两个Web问题,一是Internet发展速度快而接入速度慢的问题,二是可利用的信息多,但难以找到自己需要的那部分信息的问题。XML能增加结构和语义信息,可使计算机和服务器即时处理多种形式的信息。因此,运用XML的扩展功能不仅能从Web服务器下载大量的信息,还能大大减少网络业务量。

XML中的标志(TAG)是没有预先定义的,使用者必须要自定义需要的标志,XML是能够进行自解释(Self Describing)的语言。XML使用DTD(Document Type Definition文档类型定义)来显示这些数据,XSL(eXtensible StyleSheet Language)是一种来描述这些文档如何显示的机制,它是XML的样式表描述语言。XSL包括两部分:一个用来转换XML文档的方法;另一个用来格式化XML文档的方法。XLL是XML连接语言,它提供XML中的连接,与HTML中的类似,但功能更强大。由于XML能够标记更多的信息,所以它就能使用户轻松地找到他们需要的信息。利用XML,Web设计人员不仅能创建文字和图形,而且还能构建文档类型定义的多层次、相互依存的系统、元数据、超链接结构和样式表等。

2.XML在Web数据挖掘中的应用

XML已经成为正式的规范,开发人员能够用XML的格式标记和交换数据。XML在三层架构上为数据处理提供了很好的方法。使用可升级的三层模型,XML可以从存在的数据中产生出来,使用XML结构化的数据可以从商业规范和表现形式中分离出来。数据的集成、发送、处理和显示是下面过程中的每一个步骤(如下图):

用标准的HTML无法完成的Web应用促进了XML应用。这些应用大体上可以被分成以下四类:

需要Web客户端在两个或更多异质数据库之间进行通信的应用;

将大部分处理负载从Web服务器转到Web客户端的应用;

需要Web客户端将同样的数据以不同的浏览形式提供给不同的用户的应用;

需要智能Web代理根据个人用户的需要裁减信息内容的应用。

显而易见,这些应用和Web的数据挖掘技术有着重要的联系,基于Web的数据挖掘必须依靠它们来实现。

XML给基于Web的应用软件赋予了强大的功能和灵活性,因此它给开发者和用户带来了许多好处。由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。利用XML,用户可以方便地进行本地计算和处理,XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据,数据计算不需要回到服务器就能进行。XML可以被用来分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件。

XML还可以通过以简单开放扩展的方式描述结构化的数据,XML补充了HTML,被广泛地用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。

XML应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。如按传统的“Client/Server”工作方式,客户向服务器发出不同的请求,服务器分别予以响应,这不仅加重服务器本身的负荷,而且网络管理者还须事先调查各种不同的用户需求以做出相应不同的程序。应用XML则将处理数据的主动权交给了客户,服务器所作的只是尽可能完善、准确地将数据封装进XML文件中,正是各取所需、各司其职。XML的自解释性使客户端在收到数据的同时也理解数据的逻辑结构与含义,从而使广泛、通用的分布式计算成为可能。

XML还被应用于网络代理,以便对所取得的信息进行编辑、增减以适应个人用户的需要。有些客户取得数据并不是为了直接使用而是为了根据需要组织自己的数据库。

三、结束语

基于XML的数据安全交换 篇3

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文档访问控制的一种策略描述语言,用来决定是否允许一个请求使用一项资源,比如它是否能使用整个文件,多个文件,还是某个文件的一部分。主要思想是围绕一个四元组来定义访问控制授权策略。subject为授权访问用户,resource代表访问的资源,action表示对资源的访问操作,condition表示采取特定操作的先决条件。在制定策略时,首先确定资源resource,针对resource,确定对于subject元素所描述的访问者,是否授予其执行action操作的权限。condition元素用于定义特定访问操作的先决条件,这使得策略控制的描述制订可以非常灵活,制定的访问策略可以方便地应用于各种不同的场合。

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的加密密钥加密,这个消息送到消息管理器,消息管理器判断出这个消息是自己指定目的地址的,应用A,于是判断应用A能不能满足这个安全要求,就是要求对每个学生的passwd进行128bit的对称密钥加密。如果能满足,则把这个消息传到代理A中去,让代理A去处理,如果不能满足,则发一个错误消息给代理B,告诉它出错的原因。当然在请求消息中还要指明的是要对文档的哪个部分进行加密和具体的加密粒度,这样代理A才知道对谁加密,怎样加密。

这样,基于使用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数据流 篇4

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数据流 篇5

关键词:XML数据库;查询代数;查询重写;获取机制

中图分类号:TP311.11 文献标识码:A 文章编号:1674-7712 (2012) 12-0059-02

一、引言

语义分析是自然语言处理过程中的一个层次,是计算机理解语言的基础,因而十分重要。从自然语言处理的应用来看,信息获取、信息检索、机器翻译、自动文摘、人机交互等都应用到了语义分析,并且语义分析在这些方面也取得了一定的成果。基于现有语料库和语言现象分析,笔者主要从基于本体扩展的XML查询代数和基于本体集成的XML查询重写两个机制来研究基于语义的XML数据库获取机制。

二、基于本体扩展的XML查询代数

目前,人们已经提出了很多XML代数,著名的有:TAX,Xtasy,TTX等。其中TAX是扩展标记语言的树形代数(Tree Algebra for XML),它是关系代数的一个扩展,应用在TIMBER XML数据库管理系统中。Xtasy介绍了Xtasy XML数据库管理系统的基本代数,具有良好的优化特性和表达能力。TTX是一种针对XML文档的标记文本检索查询语言(Typed Text Retrieval Query Language for XML Documents),能够较好地支持网络和数据库相关的应用。

笔者综合了XML代数表示方法,并对其进行了一定的扩充。主要思想如下:

(一)主体上采用TAX XML代数的表示方式,即在XML代数中引入Pattern Tree和Witness Tree,并结合OrientXA对它进行了一定的扩充,将整个查询由三个Pattern Tree来定义,用Source Pattern Tree来表示查询动作或意向序列,用Constructor Pattern Tree来表示对结果的构造序列,用Update Pattern Tree来表示查询的更新操作序列。Witness Tree是Source Pattern Tree的实例。

(二)在Pattern Tree的定义了结合XTasy、OrientXA的成果,即:①对于每一个节点,定义新的修饰符,主要是为了区别是节点绑定还是序列绑定,区分强绑定和弱绑定,并且区分是否连带进行子孙节点绑定。②对于每一条边,定义三种类型,即父子边、子孙边和元素属性边。

(三)新增了适用于本体查询的操作符如~,instance_of、isa。is_part_of、below、above等。重新定义了大部分操作的语义及实现机制。

(四)扩充了TAX中关于Wintness Tree的定义,使它支持基于本体的操作。

下面笔者将对几个概念的重新定义如下:

1.Source Pattern Tree

一个Source Pattern Tree是一个二元组SPT:=(T,F),其中T:=(V,E)是一个有节点标识和边标识的树,F是一个谓词表达式的组合。T满足以下条件:

(1)每个节点有一个惟一的标识符,并且有以下修饰符:①是否序列绑定?用双圆圈表示序列绑定,用单圆圈表示节点绑定;②是否强绑定?用实线圆圈表示强绑定,虚线圆圈表示弱绑定;③是否连带绑定所有子孙节点?用P表示需要连带绑定所有子孙节点。

(2)每一条边表达了节点之间的关系,存在三种类型关系:①父子关系,用单实线表示;②祖先后代关系,用双实线表示;③元素属性边,用单虚线表示。

2.Constructor Pattern Tree

一个Constructor Pattern Tree是一个二元组CPT:=(T,F),其中T:=(V,E)是一个有节点标识和边标识的树,F是一个谓词表达式的组合。T满足以下条件:

(1)节点定义如下:

V:=v(TagName)[=val]|c(PID)

val:=atom|PID

其中,v(TagName)=val表示新建一个节点,节点名为TagName,节点值为val:c(PID)表示拷贝input pattern tree上特定PID节点。包括节点名、节点值以及所有子孙节点。

(2)节点同时具有以下修饰符:是否序列构造,用双圆圈表示序列构造。序列构造只适用于拷贝构造节点。

3.Update Pattern Tree

一个Update Pattern Tree是一个二元组UPT:=(T,F),其中T:=(V,E)是一个有节点标识和边标识的树,F是一个谓词表达式的组合。T满足以下条件:

(1)节点定义如下:

V:=u(v.TagName)=val

|u(v.TagName)=v.TagName

|n(TagName)[=val]

|d(TagName)

(2)节点同时具有以下修饰符:是否序列构造,用双圆圈表示序列构造。序列构造只适用于拷贝构造节点。

由于在XML代数中引入了本体及语义相似性判断机制,因此需要重新定义条件判数据操作符及条件判断的可满足性。因此,我们首先对TAX中的选择条件(selection condition)进行扩展,满足本体和语义映射及语义相似性判别的要求。

4.选择条件(Selection condition)满足下列条件即为选择条件:

(1)原子条件即为选择条件。

(2)如果cl和c2为选择条件,则cl∧∨c2、cl∨c2和、┐c1为选择条件。

(3)除此以外,不再有其他形式的选择条件。

其中,原子条件(Atomic condition)由类似于X op Y的表达式组成。

(1)op∈(=,≠,<,≤,>,≥,~,instance_of,isa,is_part_of,below,above);

(2)X和Y为条件术语,包括属性(attribute)、类型(type)、类型取值(type values)v:τ,其中V∈dom(τ),本体语义等。

(3)~表示语义相似性判断。

三、基于本体集成的查询重写

在基于本体集成的环境下,在中介者组件中提供一个全局的语义环境,该语义环境通过前面所介绍的本体集成方法来构建,因此查询递交给各个节点来执行时,首先根据语义环境对查询进行重写。本节重点介绍基于全局本体的查询重写机制。

为简化讨论过程,本文只讨论选择(Selection)操作的重写机制,在OrientXA中,一个选择操作可以表示为 (X)={x,x

在此,笔者讨论对Pattern Tree(即上面表达式中的x)进行重写的问题,可能会有下面几种情况:(1)X与Xl,X2,…,Xn概念同属于全局本体的上一个节点,而且Xi(1≤i≤n)分别属于不同局部本体的概念,即在进行本体集成时,来源于不同本体之间的概念语义相似度相同多个概念熔合为一个节点。

四、结束语

基于语义的XML数据库获取机制有如下的优点:

(一)本文所介绍的方法部分地解决了查询中语义不一致的问题(Semantic Inconsistency),特别是语义不完全或语义缺失的问题。一个概念如果有部分属性值并不在本地本体中进行表述,而在另一个节点的本体中进行了描述,通过复杂映射机制,可以将两个本体进行合并形成一个完整的概念,相应的查询重写机制保证能完整地从两个节点获取满意的结果。

(二)减小查询的冗余度,提高查询效率,对于分布于不同节点的概念之间如果存在相同的属性,则无须重新获取这些相同属性的值。

(三)查询更加精确,通过语义相似度及扩展语义查询操作符可以获取更符合需要的结果。

然而,采用这种机制进行数据处理也存在一些需要改进的地方,主要表现在下面几个方面:

(1)首先是如何提高各局部节点包装器的语义映射表的复用的问题,各局部节点映射表中可能包含着相同的语义映射信息,造成信息的冗余,如何提高这些信息的利用率是一个需要进一步探讨的问题。

(2)语义不一致的问题依然存在,例如各节点之间的语义映射关系相互矛盾。

参考文献

[1]龚慧.基于语义的XML模式到关系模式的转换[D].湖南师范大学,2009

[2]蔺旭东.基于语义的XML查询及规范化研究[D].北京交通大学,2010

XML数据流 篇6

如何在XML数据流上执行大量XPath查询成为当前的研究热点。本文的主要目的就是要寻求一种新的方法来解决XML数据流上的XPath查询处理的方法。

1 XML数据流

X ML是可扩展标记语言e X t e n s i b l e Mark up Langu age的缩写, 是由万维网联盟 (W3C) 定义的一种语言。相当多的XML数据是以流的形式存在的。对XML树中的节点进行先序遍历所得到的节点序列, 即为XML树的流表达。XPath语言定义了如何在XML文档中精确定位和匹配XML的元素结点。

当需要从一个大的XML文档中提取少量信息时, 通常SAX解析是最好的实现方法。SAX解析器要做的是遍历整个XML文档, 并且根据遇到的标记激活事件, 这些事件被推给事件处理器, 然后由事件处理器提供对文档内容的访问。

根据XPath语法, 任意一个XPath路径表达式都可以转化成一个正则表达式。根据自动机理论, 必然存在一个接受该正则表达式的有限状态机FSM。

2 基于NFA的XML数据流查询的实现

2.1 算法的基本思想

(1) 将一个XPath查询表达式生成对应的有限状态机FSM; (2) 从XML文档的根结点开始, 采用基于事件的SAX方法对XML流进行解析, 解析过程中产生的结点元素作为上述有限状态机的输入; (3) 从FSM的初始状态出发 (对应XML的根结点) , 由XML元素驱动状态的转移, 并使用栈记录当前的所有活动状态; (4) 在FSM的状态转移过程中, 通过栈结构只保留XPath的当前访问结点和XPath路径上的历史结点, 其他的结点元素不保存; (5) 当解析到XML数据流的某一结点时, 如果到达了FSM的终态结点, 则完成了一次成功匹配。

2.2 NFA自动机对XPath的处理

由于XPath中存在‘//’路径关系和‘*’通配符, 我们可以很直观地将其转化为一个不确定的有穷状态自动机NFA。

2.3 核心算法设计

2.3.1 由XPa th构造NF A

算法1:由XPath构造NFA (如图1) 。

2.3.2 运行N F A

在XPath的匹配过程中, 建立堆栈来保存在NFA的运行过程中的状态集合。

算法2:NFA的运行 (如图2) 。

2.4 基于NFA的多XPath查询

如果有多个XPath表达式, 则需建立多个NFA, 并分别进行查询匹配。显然, 当两个XPath具有相同的路径表达式时, 这种处理方法可能会导致许多重复的匹配工作, 从而降低了查询效率。

为了减少多查询处理中的重复运算, 可以将XPath表达式中的公共部分合并在一起, 组成一个单一的NFA模型, 即通过一个NFA模型匹配所有的XPath表达式查询。这种合并公共前缀路径的NFA模型能够大幅度提高多个XPath的查询效率。

3 结语

本文基于自动机技术完成了XML数据流上XPath查询处理的工作, 利用自动机技术中的非确定性自动机NFA完成了对简单路径的XPath查询处理, 通过自动机运行中状态的转移, 实现对XPath表达式的查询。

摘要:随着XML数据流应用的深入, 如何在XML数据流上执行海量的XPath查询便成为迫切需要解决的问题。本文根据XPath语法规则, 即任意一个XPath路径表达式都可转化成一个正则表达式, 基于自动机理论, 实现了基于NFA的XPath表达式的查询处理。

关键词:XML数据流,XPath表达式,自动机

参考文献

[1]孟小峰, 周龙骧, 王珊.数据库技术发展趋势[J].软件学报, 2004, 5:1822~1836.

[2]刘德贵.XML发展综述[J].微型机与应用, 2000, 5:4~6.

[3]张素琴, 吕映芝, 蒋维杜, 等.编译原理 (第二版) [M].北京:清华大学出版社, 2005:456.

XML数据流 篇7

建立一个分布式数据库系统, 实现良好的数据集成与共享, 将数据发布为符合用户要求 (DTD或XML Schema) 的XML文档, 使得数据库系统成为Web的有机组成部分, 具有巨大的使用价值, 也是一个亟待解决的问题。

2关系数据库与XML之间的数据格式映射[1]

目前采用的关系数据库, 要利用XML对数据进行集成, 关键是要建立关系数据库与XML文档之间的映射。

2.1数据类型映射方法[2]

在进行关系数据到XML文档映射时, 需要考虑数据库访问接口的限制 (本文采用JDBC对数据库进行访问) , 所以在定义XML元素的相关数据类型时, 必须同时兼顾JDBC驱动所支持及能表示的数据类型。

2.2分布式数据库集成映射规则R2X[3]

为了更加灵活的将关系数据库数据映射为符合用户要求的XML文档, 利用XML元语言的特点, 定义基于XML的映射规则R2X来描述从分布式数据库数据到XML文档的映射。基于R2X规则的数据转换规则简单, 而且可以根据需要对其进行扩充, 能实现将关系数据转换为符合DTD或XML Schema要求的XML文档。

2.3基于R2X的关系数据到XML的数据类型转换[4]

通过定义映射文件将数据库数据类型映射为符合任意DTD或XML Schema要求的XML文档, 将关系数据映射为符合DTD或XML Schema的逻辑结构。只有其结构、数据类型等均满足DTD或XML Schema要求的XML文档, 才能被称为有效的XML文档。

采用JDBC访问数据库, 首先利用JDBC驱动程序将关系数据类型转换为JDBC支持的数据类型, 然后再将中间数据类型即JDBC支持的数据类型转换为DTD或XML Schema要求的数据类型。

3基于XML的分布式数据库集成系统[3]

为实现分布式数据库数据的集成, 要解决的问题主要包括: (1) 调研各关系型数据库数据结构; (2) 参考或设计某使用范围 (或某领域) 内数据的XML模式, 即DTD或者XML Schema; (3) 根据关系模式和XML模式定义映射文件; (4) 实现客户端, 客户端通过中间件进行综合查询, 得到综合结果。

3.1基于XML的分布式数据库集成系统体系结构[3]

定义一种功能强大的映射语言来描述关系数据到XML文档的映射, 目前在这方面已经取得了很多研究成果, 如SilkRoute[39, 40]系统利用基于视图定义语言RXL进行关系数据的XML发布;PRATA[41, 42]提出了ATG的概念来表示关系模式到XML的映射;ROLEX[43]则用schema-tree query来定义XML视图, 这些系统都能够较好的满足用户的发布请求, 但上述系统只是将某个单一的关系数据库数据发布为XML文档, 没有考虑分布式数据库系统中数据片断的集成问题。

本文提出的分布式数据库集成系统体系采用了四层体系结构, 即应用层/接口层/中间件层/数据源层。XML己经成为Internet上数据表示和交换的标准, XML能够描述各式各样的数据, 能够将不同来源的数据纳入同一个XML文件并传送到客户机上, 生成的XML文件可以在本地被编辑或操纵。

3.2系统实现[2]

本系统开发是在Windows Server 2003下, 采用Eclipse3.1和JDK1.5.0及其它辅助工具进行开发, XML解析器采用Apache的Xerces, XML编程接口采用JDOM1.0。

本文对R2X进行了实现, 部分关键代码及说明如下:

(1) 查询转换模块为用户 (外部应用程序) 提供访问接口buildXMLFromRela (String mapXML, String tarXML) , 外部用户利用此接口根据选择的映射文件从关系数据库中抽取数据, 生成XML文档。

(2) 本文使用JDOM实现对XML文档的解析和目标XML文档的生成。以下代码为对映射文件进行解析得到代表XML文档的Document对象。

*
方法说明:对XML文档解析, 生成代表XML文档的Document对象

*
输入参数:String mappingXML 输入XML文档

*
返回类型:Document 返回代表XML文档的Document

Document parseXML (String mappingXML) {

String mappingXML1 = mappingXML;

Document docJDOM = null;

SAXBuilder bSAX = new SAXBuilder (false) ; //利用SAX建立Document

try { docJDOM = bSAX.build (new File (mappingXML1) ) ; //生成document对象

}

catch (JDOMException e)

{e.printStackTrace () ;}

return docJDOM; }

以下代码为生成目标XML文档。

*
方法说明:生成XML文档

*
输入参数:Document docXML 用于生成XML文档的Document对象

*
输入参数:String strFilename 目标XML文档的名称

*
返回类型:无

private void OutputXML (Document docXML, String strFilename) { //使用JDOM的XML输出

XMLOutputter fmt = new XMLOutputter () ;

try {

fmt.setEncoding (″GB2312″) ; //声明使用GB2312字符集

fmt.setNewlines (true) ; //可以换行

FileWriter fwXML = new FileWriter (strFilename) ; //输出文件对象

fmt.output (docXML, fwXML) ;

fwXML.close () ;}

catch (IOException e)

{ e.printStackTrace () ; }

}

(3) elements元素是映射文件中最重要的元素, 转换器根据映射文件中对数据源的描述信息连接数据库, 查询数据库, 并将返回的结果集根据定义生成XML片断存入一个动态数组ArrayList中, 供后续步骤使用。

为了将查询得到的结果集和映射文件中定义的结果集别名相对应, 定义一个哈希表存储每次查询数据库得到的结果集, 键值为映射文件中定义的结果集别名, 在使用时根据结果集别名从哈希表中查找相应的结果集。

在elements类中的定义的buildElementForElements () 方法, 根据映射文件中的elements元素的定义的别名从哈希表得到相应的结果集, 对结果集中的每一个元组根据elements的定义生成一个XML片断, 并保存到动态数据ArrayList中, 供后续步骤 (组合XML片断, 生成XML文档) 使用。

4中间件的实验及应用

为实现分布式数据库数据的集成, 要解决的问题主要包括: (1) 调研各关系型数据库数据结构; (2) 参考或设计某使用范围 (或某领域) 内数据的XML模式, 即DTD或者XML Schema; (3) 根据关系模式和XML模式定义映射文件; (4) 实现客户端, 客户端通过中间件进行综合查询, 得到综合结果。

存储信息的数据库构成系统的数据源层;映射文件和上文实现的中间件构成系统的中间件层, 为用户提供全局视图;应用层即客户端, 为用户提供统一的访问界面, 客户端采用JSP实现。

4.1数据源层

存储信息的数据库构成了系统的数据源层, 实验室A的信息存储在IP地址为192.168.57.59的MS SQL Server2000中, 操作系统为Windows Server 2003;实验室B的信息存储在IP地址为192.168.57.111的Mysql中, 操作系统为Windows XP。

4.2中间件层

在中间件层定义映射文件来描述各数据库数据到XML文档的集成与转换, 映射文件为用户提供全局视图, 用户对信息的查询面向视图。

5结论

文章重点讨论了XML与关系数据库数据的转换问题。基于XML的分布式数据库集成解决方案, 根据R2X规则定义映射文件将分布式数据库数据包装成符合用户要求 (DTD或XML Schema) 的XML全局视图, 用统一的XML查询语言XQuery来进行查询, 从而实现用户对分布式数据库数据的透明访问。

摘要:重点讨论XML与关系数据库数据的转换问题, 通过定义映射文件将分布式数据库数据映射为符合用户要求的XML文档。提出一种映射规则R2X (Relational To XML) 来描述分布式数据库数据到XML文档的集成与转换。提出一个基于R2X的分布式数据库集成模型, 建立了基于R2X的分布式数据库集成方案、分布式数据库集成系统的体系结构, 并对系统中的主要模块给出了具体的实现方法。

关键词:分布式数据库,关系数据,XML文档,映射,数据集成

参考文献

[1]乐鑫喜, 刘清.异构数据库集成系统的设计与实现[J].计算机工程与应用, 2006 (27) :174-177.

[2]郭艳红, 杨波, 金蓓弘.高效DOM实现的技术研究[J].计算机科学, 2006, 33 (6) :274-277.

[3]徐享忠, 王精业, 蒋海滨.基于XML的数据交换及其面临的挑战[J].计算机工程与应用, 2005 (1) :27-29.

XML数据库存储策略探讨 篇8

底层的存储表达对上层的查询处理和优化有着重要的影响, 如何存储XML文档才是最好的方式已经成为一个重要问题。XML数据库的存储策略主要有几种:利用文件系统的平面文件、成熟的RDBMS (Rdational Database Management System, 关系数据库管理系统) 、对象管理器或OODBMS (Object-Oriented Database Management System, 面向对象数据库管理系) 、采用全新的Native XML数据库管理系统。

1.1 利用平面文件存储 XML文档

将每个XML文档存储成文本文件, 并实现一个查询引擎, 当查询被执行时, XML文件被解析成驻留在内存的一棵树。一般解析的时间影响着查询计算的时间, 这种方法速度慢。为提高这种方法的可用性, 必须建立索引。利用XML元素在文本文件中的偏移量作为id, 建立从标记tag (parent_ offset, tag) 映射到子偏移量child_offset的路径索引以及从标记tag (child_offset, tag) 映射到父偏移量parent_offset的反向路径索引。这两个索引有利于遍历XML文档或在XML文档中进行导航。其他索引建立从标记值 (tagname, value) 或属性值 (attribute nam, attribute_value) 到元素偏移量element_offset的映射, 这些索引有助于计算查询中的选择条件 (谓词) 。查询引擎可以利用这些索引检索与查询相关的XML文件的片段, 极大地减少了解析的时间。

1.2 传统的关系数据库系统方法

XML关系存储的核心是XML文档到RDB的模式映射 (schema mapping) 方法, 包括模型映射和结构映射。为了下面叙述方便, 图1给出了示例所使用的XML文档“Dept.xml”和 DTD文件“Dept.dtd”来说明它们的映射过程。也可用XML文档的树型结构来说明每一种方法是如何存储XML数据的:XML文档可以模型化为有向图, 图中用结点表示XML元素、属性和文本, 利用有向边表示父子关系, 矩形框表示元素结点, 而椭圆形表示属性或文本结点等等。

(1) 利用关系的DTD方法。

这种方法是共享内嵌法, 而且需要相应DTD的支持。用一个独立的表来捕获具有相同标记的元素与其子元素集之间的包含关系。表中的每个元组都被赋予一个ID, 而且该表还包含一个ParentlD列以标识该元组的父亲结点。一个元素在描述它的元素表中只能出现一次, 而且它的父结点内嵌为表的一列以便表示该元素的父亲。

(2) 利用关系的边的方法。

将XML文档的有向图存储在单个Edge表中。按照广度优先的顺序赋予有向图中每个结点一个惟一的id。Edge表中的每个元组对应有向图里的一条边, 并包含该条边所连接的两个结点的id值、目标结点的标记 (tag) 值以及一个顺序号, 该顺序号表示同一结点与其多个子结点对应边的顺序编码。当元素只有一个文本子结点时, 文本内容就内嵌到以该元素结点为目标结点的边所对应的元组里。

(3) 利用关系的属性方法。

“属性”方法是按照Edge的Tag字段对边表进行水平划分, 不同标记 (指Tag字段的值) 的元组存储在各自不同的表里。这种方法以牺牲Edge表的重要的属性Tag为代价而节省了存储空间 (不用存储Tag字段) 。对于属性方法来说, 查询处理器需要DTD来决定哪些表包含子元素, 因为子元素的标记没有存储在表中。需要注意的是, 对于有很多XML文档的一个大集, 属性方法可能导致大量的表。

1.3 Native XML数据库

Native-XML数据库是专门用来存储XML文档的和操作XML数据的数据库, 其数据可以通过XML和XPmh、XSLT、DOM、SAX等相关标准来访问。具体使用什么形式存储数据并不重要, 但底层数据表示形式必须维持完全的XML结构和相关的元数据。基本存储单元是一个XML文档, 存储数据时不需进行XML和数据库的映射转换。

2 存储方法策略的性能及特征分析

平面文件是存储XML文档最简单的机制, 但一般不支持索引查询, 也不容易修改文档。

关系型或面向对象数据库按照一定的粒度来存储XML文档, 这使得对XML文档的访问比较容易也比较灵活, 同时也提高了查询和修改XML文档的效率, 还可以方便地建立和维护各种索引。

在存储XML文档时, 一般有三种不同的簇集策略:第一种是对应于现实世界的同一对象的元素簇集存储, 例将Student的ID和Name存储在一起;第二种是将相同种类的元素一起簇集存储, 例把所有的Student元素存储在一起;第三种是按照和原始XML文本文件一样的顺序 (深度优先) , 将元素簇集存储。

关系-DTD方法积极地使用了策略一和策略二, DTD信息有助于产生更紧凑的数据表示, 但缺点是不能处理没有DTD的XML文档。利用关系数据库系统还有其他优势:可移植性和可扩展性。另外, 一个重要的因素是当前Web上的数据都驻留在关系数据库系统中, 因此使用关系DBMS来存储XML文档使得查询只有一个系统的数据类型和一种查询语言成为可能。边方法和属性方法都采用了簇集策略二。当查询须对相关的几个子元素应用谓词 (条件) 时, 或是在构造结果文档时, 簇集策略二都导致了非常糟糕的性能。XML元素之间的父子关系是由SQL的连接 (JOIN) 运算捕获的。对复杂的路径表达式, 这种策略产生了十几个连接运算的复杂的SQL查询, 使得关系数据库的查询优化器很难产生正确的查询执行。连接运算的数目也表明了这两种方法对路径表达式复杂性的敏感度。属性方法比边方法的数据表示更加紧凑。另一方面, 为了重构一个元素, 属性方法必须要DTD的信息。而且其重构的代价比较高, 原因就是需要更多的SQL查询来获取所有的子元素。

对象方法使用簇集策略三。由于在原始的XML文档中, 对应于一个现实世界对象的所有元素常被簇集在一起, 所以策略三共享了策略一的好处。当重构查询结果时, 策略三提供了非常好的性能;而与 DTD方法比较起来, 对象方法中相似的对象 (具有相同标记名的元素) 没有被簇集在一起的事实显著增加了查询处理的开销。另外, 在面向对象数据库基础上实现 XML数据的存储和查询, 而面向对象数据库在查询优化上存在的问题制约了XML数据的查询分解和优化。

3 结语

XML数据库的研究已从传统的RDBMS转向NX-DBMS, 这是XML数据库研究的发展趋势。由此也带来了许多挑战性的问题, 如XML的节点编码、x-代数、查询优化、实现x-代数的各种高效算法、支持查询优化的有效索引、XML的数据更新。这些问题给数据库研究人员提供了广阔的平台和机遇。

参考文献

[1]栗松涛编著, XML程序设计[M].北京:清华大学出版社, 2001.

[2] (美) Mark Graves著.尹志军, 等译.XMI数据库设计[M].北京:机械工业出版社, 2002.

XML数据流 篇9

1制作XML的文件

XML与数据库不同,它仅仅是存储数据。事实上,XML与其他数据表现形式最大的不同是:它极其简单。XML的简单使其易于在任何应用程序中读写数据,这使其很快成为数据交换的唯一公共语言。也意味着使用XML可以更容易的跨平台与其他平台下的信息进行结合,然后可以通过加载XML数据到程序中并分析它,并以XML格式输出结果。

在书写XML文件之前,简单介绍一下它的书写规范。首先,第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其它元素或者注释。其次,在XML文件中有且只能够有一个根元素,且必须正确地关闭。其他元素都是这个根元素的子孙元素或节点。例如...其中就是此XML文件的根元素;而...就是其下的子节点。再次,一个元素可以嵌套若干子元素;格式良好的XML文档不须有且仅有一个根元素。由于本例应用到的XML文件较为简单,且本文的重点在于讲述Swishmax如何动态获取XML数据。因此结合上面的书写规范制作出一个名为(联系方式XML)的文件,相关内容如下:

——由于内容涉及中文格式,编码采用gb2312

————————————此处节点从0开始计数,代表第0个节点,并非第1个

<公司名称>北京销售分公司

<负责区域>负责区域:北京市内蒙古

<联系人>联系人:王经理

<手机>手机:13911599683

<地址>联系地址:北京市丰台南路新村一里15号

<联系电话>联系电话:010-63727015

<传真>传真电话:010-63790417 010-63790283

<邮政编码>邮政编码:100070

————————————此处节点是第1个节点,之后顺序计数

<公司名称>沈阳销售分公司

<负责区域>负责区域:黑龙江吉林辽宁

<联系人>联系人:史经理

<手机>手机:13940315168

<地址>联系地址:沈阳市铁西区保工街南七中路66号2门

<联系电话>联系电话:024-25826050

<传真>传真电话:024-25823722

<邮政编码>邮政编码:110023

2通过Swishmax获取XML节点的数据

Swishmax是一个制作动画的软件,其内置超过230种可选择的预设效果,可以让开发者快速开发出在众多网站中令人感到酷炫的动画效果。同时,其最新版本已经可以完全支持AS的语法,大量代码的改进,令其功能强劲无比。相比于中小型网站常用的SWFBanner,swftext,Aleo Flash Intro Banner Maker等等软件只能制作较为简单的动画外,不支持AS语法更是上述软件的软肋。而相比于功能较为复杂的Flash软件,Swishmax在简单易用省时省力方面更胜一筹。由此看来,利用Swishmax进行动画开发是一个快速且经济的方案。

当XML被Swishmax加载成功后,会对文中的数组对象进行赋值。它的值的类型是数组型,XML的每一个节点都可以通过这个属性来表示其对应的数据。需要特别指出的是,在Swishmax中,数组的长度计算是从0开始,所以XML文档中的第一个节点就存储在数组的"0"的位置,而不是"1"的位置。(上文相关代码已做了标注)对于获取的数据如何动态地表现出来,是要探讨的重点,也是难点。打开Swishmax后,新建一图形元件和一文本控件,其中文本控件的属性里设置为动态,自动大小高度,使用设备字体。在图形元件下输入以下内容:

_parent._parent.event On Load(this);

以下图1展示了上述代码调试成功后,当鼠标指向地图相应区域后,右下角的窗口会动态显示出XML文件对应的联系方式。后期如需更改联系方式里的内容,只需对XML文件进行相应的修改操作,而不必修改动画文件本身。

摘要:为了更新动画文件内的记录信息,通过使用Swishmax开发工具动态获取XML数据的方式,改变了之前更新文件内的信息还需要同时更新动画文件本身的繁琐方法,为网站维护提供了方便,并成功运用到公司网站上。

XML数据流 篇10

关键词 GridView;Xml;数据

中图分类号:TP311.131 文献标识码:B

文章编号:1671-489X(2016)14-0033-02

1 前言

在ASP.NET架构中,GridView控件通常是与SQL数据进行绑定以实现显示数据功能。这种实现方法操作简易,容错性强,使用者不需要掌握太多的数据结构知识。但是在教学中为了能让学习者更好地理解GridView控件从数据源中读取数据的过程和数据存储的结构,使用Xml表作为数据源,其显示方式更加直观,严苛的编辑标准对于初学者的逻辑理解来讲也更加友好。

本文旨在提出一种逻辑较为简单易懂的命令来实现ASP.NET中通过GridView控件来对Xml表内数据进行删改的功能,命令行以易读性为第一标准,使学习者在了解根本数据传递方法之后,能够熟练掌握其命令逻辑,并在不同的环境下得以灵活运用。

2 核心代码分析

XML表结构 为了便于描述,本文采用图1所示的XML文档,该文档的根节点为,其中有两个子节点,分别为

显示数据 由于显示数据的此段在后续操作中会被多次用到,因此定义一个子函数MyDataBind。首先创建一个数据集,然后读取外部Xml表数据加载至该数据集(Xml文件应与当前页面文件处于同一文件),再将数据集中第一个表,以默认方式作为GridView控件的数据源,最后绑定数据源。代码如下:

void MyDataBind()

{ DataSet dsShowXml = new DataSet();

dsShowXml.ReadXml(Server.MapPath(″XMLFile1.xml″));

if (dsShowXml.Tables.Count > 0)

{ GridViewShowXml.DataSource = dsShowXml.Tables[0].

DefaultView;

GridViewShowXml.DataBind(); } }

删除数据 删除数据时,首先创建一个XmlDocument对象,读取Xml表数据加载至该文档对象,然后查找节点,通过ParentNode中的删除子节点的方法删除找到的节点,最后保存XML文档,刷新数据。整个过程如图2所示。

在本例中,节点的数据类型是日期型,精确到“秒”,所以查找节点是通过“SelectSingleNode(″//basic[e1=′″+Grid

ViewXmlDelete.Rows[e.RowIndex].Cells[3].Text+ ″′]″)”来实现的。

编辑和更新数据 编辑Gridview控件时,只需在RowEditing事件中获取用户选定的行号,然后通过调用MyDataBind函数显示数据。

更新数据时,需要在Gridview控件的RowUpdating事件中创建多个TextBox对象,从而获取在编辑状态时用户动态输入的信息(通过RowIndex和Cells定位,应该注意由于使用了GridView控件内置的编辑和删除按钮,在编辑时,GridView显示表的前两列被更新和取消按钮占用,因此在列定位时应该后移两列),再通过InnerText属性设置其所有子节点的值,最后保存XML文档,取消编辑状态,刷新数据。运行结果如图3所示。

3 总结

使用Xml表作为数据源时,由于与前台程序之间存在一个DataSet缓存区,数据先行载入后可以断开与数据源的连接;而在DataSet中数据的存储结构为同一节点里的所有元素储存在同一张DataTable中,其顺序和Xml表中节点的排列顺序一致。这些特性使得用GridView控件管理Xml表的规范数据时只用短时占用Xml表资源,大部分操作都在页面程序上进行,大大提升了运行速率。

参考文献

[1]王辉,等.ASP.NET 3.5(C#)实用教程[M].北京:清华大学出版社,2012.

XML数据库及其应用研究 篇11

关键词:XML数据库,应用,HTML

所谓的XML指的是可扩展标记语言, 其全称为e XtensibleMarkup Language, 同HTML一样 , 同样属于标准通用标记语言的派生词。而与之有所不同的是, XML属于Web中一种复杂的结构化信息文本格式, 它有着标准化的格式, 不需要复杂的语法和数据性定义。相比较其他可扩展标记性语言不同的是,XML操作简单 , 在应用程序读写中较为常用 , 故XML为数据交换应用中唯一的公共语言[1]。不同的软件在进行数据交换时也会支持其他类型的格式, 但是XML在其中的应用最为广泛, 因而也更加容易同诸如Windows、Mac OS以及Linux等诸多平台的合作信息结合。这样一来, XML的数据被更加容易被加载出来并进行有利的数据分析, 最终以XML的格式进行结果输出。

处理XML文档数据的方式主要有SAX、DOM两种, 其中SAX, 全称为Simple API for XML[2], 是一种以事件处理的工作方式展开的接口。在SAX最新的版本中, 新增了名字空间对等支持等诸多功能。而另外以后总处理方式, DOM, 全称为Document Object Model, 它的工作原理主要是对XML文档进行数据采集分析, 并在其内部建立一个完整的树状结构, 进而实现对XML数据的各种计算操作[3]。XML文档数据处理的两种方式中, SAX对于系统资源的要求更低, 且速度更快捷,但是对文档的操作仅限于只读操作。与之相对应的DOM的数据处理能力则非常强大, 但是需要为之提供大量完善的系统资源。

除以上两种主流情况以外, 对于XML数据的处理还存在有Xpath和Xpointer等方式 , 这两种情 况主要是 应用在对XML数据的搜索和转换上。此外 , XSL和XSLT以及SAOAP则可以实 现XML数据对远 程对象的 访问。XML Query Languages的出现则让XML这一查询语言适用于各种XML文档[4]。

Web2.0时代的出 现 , Web3.0等时代的 到来 , 使得信息共享和数据交换的实际需求不断增加, 传统的简单数据关系库显然已经不能满足用户的要求。数据库技术的应用主要建立在管理的基础之上的, 完成的结构性有利于对各个数据库之间系统的异构性管理, 否则会对信息共享和交换的范围形成限制。伴随着XML种类的兴 起发展 , 其越来越 成为一种数据交换表示的标准格式而大量涌现, 以数据库方式来实现XML数据的高 效管理和 快速查询 俨然已经 成为了一 种必然趋势。

1 XML 数据库类型

XML数据库是当今数据库领域一个新的研究方向 , 这种XML数据已经发展处3种主要的类型 : XEDB, 全称为XMLEnabd Database, 也即支持XML数据库 ; NXD, 全称为NativeXML Database, 也即纯XML数据库 , 最后HXD, 全称为Hy-brid XML Database———混合型XML数据库。

1.1 XML Enabled Database (XEDB)

XEDB为支持XML的数据库 , 不考虑底层数据的存储模式, 只能存入以及取出XML数据并保证其数据库的基本属性不变。换言之, 将原有的数据进行扩充, 使之适应XML数据存储和查询的需要之后, 适应诸如Oracle Oracle9i和IBMDB2以及MS SQL Server2005等格式 , 进而对其 进行数据 处理操作。XML的半结构化特性并不能满足传统的数据关系模块中结构化的特性, 对其强制性的转换或许会造成数据信息的丢失以及系统性能的降低。这样一来, 操作不仅可能会丢失原始的XML数据元素, 甚至检索出来的数据结果也无法保证最初XML的形式和结构。为此, 在进行XEDB对XML的数据进行关系建立或者数据处理之前, 首先需要将XML的数据模式转换为对等的关系模式, 同时XML的查询语言也需要翻译为SQL语言。具体体系结构如图1所示。

1.2 Native XML Database (NXD)

NXD, 这种纯XML的数据库 能够完成 对相应数 据的存储, 而且在引擎访问时不需要执行任何文档转换现 有工作。这就是XML数据库和纯XML数据库之前的差别所在。其主要特点包括 , 将XML文档作为 主要的逻 辑存储单 位进行储存, 进而把XML数据存储站换位适合查询数据模型处理。具体存储获取数据的流程如图2所示。

图2 纯 XML 数据库的 XML 引擎的体系结构

2 Native XML Database (NXD)

在XML数据库的处理中, 尽管纯XML数据库在技术上相对于其他流行的数据库而言尚且不是非常成熟, 但是纯XML数据库是发展的主流趋势。特别是随着Internet信息的大量互动, 纯XML数据库以其独特的数据库优势必然会带给现行数据库的研究处理绝对的便利。

2.1 纯 XML 数据库的基本概念

根据上文的描述可知, 纯XML数据库主要可以用来保存整个文档的完整性, 并且其存储的文档均为基本单位。而纯XML数据库作为一种顶层数据库的处理模式 , 更加能够取代现有的数据库, 对整个XML数据库的体系结构进行分析, 从而保障XML数据多种 不同的存 储形式。 无论是基 于文本的NXD还是基于模型的NXD, 都能够在数据存储层面上实现本质化的区别。文中NXD是XML文件文件作为一种文本, 文本层次之间的关系不断被强调, 这种数据模型结构被数据之间的逻辑结构。

2.2 纯 XML 数据库的研究方向

需求扩大从而形成的对XML数据大量的存储高效率的功能查询能力在NXD中均是非常重要的环节。当前对于NXD的查询特点主要包括了查询语言设计以及数据模型紧密关联两个部分。无论是哪种XML数据模型的描述都对查询语言的结构以及语义产生影响。在XML查询语言中, 无论是XPath其他能够表达出核心存储内容的处理应用, 这种方式均具有简单直接的优势, 但是在数据量基数较大的情况下, 执行效率和准确率却无法得到完全的保证。

XML数据的更新操作 , 语言和操作方法均没有一个统一的标准 , 目前的方 法仍旧为 插入、删 除等基本 操作。并 且XML数据语言更新在W3C中也没能形成特定的工作计划。查询语言的方法中同样缺少对XML数据的具体描述。

3 纯 XML 数据库系统 e Xist

当前最为常见的Native XML数据库产品中, e Xist作为一种有索引依据的XQuery处理程序广受重视。这种数据库产品能够根据索引XQuery处理程序实现自动化的索引功能, 并且能够对全文本进行拓展式搜索。XUodate支持其同现存的XML开发工具之间形成的紧密联系, 从而便于原始XML数据库内部的树状模型的保持。e Xist模型具有如下几个特点:

(1) 实现了无模式的XML数据存储。系统文档中各个文档之间并不需要对同其相关联的模式和文档类 型进行定 义。因而, e Xist这种模型便允许XML开发者在文档完成之后加强对其DTD的模式设计。

(2) 实现了数据之间的集合。数据的集合能够进行随意的嵌套, 不仅能够对一个预先定义的表情模式进行关联, 并且可以保证同一个数据集合中不同的文档类型数目不受任何外界的限制进行任意类型文档的混合化存储。这种存储模式保证了XPath语法具有了直接查询数据集合层次结构的拓展功能。甚至能够实现数据库中所有文档的指定内容集合。

(3) 完成了对e Xist数据所以的查询处理。e Xist作为一种数据索引模式, 通过识别所有的XML结点实现对DOM结点的索引对接。不仅如此, 文档结点之中所形成的结点关系涵盖了父子之间结点的关系以及祖孙之间的关系等多种 情况 ,e Xist均能够快速加以识别。

(4) 实现对全文的检索扩展功能。e Xist提供了一系列可以进行扩展的全文查询模式, 其中e Xist完全可以形成对其有效的扩展支持。此外, 一个附加上的索引结构能够实现对文本内容中出现的每一个词汇的情况记录功能。在帮助了用户进行文本内容查询同时保证系统所提供的特殊文本查询操作函数和操作符号的支持。

4 结语

上一篇:小儿重症毛细支气管炎论文下一篇:推动促进