(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机软件与理论专业论文)基于xml的异构数据库共享的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 长期以来,网络上存在着大量异构的数据库,它们的异构性表现在多个方 面,如数据库模式,数据的表示,支持数据库的d b m s 等。随着企业信息化和政 务电子化的发展,许多信息系统需要访问这些异构数据库中的数据。因此,需 要一种新的系统框架来解决多个异构数据库的信息共享与集成问题。由于 y d l l 具有与平台无关、易于扩展、交互性好、语义性强、可格式化等特性,使 x m l 成为w e b 数据表示和交换的标准。 异构数据库集成技术作为一种实现异构数据库共享的种方式,其目标 是建立统一的接口来访问异构数据,用户访问异构数据时,只需指定所需要 的数据,而不必关心数据模式,数据抽取,数据合成以及这些数据是怎样获 取的等细节。通过对异构数据库共享平台的访问,用户便能实现透明访问。 本文从实际项目的应用出发,分析了在实际项目中实现系统异构数据库 平台建立的可能性,在研究现有基于y & i l 的数据映射算法和模型的基础上, 对传统异构数据集成技术进行了比较分析。然后根据当前网络数据库的发展 趋势,提出了基于x m l 的b s 三层构架的异构数据库系统共享实施方案,并 用统一的x m l 视图来集成和查询异构数据源。由于充分利用了x m l 数据模型 的优点,该系统具有较好的可扩展性。 关键词:y b l l ,异构数据库,数据集成,数据共享 a b s t r a c t a b s t r a c t f o ral o n gt i m e ,t h e r ea r el a r g eq u a n t i t i e so fh e t e r o g e n e o u sd a t a b a s ei nt h e n e t w o r k t h e i ri s o m e r i s ms h o w si nm a n ya s p e c t ss u c h 弱d i f f e r e n td a t a b a s et y p e , d i f f e r e n td a t ar e p r e s e n t a t i o n s ,d i f f e r e n td b m sf o rs u p p o r t i n gd a t a b a s e w i mt h e d e v e l o p m e n to fb u s i n e s sc o o p e r a t i o na n dt h ee l e c t r o n i cg o v e r n m e n t a la f f a i r s , m a n yi n f o r m a t i o ns y s t e m sn e e dt oa c c e s st h ed a t ai nt h eh e t e r o g e n e o u sd a t a b a s e t h e r e f o r e ,an e ws y s t e mf r a m e w o r ki sn e e d e dt oi n t e g r a t et h ei n f o r m a t i o ni n m u l t i p l eh e t e r o g e n e o u sd a t a b a s e s t h ea d v a n t a g e so ft h ex m l si n d e p e n d e n c e w i t hp l a t f o r m ,e a s ye x t e n s i o n ,g o o di n t e r a c t i o n ,s t r o n gs e m a n t i c sa n dm a yf o r m a t e n a b l ei tt ob e c o m eas t a n d a r do fw e bd a t ae x p r e s s i o na n de x c h a n g i n g h e t e r o g e n e o u s d a t a b a s e i n t e g r a t e i so n eo fam e t h o d so f r e a l i z i n g h e t e r o g e n e o u sd a t a b a s es h a r i n g , i t sg o a li ss e t t i n gu pau n i f i e di n t e r f a c eo f a c c e s s i n gh e t e r o g e n e o u sd a t a b a s e u s e r so n l yn e e dt oa s s i g nd a t aw h i c ht h e yw a n t t oa c q u i r e ,i n s t e a do fu n d e r s t a n d i n gt h e i rd e t a i l so ft h ed i f f e r e n c eo fd a t am o d e l , t h em e t h o d so fd a t ae x t r a c t i o na n ds y n t h e s i s ,a n dd e s c r i b i n gh o wt oa c q u i r et h e s e d a t a b ya c c e s st h es h a r i n gp l a t f o r m sd a t a ,u s e r sc 强r e a l i z et oa c c e s sa l l h e t e r o g e n e o u sd a t a b a s e b a s i n go i lt h ep r a c t i c a la p p l i c a t i o np r o j e c t ,t h ep a p e ra n a l y z e dt h ep o s s i b i l i t y o fs e t t i n gu pt h es h a r i n gp l a t f o r mo fh e t e r o g e n e o u sd a t a b a s e ,s t u d i e dd a t a m a p p i n ga l g o r i t h ma n dm o d e lb a s i n go nx m l , a n dc o m p a r e dw i t ht h et r a d i t i o n a l i n t e g r a t e dt e c h n o l o g yo fh e t e r o g e n e o u sd a t a b a s e c o n s e q u e n t l y a c c o r d i n gt ot h e d e v e l o p m e n tt e n d e n c yo fw e bd a t a b a s e ,t h ep a p e rs t a t e m e n tt h ep l a no fs e t t i n g 叩 h e t e r o g e n e o u sd a t a b a s es h a r i n gp l a t f o r mb a s i n go nb s t h r e el a y e rs k e l e t o no f x m l a tl a s t , y o uc a ni n t e g r a t ea n ds e l e c th e t e r o g e n e o u sd a t ap o o lo nt h e u n i f i c a t i o nx m lv i e wc o n v e n i e n t l y b e c a u s eo f t h es u p e r i o r i t yo fx m ld a t a m o d e l ,t h es y s t e mh a sg o o de x t e n d i b i l i t y k e yw o r d s :x m l ,h e t e r o g e n e o u sd a t a b a s e ,d a t ai n t e g r a t i o n ,d a t as h a r i n g 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者本人独 立完成的。有关观点、方法、数据和文献的引用已在文中指出,并与参考 文献相对应。除文中已注明引用的内容外,本论文不包含任何其他个人或 集体已经公开发表的作品成果。对本文的研究做出重要贡献的个人和集体, 均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承 担。 :z 孙啼 e t期 :2 - 口矿年力月,re l 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文的规 定,即:沈阳理工大学有权保留并向国家有关部门或机构送交学位论文的 复印件和磁盘,允许论文被查阅和借阅。本人授权沈阳理工大学可以将学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印 或其它复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:易参加厂豸指导教师签名: e l 期:知移弓f 日 期: 膨汕 2 - o 口分。乃| x 第1 章前言 1 1 研究的背景和意义 第1 章前言 近几十年来,科学技术的迅猛发展和信息化的推进,使得人类社会所积累的 数据量己经超过了过去的总和,数据的采集、存储、处理和传播的数量也与日俱 增。随着企业规模的不断扩大,企业信息系统的规模也随之扩大,由于实施数据 管理系统的阶段性、技术性以及其它因素的影响,以至于即使在一个单独企业, 每个部门或单位就是一个数据源,每个数据源都可能是异构的,它们构成了企业 的异构数据源。这些异构数据源就像一个个“信息孤岛”,彼此间的共享存在困 难。 解决异构数据库间的数据共享,能加速企业间以部门、业务为核心的信息系 统的集成,形成更广泛更高效的有机整体,提高企业业务处理的速度,拓宽业务 覆盖面,加强企业间的合作与交流。此外,异构数据库共享还可以避免数据库的 异构性带来的数据资源浪费,提高数据资源的利用率。因此,实现异构数据库的 数据共享对于企业信息化的进一步发展具有重大的意义。 解决异构数据库共享的主要途径有三种方式:数据交换,远程访问,数据库 集成。本文正是基于数据库集成技术的方式实现异构数据库的透明、一致和实时 访问。其中透明性是屏蔽底层数据源的差异,让用户感觉数据来自一个大的数据 源;一致性是消除数据源之间存在的结构异构和语义异构;实时性则指访问到的 数据是最新更新过的。数据集成系统中,系统维护一个全局模式,该全局模式是 定义在数据源模式上的虚拟集成视图。用户提交一个全局模式上的查询时,通过 异构数据库系统共享平台中间层,利用a d o 等相关技术访问异构数据源,取得数 据后动态生成x m l 文档,最后通过w e b 服务器将查询的结果发送到客户端。 x m l 是w 3 c 制定的用于描述数据文档中数据的组织和结构安排语言,它具有 系统独立性、强大的数据表现能力、很强的可扩展性和自描述能力。这使得x m l 不仅可用于存储数据,方便的定义数据的结构,并且这一数据及其结构不是基于 二进制的、只能由程序进行解释的代码,而是简单的、可以用任何编辑器读取的 文本,能够使数据以精确的、可供人和机器分析再加工的形式向外界提供。另外, 沈阳理i = 大学硕十学位论文 x m l 技术由包括x m l 、x m ls c h e m a 、x p a t b 以及x q u e r y 在内的一系列规范组成, 这些技术规范为数据的存储、处理和操作x m l 数据提供支持。 根据工作性质的不同,各部门的数据信息侧重面存在较大的差异,不同部门 之间存在的共享需求往往是些基础信息,各部门本身特殊的工作业务信息不需要 或者不适宜在社会上公开。同时,许多单位由于本部门系统安全性考虑不愿让过 多的其他部门用户直接操纵本地数据库。典型的解决方案是:采取局部数据集成 技术在网络信息中心构建互连通讯平台来解决多数据源的连接问题。在网络信息 中心为每一个部门建立一个共享数据库服务器,各部门在属于自己的数据库服务 器上建立自己数据库系统,该数据库系统结构为自身部门系统数据库可以对社会 公开的信息结构,也就是说,各部门把自己能够对社会公开的数据信息( 自身数 据库系统的部分数据) 以及这些数据的组织结构放在网络信息中心的共享数据库 服务器上,各部门通过与网络信息中心各共享数据库的连接来查询其他部门的共 享数据。 各部门根据网络信息中心提供的各服务器连接参数,开发自身的互连共享系 统,该系统要求对其他部门服务器的数据只能进行查询,不能做更改,同时要对 网络信息中心自身部门的共享服务器有相关数据管理功能,比如:从本部门网络 信息数据库中提取收集其他部门需求的信息,发送到网络信息中心本部门共享数 据库,实现本部门数据的对外共享:对网络信息中心本部门共享数据的删除、更 新管理等。 1 2 。论文的研究工作和主要内容 本文的研究工作分为两大部分:即理论探索和应用两大部分。 理论探索部分 在这部分里主要涉及三个方面的理论研究:即数据库共享理论研究,x m l 及 相关技术理论和x m l 文档与关系数据库之间的映射。 应用部分 在理论研究的基础上本文提出采用b s 三层架构模式,基于x m l 的异构数据 库信息共享方案。用户在客户端只需使用w e b 应用程序就可以实现异构数据库的 查询询问。在这个过程中主要实现以下几个方面的功能: 第1 章前言 1 建立全局数据字典,即多数据库系统的全局资料。w e b 中间层服务器把各 异构数据源的共享信息形成统一的资源信息目录提供给用户,在用户面前呈现一 个透明的全局数据库概念。 2 异数据库源局部数据查询的实现。通过一定的措施限制用户的查询范围, 以保护本部门业务不适应公开的业务数据,从而数据的安全控制。 3 中间层数据库的管理与设计。可以根据需要动态设定或更新本部门共享信 息的范围、结构等。 4 获取查询结果并转化成x m l 文档。由于异构数据库结构存在较大的差别, 需要将不同的关系数据模型转化为统一的x m l 数据模型,并以统一的数据格式返 回给用户。 主要内容: 第一章“引言”,介绍本文的研究背景及意义,研究工作和研究内容。 第二章“异构数据库集成”,首先介绍与异构数据库集成的一些相关知,然 后根据当前存在异构数据库的集成方案进行分析。 第三章“x m l 技术基础”,介绍了x m l 相关技术,如d t d ,x m ls c h e m a ;d o m ,s a x ; x p a t h ,x q u e r y ;x s l ,c s s 等。 第四章“关系数据库与x m l 映射技术”。介绍了x m l 向关系数据库以及关系 数据库转化为x m l 文档两种映射技术 第五章“系统实现 。详细介绍了基于x m l 异构数据库的系统集成框架、局 部数据集成实现方案,中间层数据库和局部访问数据库管理以及x m l 文档如何在 客户端显示查询结果等。 第六章“结束语 ,对我们的研究工作进行总结和展望。 沈倪i 理j r 大学硕+ 学位论文 第2 章异构数据库集成 异构数据库是一个既与各种数据库有密切联系,又有别于各种数据库的新领 域:它的研究目标是对地理上分布的多个异质数据库( h e t e r o g e n e o u sd a t a b a s e h d b ) ,在尽可能少地影响本地自治性的基础上,构造具有用户所需的透明性和全 局数据库,以支持对各种数据库的全局应用和各异构数据库之间的信息交换和共 享。异构数据的集成作为解决异构数据共享的一种有效方式,是数据库领域的 经典问题,广泛存在于目前应用系统中,随着x m l 技术的兴起和成熟,成为一个 研究的热点。 在研究异构数据库集成前,先介绍几个基本概念。 2 1 基本概念介绍 异构数据心3 是一个含义丰富的概念,不仅指不同的数据库系统之间的数据是 异构的,如o r a c l e 和s q ls e r v e r 数据库;而且还包括不同结构的数据之间的异 构,如结构化的s q ls e r v e r 数据库数据和半结构化的x m l 数据。 信息集成,模式集成,数据集成这三个概念是相互联系的,不同的概念所研 究的侧重点不同。 信息集成是一个广义的概念,它包含很多分支,例如信息抽取,数据清洗, 模式集成和数据集成等。 模式集成就是把两个或者多个模式集成为一个模式,主要用于( 数据) 模式 设计。有待集成的模式可能是由不同的数据模型表示的,集成过程中,一般先把 它们用公共模型表示,然后识别它们之间存在的各种冲突并加以处理,最后合并 成新的模式。这一过程既可手动完成,也可机器辅助完成。 数据集成是为了实现各个子系统之间的数据共享,有效地利用资源,提高系 统的整体性能。数据集成的理想目标是在分布式环境下给最终用户提供一个单一 系统映像。单一系统映像意味着各子系统之间的相互作用必须透明地进行。透明 即是把的有相互作用的细节向用户隐藏起,使用户把各个子系统看成是个完全 无缝的集成系统口1 。 第2 章异构数据库集成 2 2 异构数据库集成问题 通常数据集成面临以下几个问题“1 异构性 系统异构:数据所依赖的应用系统、数据库管理系统或操作系统之间的不同。 模式异构:数据在存储模式上的不同,存储模式通常包括层次模式、网状模 式、关系模式、面向中对象模型嵋1 。其中关系模式为主流存储模式。同一类存储 模式,它们的模式结构可能也存在着差异。例如o r a c l e 所采用的数据类型与s q l s e r v e r 所采用的数据类型并不是完全一致的。 语义异构:是指对同一现实世界事物进行描述时,数据在表达方式或内容上 的不同1 ,主要包括概念级语义异构和值级语义异构。 完整性 异构数据集成的目的是为应用提供统一的访问支持,因此集成后的数据必须 保证一定的完整性,包括数据完整性和约束完整性两方面。数据完整性是指数据 的正确性,一致性和相容性。约束完整性是指数据与数据之间的关联关系,是唯 一表征数据间逻辑的特征。保证约束完整性是良好的数据发布和数据交换的前 提,可以方便数据处理过程,提高效率。 集成内容限定 多个数据源之间的数据集成,并不是要将所有的数据进行集成,那么如何定 义要集成的范围和权限,就构成了集成内容的限定问题。 语义冲突 信息资源之间存在着语义上的区别,这些语义上的不同可能引起各种冲突, 例如,从简单的命名冲突( 如同名异义,同义异名) ,到复杂的结构语义冲突( 不 同的模式表达同样的信息) ,语义冲突将会使数据集成变得复杂化。所以如何尽 量减少语义冲突也是数据集成的一个研究热点和难点。 安全控制 当异构的d b 被集成到联合使用的系统中以后,要保证原来某一系统中的保密 不能被非授权的用户访问,被纳入到全局模式的各局部数据库不能被其所在场所 的用户随意修改。 以上这些问题是相互联系、相互制约的,不应该简单地孤立对待。 沈陬 理+ r = 大学硕七学位论文 2 3 异构数据库集成分析 2 3 1 数据集成系统的实现方法 目前,人们研究的关于数据集成方案的很多,各不相同,但就其基本方法来 说,大体上可归为两类n 训:仓库法( t h ew a r e h o u s i n ga p p r o a c h ) 和虚拟法( t h e v i r t u a la p p r o a c h ) 。 仓库法:建立一个数据仓库,将参加集成的各数据源的数据副本,按照一个 集中、统一的视图要求,转换成符合数据仓库的模式,并存入数据仓库,同时, 系统将提供对该数据仓库的查询机制。这种方式的优点是既可用于数据集成,又 可用于决策支持;缺点是数据更新不及时、数据重复存储,比较适用于简单系统 中。使用的技术主要涉及如何有效的加载数据,增量维护数据等。结构如图2 1 所示: 图2 1 仓库法集成系统结构 虚拟法:也称为中间件法( m e d i a t o r ) ,在这种方式下,数据存储位置保持 不变,集成系统仅提供一个虚拟的集成视图以及对这个集成视图的查询处理机 制,用户针对集成视图提出查询,集成系统必须将全局查询重写为对各数据源的 查询,然后各数据源根据查询要求自行独立处理。这种方式不需要重复存储大量 数据,数据更新及时,比较适合于高度自治、集成数量多且更新变化快的数据集 第2 章异构数据库集成 成系统,是目前主要的研究方向。虚拟法体系结构中使用的技术与传统的数据服 务器中的技术有着很大的不同,前者采用的技术更多地涉及到查询上的代数操 作,后者采用的技术大部分集中在的查询计算以及与存储有关的问题上( 如数据 的类聚、索引等) 。结构如图2 2 所示: 图2 2 虚拟法集成系统结构 无论是采用仓库法还是虚拟法,数据集成系统都必须考虑以下三个方面的 问题: 数据模型,必须建立公共的数据模型,对来自不同数据源的数据进行表 示,以便于统一处理。 数据转换,将来自不同数据源的数据转换成集成系统能进一步处理的统 一格式。 数据模式,用于解决结构冲突,语义冲突等问题。 本文基于x m l 异构数据集成的研究基于虚拟法( 中间件法) 。 2 3 2 数据集成时的几个技术问题 在设计异构数据集成时通常应考虑以下几个方面的技术问题们: ( 1 ) 全局数据模式及全局查询语言( g l o b a ld a t am o d e la n dg l o b a lq u e r y l a n g u a g e ) 沈研l 理t 大学硕士学位论文 因为联合使用的各局部数据( l d b ) 的模式可能互不相同,通过建立全局数据 模式,使用户感觉就像使用一个单一数据库一样,从而使用户透明地使用异构数 据库。全局查询语句包括数据定义语言( d d l ) 和数据操纵语言( d m l ) ,它是对应于 全局模式的。 ( 2 ) 识别数据匹配性( r e c o g n i z i n gd a t ai n c o m p a t i b i l i t y ) 由于相同的对象在不同的d b m s 中也可能有诸如类型、长度等的不同,因而 在集成局部数据库管理系统时要识别这些不匹配的数据,并在全局数据字典中表 示它们。 ( 3 ) 全局数据字典( g l o b a ld a t ad i c t i o n a r y ) 描述整个网上数据库的定义及分布情况,包括全局表对应的局部表名、局部 表存在的节点名等,它是全局查询的基础。 第3 章x m l 技术基础 3 1x m l 简介 第3 章x m l 技术基础 x m l ( e x t e n s i b l em a r k u pl a n g u a g e 可扩展的标记语言) 是万维网协会( w 3 c ) 提出的一项国际标准,目的是为了补充h t m l 以用于w e b 上的电子数据交换【1 l 】。 与h t m l 相似,x m l 是一种显示数据的标记语言,它能使数据通过网络无障碍地 进行传输,并显示在用户的浏览器上。) ( m l 是一套定义语义标记的规则,这些标 记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用 于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。 关于x m l 要理解的第一件事是,它不只是像超文本标记语言( h y p e r t e x t m a r k u pl a n g l l a g e ,h t m l ) 或是格式化的程序。这些语言定义了一套固定的标 记,用来描述一定数目的元素。如果标记语言中没有所需的标记,用户也就没有 办法了。这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的 标记,但是这样一来就得依赖于软件开发商的选择了。 x m l 是一种元标记语言,用户可以定义自己需要的标记。这些标记必须根据 某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性,创建的标 记可在文档类型定义( d o c u m e n tt y p ed e f i n i t i o n 简称为d t d ) 中加以描述。x m l 定义了一套元句法,与特定领域有关的标记语言( 如m u s i c m l 、m a t h m l 和c m l ) 都必须遵守。如果一个应用程序可以理解这一元句法,那么它也就自动地能够理 解所有的由此元语言建立起来的语言。浏览器不必事先了解多种不同的标记语言 使用的每个标记,读入文档或是它的o t d 时才了解了给定文档使用的标记。 有了x m l 就意味着不必等待浏览器的开发商来满足用户的需要了。用户可以 创建自己需要的标记,当需要时,告诉浏览器如何显示这些标记就可以了。x m l 标记描述的是文档的结构和意义。它不描述页面元素的格式化。可用样式单为文 档增加格式化信息。文档本身只说明文档包括什么标记,而不是说明文档看起来 是什么样的。 沈研1 理一f 大学硕十学位论文 3 1 1x m l 的特点 同h t m l 相比,x m l 有以下几个方面的特点: 1 使用有意义的标记( t a g ) h t m l :给浏览器读取,不能传达数据的语义。 ) ( m l :具有语义。 2 数据的语义与显示方式分开 h t m l :决定数据显示方式的语言。 x m l :描述数据内容的语言,本身并不决定数据该如何显示,数据的显示由 x s l 决定。 3 可自定义的标记 h t m l :标记由少数权威团体制定,种类有限且不能随意添加。 x m l :可由用户按需要增加标记。如数学标记语言m a t f i m l 、财经标记语言 f p m l 、电子商务标记语言e b x m l 等。 4 严格的语法控制 h t m l :语法规则比较多元化,具有较大灵活性。文件结构比较松散,不能很 容易的转换为其他类型格式,比较难用程序来做大量而有效的处理,数据再利用 的潜力大为降低。 x m l :对语法有严格的要求,所有x m l 的文件都必须经过严格的“验证 过 程才算完成,文件格式容易转换。 3 1 2x m l 的优势 x m l 最大的优势在于对各种数据的管理。任何系统都可以通过x m l 的解析器 来读取x m l 数据,因此它的数据可以通行各处,而不用担心系统不支持的问题。 1 数据的检索: i n t e r n e t 上主要的数据检索方式:分类检索和全文检索。检索效率低,或 找不到。x m l 语义标记作为搜索索引,在文件中截取关键部分。所有标记内的数 据都可视为一个元素,而每一个元素都可以作为数据的索引。 2 数据的显示: 第3 章x m l 技术基础 x m l 将数据保存的格式与数据显示的方式分开,使得x m l 文件可以轻易地更 换数据显示的方式,仅需改变x s l 的设置,用户就可以将同一数据制作成h t m l 、 p d f 、w m l ( w i r e l e s sm a r k u pl a n g u a g e ) 、h d m l ( h a n d h e l dd e v i c em a r k u p l a n g u a g e ) 等不同格式,供不同的硬件显示。 3 数据的交换: x m l 语法简单,可以被所有的机器解读,又可以在各种平台上使用,便利x m l 有潜力成为通行四海皆准的标记语言。 x m l 的应用主要有:内容管理、电子邮件的收发与管理、智能型个性化信息 服务、电子商务。 3 2x m l 的相关技术 3 2 1d t d 与x m ls h e m a d t d ( d o c u m e n tt y p ed e f i n i t i o n ) 1 1 2 】和x m ls c h e m a l l 3 】1 1 4 儿1 5 】是目前常用的两 种x m l 模式定义语言。d t d 发展较早相对比较成熟,在短期内还有存在优势。 x m ls c h e m a 结合了原有d t d 和数据库的建模语言而提出的,结构比d t d 复杂, 但比d t d 更具有表现力。 ( 1 ) d t d 描述了一个x m l 文档的语法和词汇表,定义了文档的整体结构以及 语法,规定了一个语法分析器来解释一个“有效的 x m l 文件所需要知道的所有 规则的细节。d t d 原来是为使用s g m l 开发的,它可以是x m l 文档的一部分, 但是它通常是一份单独的文档或一系列文档,其本身并没有一个通用的d t d 。 其标记声明可以是元素类型声明,属性表声明,实体声明,或符号声明。 x m l 提供一种称为文档类型声明的机制,用于定义对逻辑结构的约束,支持 预定义存储单元的使用。文档类型声明指定了文档使用的d t d ,文档类型声明 出现在文档的序言部分,处在x m l 声明之后和第一个元素之前。它可以包括d t d , 也可以标识d t d 所在文档的u r l 。一个合法的x m l 文档必须符合文档类型声明 指定的约束条件,而且它的基本元素必须是在文档类型声明中指明的。 ( 2 ) x m ls c h e m a 是w 3 c 推出的新规范,d t d 的功用很多,例如定义内容模 式,限制范围、属性的数据类型。但它也有一些缺点,采用了非x m l 的语法规则, 不支持多种多样的数据类型,扩展性较差,不支持名称空问( n a m e s p a c e ) 等等。 1 1 沈窿1 理1 :大学硕士学位论文 x m ls c h e m a 是x m l 的一种应用,是将d t d 重新使用x m l 语言规范来定义,从某 种意义上讲正好体现了x m l 自描述性的优点。通过它可以给出x m l 文档的详细明 确的定义,更好地保证了x m l 文档的有效性和严谨性,它将最终替代d t d 成为 数据模式语言的标准1 1 6 1 。与d t d 相比,x m ls c h e m a 具有如下一些优点: ( 1 ) 一致性:s c h e m a 建立在x m l 之上,它的样子和一般的x m l 文件完全相 同,使得x m l 达到了从内到外的完美统一。 ( 2 ) 扩展性:s c h e m a 中引入了丰富的数据类型,它们包括:布尔型,数字, 日期时间,u r l ,整数,十进制数,实数,时间段,等等。而且它还支持由这些 简单的类型生成复杂的类型,以及由用户定义的数据类型( 原型) 。 ( 3 ) 易用性:x m ls c h e m a 取代d t d 的另一个原因要归结于d o m 和s a x ,此 时对于x m l 文档结构的描述已变成为s c h e m a 这种“形式良好的”x m l 文档,可 以方便d o m 和s a x 去访问。 ( 4 ) 规范性:同d t d 一样,s c h e m a 也提供了一套完整的机制以约束x m l 文档中标记的使用,但相比之下,后者基于x m l ,更具有规范性。 ( 5 ) 支持名称空间。 ( 6 ) 互换性:每个人都可根据需要设计适合自己应用的s c h e m a ,并且可以 同其他人交换彼此的s c h e m a 。利用s c h e m a 能够书写x m l 文档,验证文档的合法 性。另外,通过映射机制,还可以将不同的s c h e m a 进行转换,以实现更高层次 的数据交换。 3 2 2d o m 与s a x 随着x m l 越来越广泛地被采用,高效解析x m l 文档也变得越来越重要,尤其 是对于那些要处理大量数据的应用程序。不正确的解析会导致过度的内存消耗和 过长的处理时间,从而有损于应用程序的可伸缩性,因此,选择正确的x m l 解析 方法至关重要。 为了使x m l 应用开发能够独立于x m l 分析器,w 3 c 和x m l d e v 邮件列表成 员分别提出了两个标准应用程序接i :1 :d o m 和s a x ( s i m p l ea p if o rx m l ) 。d o m 和s a x 在应用程序开发过程中所处地位如图3 1 所示。从图中可以看出,应用 程序不是直接对x m l 文档进行操作的,而是首先由x m l 分析器对x m l 文档进行分 第3 章x m l 技术基础 析,然后,应用程序通过x m l 分析器所提供的d o m 接口或s a x 接口对分析结果进 行操作,从而间接地实现了对x m l 文档的访问。这些接口由不同的分析器实现, 但它们必须遵循共同的规范。 三亘 舭分析器 i 。m 接口 l x m l 应用程序 i i一 图3 1d o m 和s a x 接口示意图 d o m 的全称是d o c u m e n t0 b j e c tm o d e l ,也即文档对象模型。在应用程序 中,基于d o m 的x m l 分析器将一个x m l 文档转换成一个对象模型的集合( 通常称 d o m 树) ,应用程序正是通过对这个对象模型的操作,来实现对x m l 文档数据的 操作。通过d o m 接口,应用程序可以在任何时候访问x m l 文档中的任何一部分数 据,因此,这种利用d o m 接口的机制也被称作随机访问机制。该接口提供了一种 通过分层对象模型来访问x m l 文档信息的方式,这些分层对象模型依据x m l 的文 档结构形成了一棵结点树。由于x m l 本质上就是一种分层结构,所以这种描述方 法是相当有效的。 d o m 中的最基本对象结点,从它又派生出许多类型的结点。所有这些结点组 成一棵文件树,它包含了x m l 或h t m l 文档的几乎全部信息。如下所示的x m l 文档,此文档的结点树如图3 2 所示。 z h a n g h o n g z h a n g h o n g 1 6 3 c o m 沈隗1 理1 :大学硕士学位论文 w a n g c h u n w a n g c h u n s i n a c o m t e 】( t 日 图3 。2 结点树 s a x 的全称是s i m p l ea p i sf o rx m l ,即x m l 简单应用程序接口,与d o m 的 主要差异是它们的a p i 结构【17 1 。s a x 包含一个基于事件的回调函数集,而d o m 有一个内存中的树状结构。换句话说,在s a x 中,从不需要操作数据结构。因此, s a x 不提供修改文档的功能,而d o m 正好提供这种功能。另外d o m 提供的访问模 式是一种顺序模式,这是一种快速读写x m l 数据的方式。当使用s a x 分析器对 x m l 文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程 序通过这些事件处理函数实现对x m l 文档的访问,因而s a x 接口也被称作事件驱 动接口。 s a x 的优点是: 可以解析任意大小的文件丽无需把整个文件加载到内存,对内存占有不 会随文件大小的增加而增加。 适合小信息子集。例如:如果只对计算本周图书馆购进的书籍数量或确定 它们的平均价格感兴趣,那么把不需要的全部数据和需要的少量数据一起读入内 存是不必要的。s a x 的一个特点就是可以忽略不感兴趣的数据信息。 简单,s a x 非常易于使用。 然而由于是时问驱动,s a x 也有一些缺点: 第3 章x m l 技术基础 不能对文档作随机存取,必须按照数据提交次序进行处理。 不能把文档当作一个整体来处理,例如:改变文档的结构。 信息在解析过程中会丢失,不能完全从生成的事件中重新生成文档。 难以实现复杂查询,因为必须自己维护含有所需要保留信息的数据结构, 如当前元素祖先的属性。 3 2 3x s l 和c s s 在x m l 文件中,使用的基本上是自定义的标记,浏览器作为一个x m l 文件的 解析器,是无法理解这些标记的,即x m l 中内容和表现形式分离,一个x m l 的源 文件中并没有关于它表现形式的信息。编辑文件,仅仅需要关注文件的内容、信 息的结构,而x m l 文件的显示,则交给c s s ( 叠层样式表) 和x s l ( 可扩展样 式语言) 来完成。这就使得用户可以根据需要来定义数据的表现形式。 虽然x s l 和c s s 都可以用来定义x m l 文件的显示规范,但是它们存在很大 的不同,下面分别介绍这两种s t y l e s h e e t ( 样式表) 语言。 ( 1 ) 用x s l 来表现x m l 首先,x s l 样式是按照x m l 的语法来定义的,本身也是一个x m l 文件( x s l 样式文件示例如下) ,它采用的是转换方式,将一种格式的x m l 转换为另一种( 比 如g i 9 5 码转换为u t f 一8 码) 方式,然后将转换后的输出另存到一个新的档案 或暂存在浏览器的记忆体中,原来的x m l 文档内容保持不变。 x s l 由两部分组成:第一部分描述如何将一个x m l 文档进行转换:第二部 分定义了格式对象( f o r m a t t i n g0 b j e c t ) 。在输出时,首先根据x m l 文档构 建源树,然后根据给定的x s l 将这棵树转换为可以显示的结点树,这个过程称 为树转换,然后再按照f o 分析结果,产生一个可在屏幕或其它媒体输出的结果, 这个过程称为格式化。 其工作原理是:x m l 文件在展开后是一种树状结构( 原始树) ,x s l 处理器 从这个树状结构读取信息,根据x s l 样式的指示对这个“原始树”进行排序、 复制、过滤、删除、选择、运算等操作后产生另一个“结果树”,然后在“结果 树”中加入一些新的显示控制信息,如表格、其他言字、图形以及一些有关显示 格式信息。x s l 处理器根据x s l 样式的指示读取x m l 文件中的信息,然后再重 沈阡 理:f 大学硕士学位论文 新组合后转换产生一个w e l l f o r m e d 的h t m l 表现文件。这样,x m l 文件中的信息 就可以在浏览器上显示出来。 ( 2 ) 用c s s 来表现x m l c s s 在h t m l 中已经有很好作用,而在x m l 中,c s s 同样发挥了它强大的 样式表作用。在x m l 中的c s s 和h t m l 中的c s s 差不多,语法上实际是一样的, 都是通过一些标记来设置标记文字怎样显利1 踟。c s s 的代码实际上是由一些最 基本的语句构成的。它的基本语句的结构是: 选择符 属性:属性值) 例如: h 1 f o n t - s i z e :1 2 p t ; f o n t - w e i g h t :b o l d ; c o l o r :b l u e ; c s s 来自完全不同的理念,是一种静态的样式描述格式,本身不遵循x m l 的语法规范,不含任何转换动作,只针对x m l 文件中各个成分的外面属性一一加 以设定,浏览器便按照c s s 样式里的批示,将x m l 文件呈现为设定的样式。整 个过程中没有任何新代码产生,它配上c s s 、e c m a s c r i p t 和d o m 可以营造出类 似d h t m l 般的动态效果。 3 2 4x p a t h 和x q u e r y ( 1 ) 3 5 1x p a t h 简介 x p a t h 即为x m l 路径语言( x m lp a t hl a n g u a g e ) ,是在1 9 9 9 年1 1 月1 6 日与 x s l t 一起成为正式标准的。它是一种用来确定x m l 文档中某部分所在位置的语 言。给x s i _ t 和x p o i n t 提供一个共同、整合的定位语法,用来定位x m l 文件中 各个部位。x p a t h 除了提供一套定位语法之外,还包括一些函数,它们提供基本 的数字运算、布尔运算和字符串处理功能。 常用的符号及其功能如下: 第3 章x m l 技术基础 1 如果路径以斜线开始,表示该路径是到一个元素的绝对路径;如果以 双斜线开头,则表示选择文档中所有满足双斜线之后规则的元素;多个路 径可以用分隔符l 合并在一起。 2 星号木表示选择所有由星号之前的路径所定位的元素;方括号里的表达 式可以进一步指定元素,其中数字表示元素在选择集里的位置,而l a s t ( ) 函数则 表示选择集中的最后一个元素。 3 属性通过前缀 来指定,属性的值可以被用来作为选择的准则, n o r m a l i z e - s p a c e 函数删除了前面的尾部的空格,并且把连续的空格串替换为一 个单一的空格。 4 c o u n t ( ) 函数可以计数所选元素的个数;n a m e o 函数返回元素的名称, s t a r t - w i t h o 函数在该函数的第一个参数字符串是以第二个参数字符开始的情况 返回t r u e ;c o n t a i n s ( ) i 函数当其第一个字符串参数包含有第二个字符串参数时返 回t r u e ;s t r i n g - l e n g t h ( ) 函数返回字符串的字符数。 5 。c h i l d 轴( a x i s ) 包含上下文节点的子元素,作为默认的轴,可以忽略不写; d e s c e n d a n t ( 后代) 轴包含上下文节点的后代,一个后代是指子节点或者子节点的 子节点等,因此d e s c e n d a n t 轴不包含属性和命名空间节点;p a r e n t 轴( a x i s ) 包含 上下文的父节点;a n c e s t o r 轴( a x i s ) 包含上下节点的祖先节点,该祖先节点由其 上下文节点的父节点以及父节点的父节点等等诸如此类的节点构成,所以 a n c e s t o r 轴总是包含有根节点,除非上下文节点就是根节点本身;f o l l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论