(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf_第1页
(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf_第2页
(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf_第3页
(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf_第4页
(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于xml技术的数据管理系统的研究.pdf.pdf 免费下载

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

文档简介

河北工业大学硕士学位论文 基于x m l 技术的数据管理系统的研究 摘要 解决不同应用程序之间的数据共享和交互问题,提高应用程序的通用性,便于应用程 序的升级,以降低应用程序的开发成本是数据管理系统研究的个重要内容。本文提出了 基于x m l 技术的数据管理系统,从数据层面上解决数据的共享与交互问题。 在本数据管理系统中,应用x m l 文档对应用程序中的数据进行描述,通过x m l 技术 特有性能,实现了应用程序照好的通用性和可扩展性。 研究了在v c + + 开发平台下,实现在c + + 应用程序中对象实例数据与x m l 文档数据 的交互操作,分析了其中两个基本操作:打包和解包。主要研究了如何使这两个操作具有 很好的通用性能。 本文还具体探讨了基于x m l 文档的存储方法,从x m l 文档到关系型数据库,对基于 路径分析的x m l 文档的存储方法( x r e l ) 进行了较为详细的研究。 本文最后,讨论了数据管理系统在实例系统f t a s ( 故障树分析系统) 中的具体应用。 关键词:数据管理系统,x m l ,数据绑定,存储策略,路径分析 苎三兰墼茎查盟茎塑笪墨歪垫堕竺茎 r e s e a r c h i n gad a t am a n a g e m e n ts y s t e m b a s e do nx m l a b s t r a c t i ti si m p o r t a n tf o rad a t am a n a g e m e n ts y s t e m ( d m s ) t os h a r ea n de x c h a n g ed a t ai nd i f f e r e n t a p p l i c a t i o n s a sar e s u l t ,t h ee f f i c i e n c ea n dm a i n t e n a n c eo f s o f t w a r ec a r lb ei m p r o v e d i nt h i s p a p e r ,ad a t am a n a g e m e n ts y s t e mb a s e do nx m lt e c h n o l o g yi ss t u d i e da n di tc a nr e s o l v et h e p r o b l e m i nd a t al a y i nt h i sd m s ,t h ed a t ao f a p p l i c a t i o n sc a nb ed e s c r i b e di nx m ld o c u m e n t b e c a u s eo f t h e c a p a b i l i t yo fx m l ,t h ec u r r e n c ya n de x p a n s i b i l i t yo fa p p l i c a t i o n sc a nb ei m p r o v e d i nt h i sp a p e r ,i ti sr e s e a r c h e dt h a th o wt 0i m p l e m e n tt h ef o r m a tc o n v e r s i o nb e t w e e nc + + o b j e c t si n s t a n c ea n dx m ld o c u m e n t si nv c + + f l a t t w oo p e r a t i o n s ( p a c ka n du n p a c k ) a r e a n a l y s e di nd e t a i l i ti sr e s e a r c h e dm a i l yt h a th o wt oi m p l e m e n tt h ec u r r e n c yo f t h e m t h i sp a 口e rd i s c u s s e st h em e t h o d st h a tt l o wt os t o r et h ex m ld o c u m e n t o n et h a tb a s e do r l p a t ha n a l y s i s ( x r e l ) i sr e s e a r c h e di nd e t a i l a tl a s t ,a ni n s t a n c es y s t e m ( f a t s ) i sp u to u tt op r o v et h ev i r t u eo f t h ed m sw h i c h r e s e a r c h e di nt h i sp a p e r k e y w o r d s :d m s ,x m l ,d a t ab i n d i n g ,s t o r i n gs t r a t e g y ,p a t ha n a l y s i s 河北工业大学硕士学位论文 第一章绪论 卜1 研究背景 随着计算机科学技术的不断发展进步,我们开发出了越来越多的r 具软件帮助川户简化工作,以提 高:i :作效率,使用户进入了前所未有的信息化时代。但是,正是这种信息化给软件开发人员提出了前所 未有的挑战。 ( 1 ) 数据不能进行有效的交换和共享。 由于二i i 具软件的多样化,以及应用系统的综合化,不同应用程序中或同一系统中的不同模块中产生 的数据结构可能备不相同,使得数据不能进行有效的交换干共享,为信息的共享与交流造成了障碍。 ( 2 ) 费用较高,不能对成本进行合理的控制。 由丁,箨应用程序或各系统模块中的数据结构有所不同,要对这些结构不同的数据进行操作和通信 的话,就需要建立相应的接口模块。这样使得软件开发的很大一部分成本、费用以及精力。可能就要浪 费在不同数据格式的相互转换上。 ( 3 ) 通用性差,不便于再次开发。 工具软件越来越多,如果各个工具软件都无法与其他的工具软件进行数据共享,这就会大大限制用 户的使用。反之,如果应用程序产生的数据文件,可以在其他开发平台进行开发或可以由其他应用程序 进行操作的话,就可以大大提高应用程序的应用面,方便婿户的使 。 ( 4 ) 系统扩展性著。 由于没有统一的数据格式,导致新旧系统不能有效联接,从而造成资源的浪费。对于那些已经有开 发经历的用户,当他们选择我们开发的更先进的1 二具软件时,他们当然希望以前的 :具软件中产生的数 据结果,仍然能用于新的工具软件中。这就要求我们开发的l :具软件对其他格式的数据具有良好的识别 功能,能够进行良好的格式转换操作,从而方便用户的再次开发。 为了解决上述儿方面的问题,我h j 可以采取应_ i jx m l 技术的数据存储方法。可以将麻h 面向对象 思想开发的应用程序中所成生的数据,以x m l 格式进行表现。应用x m l 技术,我们可以解决以下软 件开发中遇到的问题: ( 1 ) 存盘数据的版本问题 存盘数据的格式是经常变化的。随着应用程序的升级大量的旧版本应用程序生成的数据文档都变 得不可读。软件厂商花了不少的力气,来解决所谓的数据格式的兼容问题。使用x m l 来存储数据,可 以从根本上解决这个这个问题。 l 慕于x m l 技术的数据管理系统的研究 x m l 是自描述数据。x m l 基本上使_ j 的是非常简单的数据格式。可以用1 0 0 的纯a s c i i 文本来 书写也可以削几种其它定义好的格式来书写。a s c i i 文本是儿乎不会“磨损”的。丢失一些字:常甚至 是相当多的字m 剩f 的数据还是可以读取的。这就与许多格式形成了鲜明的对比,如压缩数据或是串 行的j a v a 对象,这些数据即使丢失一个字节,剩余的数据也变得不可读取了。 ( 2 ) 应刷程序问的数据交换问题 x m l 有很好的规格文档。w 3 c 的x m l l 0 规范和大量的论文书籍都向人们准确的说明如何来阅 读x m l 数据。x m l 使用的是非专有的格式,不受版权、专利、商业秘密或是其它种类的知识产权的 限制。x m l 的功能是非常强大的同时对于人类或是计算机程序来说,都容易阅读和编写冈而成为 交换语言的首选。 ( 3 ) 结构化的数据组织 x m l 的数据是结构化的,有很强的表达能力,因而对于犬型和复杂的文档是理想的。它能方便的 表达嵌套和递1 的数据,能将数据组织成规则的层次结构。 ( 4 ) 组件之间的通信 用x m l 格式表示组件之间的通信数据,人大增加了系统的灵活性和扩展性。 首先,用x m l 描述组件接口的数据,大大提高了接口的扩展性。组件可以在不中断对外服务的情 况下,实现升级。 其次,x m l 表达数据的能力远远超过了接口定义语言( i d l ) ,它可以表达任意复杂的数据结构。 x m l 用元素和属性表达数据元素又可以包含任意多的子元素。冈而,x m l 文档就具有了天然的层次 结构。而在i d l 中,表达递归嵌套的结构往往是困难的。而且。x m l 具有很好的可读性。用x m l 描 述的数据结构清晰、直观。即使是对于从未接触过x m l 的人来说,也是非常容易理解的。 冈而,x m l 作为人类积计算机都易于理解和处理的数据存储格式,可以在备种数据库之间起数据 移动的枢纽作用。其自身多节点层次性的数据结构,适宜于面向对象语肓( c + + ,j a v a 等) 调用x m l 编 程接1 2 1 访问数据。而存于诸如关系数据库或面向对象数据库的数据,可经过转换并以x m l 数据形式在 网上( 局域网或因特网) 发布,并交换数据,经应用层处理后继而可重新存入库。 目前,应用程序对x m l 文档的操作方法主要有三种形式:d o m 模型,s a x 模型以及数据绑定方 法: f i ) d o m ( 文档对象模型) 规范是由w 3 c 分布的结构化文档处理技术的一个巨人b 跃。这个规 范为处理存储在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 ,可扩展标记语言) h t m l ( h y p e r t e x tm a r k u p l a n g u a g e ,超文本标记语言) 和其他包含结构化信息的文档中的信息提供了一组标准编程接口a 利用 d o m 应崩程序编程接口( a p i ) ,应用程序的编稃人员就可以把代码编写到一空开通用的方法中去,这组 方法可以在各种d o m 中实现。 在用d o m 耗费较长时间解析x m l 文件以后,你可能注意到在用d o m 处理大型文件时,其性能 下降的非常厉害。这个问题是由d o m 的树结构所造成的:这种结构占用的内存较多,而且d o m 必须 在解析文件之前把整个文档装入内存。在采用d o m 之后性能受到严重影响的情况f ,s i m p l ea p if o r x m l ( s a x ) 技术悄然兴起。 2 河北工业大学硕e 学位论文 f 2 ) s a x ( s i m p l ea p if o rx m l 刚t - x m l 的简单a p i ) 最初是由d a v i dm e g g i n s o n 采用j a v a 语言开 发的,之j 亓s a x 很快在j a v a 开发者中流行起来。不同丁其他大多数x m l 标准的是,s a x 没有语言开 发商必须遵守的标准s a x 参考版本。因此,s a x 的不同实现可能采用区别很大的接口。不过,所有的 这些实现至少有一个特性是完全一样的,这就是事件驱动。 ( 3 ) 应用数据绑定技术同样也可以实现应用程序对x m l 文档的访问,目前j a v a 对象绑定到x m l 文 档主要有以f 儿个成熟的方法: j a x b 2 ( j a v a a r c h i t e c t u r ef o rx m lb i n d i n g ,j a v a 结构绑定到x m l ) 类生成器: 包含在刚丁j a v a 的o r a c l el o gx m l 开发人员: 具包( x d k ) 产品版中的j a x b 类生成器- 是一 个用于从x m l 模式生成j a v a 类的编译器。( 可以使闱o r a c l ej d e v e l o p e r1 0 9x m l 模式编辑器构建 x m l 模式。) j a x b 类生成器代替了o r a c l e 9 ix d k 中的模式类生成器t 它生成表示x m l 模式中各 种元素 i ic o m p l e x t y p e 声明的j a v a 类( 用丁x m l 绑定的j a v a 体系结构即j a x b ,是一种用于将 x m l 模式绑定到j a v a 代码表示的技术) 。然厉,j 2 e e 开发人员就可以使用j a x b 类生成器生成的 j a v a 类,米构建符合x m l 模式的x m l 文档了。 c a s t o r 3 1 c a s t o r 是e x o l a bg r o u p 下面的一个开放源代码的项目,它主要实现的是o r 映射功能。它主要a p i 和数据接口为:j d o 1 i k e ,s q l ,o q l ,j d b c ,l d a p , x m l ,d s m l 。它支持分布式目录事务处理,提供处 理x m l 、d i r e c t o r y 、x a d i r e e t o r y 的类库,提供从x m l 到j a v a 类的转换机制。 z e u s l 4 l z e u s 可以将j a v a 对象与x m l 文件进行绑定,绑定使数据在j 2 e e 中的虑州更加方便。 虽然,j a v a 麻h j 程序中实现对象到x m l 文档的数据绑定有了上述这些较为成熟的应刖技术,但其 他应用程序如c + + 等,还未有成熟的与x m l 进行交互的技术。因而,将c + + 与x m l 技术进行结合, 是当前应用程序开发过程中还有待考虑的。 鉴于x m l 技术可以解决软件开发过程中所出现的一些问题,又x m l 技术有了一些较为成熟的技 术,因而本文提出了设计并实现一个基于x m l 技术的数据管理系统。 卜2 课题研究工作 随着面向对象技术的不断发展上j | j ;= l 茄成熟,现在的程序开发多采川面向对象的思想与技术t 冈而本 文设计的基于x m l 技术的数据管理系统亦采用面向对象的设计模式。为了提高系统的通用性以及可扩 展性,该系统将利用x m l 技术的优势进行系统的开发。本课题就应用程序对x m l 文档的访问方法, x m l 文档如何实现到关系型数据库中快速高效的存储方法研究,以及根据x m l 技术的特性来实现数 据格式的转换苒几方面,具体进行了基于x m l 技术的数据管理系统的设计、实现以及关键技术的研究、 改进与实现。 首先,本文对应用程序访问x m l 文档的方法进行了具体而深入的研究,研究了应用d o m 模型以 3 基十x m l 技术的数据管理系统的研究 及s a x 模型实现对x m l 文档访问方法的实现,这两种方法都是在应用程序较为关心x m l 文档结构的 情形卜较为合适,并符有千秋。而当,应用样序并不很关心x m l 文档的绢织结构,而是较为关注x m l 文档中的数据时,戍用数据绑定的方法实现应用程序与x m l 文档的交互,就较为可行。 本文所要实现的是一具有通用性和扩展性能的数据管理系统。在本文设计的系统中,较为关心如何 对x m l 文档中数据的操作,即如何实现应用程序对x m l 文档中的有用数据进行访问与操作。所以, 本文重点研究并讨论了应用数据绑定的方法,来实现应用程序对x m l 文档的访问与操作。 目前x m l 技术与j a v a 技术结合的较为紧密,有许多较为成熟的方法可以直接鹿川丁x m l 文档与 j a v a 对象的数据绑定操作,如j a x b ,z e u s ,c a s t o r 等。但x m l 文档与c + + 对象等其他对象的数据绑 定操作,还没有有效的方法实现。在本文中,讨论了一种c + + 数据对象与x m l 文档的应用数据绑定的 方法实现数据交互的方法,并对其进行了改进,使其具有了良好的通埘性,并将该方法应用丁设计的数 据管理系统中,从而很好的扩展了应用程序的通用性能,提高了廊刚 g 序的效率。 然后,本文继续讨论如何对丁麻崩群序中所产生的数据进行存储以及管理。由丁本文设计的数据 管理系统中的中间数据均为x m l 文档,如何将这些x m l 文档进行有效的存储与管理是本文涉及的另 一个较为重要的问题。在本文设计的数据管理系统中,是应用关系型数据库管理系统米存储系统中产生 的x m l 文档的。这是因为关系型数据库系统以其成熟的数据库管理技术、数据索引笛技术使其在数 据库技术中处丁主导地位。随着面向对象的程序开发技术的不断发展与成熟,也开发出了一系列的对象 型数据库的麻_ 【 j 技术,但是由于面向对象型数据库的技术还很不成熟,所以,它的存储管理数据的效率 还不及关系型数据库。因而,本文主要研究了将x m l 文档存储到关系型数据库的方法。 本文设计的数据管理系统,x m l 文档用来实现对对象实例的描述,具有严格的层次结构,与关系 型数据库数据格式有一定芹距。因而,如何将x m l 文档数据存储到关系型数据库中,就成为本文所耍 讨论的另外一个重点内窖。本文讨论了几种主要的x m l 文档到关系型数据库系统的存储方法。并详述 了基丁路径分析的存储方法:x r e l i s 方法,并将其应用于所设计的数据管理系统中。 基于x m l 技术的特性,本文还对应用程序中数据格式的转换进行简单的研究。 最屙,本文介绍了实例系统( f a t s 故障树分析系统) 中该基于x m l 技术的数据管理系统的具 体应川。 卜3 论文组织结构 第一章,绪论扼要的说明了研究背景,以及耍解决的主要问题:对象型数据与x m l 文档数据的 映射实现以及x m l 文档到关系型数据库中存储的方法的研究。 第二章,讨论了一些相关的理论知识以及应用技术。这将涉及到如i - 几个方面:面向对象的技术, x m l 技术优势,以及数据绑定技术等。 第三章,冗体研究了基于x m l 技术的数据管理系统的没计与实现,并研究了所应川的荚键技术, 提出了一些行z 有效的解决思想与改进方案。 4 基于x m l 技术的数据管理系统的研究 及s a x 模型实现对x m l 文档访问方法的实现这两种方法都是在麻用群序较为关心x m l 文档结构的 情形f 较为台适,弗各有千秋。而当,麻用程序并一i 很关心x m l 文档的组纵结构,而魁较为关注x m l 文档中的数据时,应川数据绑定的方法实现应用槲序与x m l 文档的交h 就较为可行。 本文所要实现的是一具有通用性和扩展性能的数据管理系统。在本文设计的系统中,较为关心如何 对x m l 文档中数据的操作即如何实现应用程序对x m l 文档中的有j = | j 数据进行访问与操作。所以, 本文重点研究并讨论了应用数据绑定的方法,米实现应用程序对x m l 文档的访问与操作。 目前x m l 技术j jj a v a 技术结合的较为紧密。有许多较为成熟的方法可以直接应用于x m l 文档与 j a v a 对象的数据绑定操作,如j a x b z e u s ,c a s t o r 等。但x m l 文档与c + 十对象等其他对象的数据绑 定操作,还没有有效的方法实现。在本文中,讨论了一种c + + 数据对象与x m l 文档的应用数据绑定的 方法实现数据交互的方法,并对其进彳亍了改进,使其具有了良好的通用性,卉。将该方法应用于设计的数 据管理系统中,从而很好的扩展了应用程序的通用性能,提高了廊用程序的效率。 然后,本文继续讨论如何对于应用程序中所产生的数据进行存储以及管理。由于,本文设计的数据 管理系统中的中间数据均为x m l 文档,如何将这些x m l 文档进行有效的存储与管理是本文涉及的另 一个较为重要的问题。在本文设计的数据管理系统中是应川关系型数据库管理系统来存储系统中产生 的x m l 文档的。这是因为关系型数据库系统以其成熟的数据库管理技术、数据索引等技术,使其在数 据库技术中处丁主导地位。随着面向对象的程序开发技术的不断发展与成熟,也开发i _ 1 了一系列的对象 型数据库的应用技术,但是由于面向对象型数据库的技术还很坷i 成熟,所以它的存储管理数据的效率 还不及关系型数据库。因而本文主要研究了将x m l 文档存储到关系型数据库的方法。 本文设计的数据管理系统,x m l 文档用来实现对对象实例的描述,具有严格的层次结构,与关系 型数据库数据格式有一定菇距。因而,如何将x m l 文档数据存储到关系犁数据库中,就成为本文所要 讨论的另外一个重点内容。本文讨论了几种主要的x m l 文档到关系型数据库系统的存储方法,并详述 了基于路径分析的存储方法:x r e l 5 1 方法并将其应用丁所设计的数据管理系统中。 基于x m l 技术的特性,本文还对廊用程序中数据格式的转换进行简单的研究。 最后,本文介绍了实例系统( f a t s 故障树分析系统) 中。该基tx m l 技术的数据管理系统的具 体应f ;1 。 卜3 论文组织结构 第一章,绪论扼要的说明了研究背景,以及耍解决的主耍问题z 对象型数据与x m l 文档数据的 映射实现以及x m l 文档到关系型数据库中存储的方法的研究。 第二章,讨论了一些相关的理论知识以及应用技术。这将涉及到如f 几个方面:面向对象的技术, x m l 技术优势,以及数据绑定技术等。 第三章,t f ;i _ 体研究了基于x m l 技术的数据管理系统的鲢计与实现,井研究了所席h 的关键技术, 提出了一些行之有效的解决思想与改进方案。 提山了些行之有效的解决思想与改进方案。 4 河北1 _ 业人学钡 + 学位论文 第四章,以故障树分析软件为例,进行本文所设计的数据管理系统的应用说明,从实践的角度上证 明该管理系统的可行性以及高效性。 第而章,对上面的i :作加以总结,并提出了今后的研究方向。 龋于x m l 技术的数据管理系统的州究 2 - 1 1 面向对象数据模型 第二章理论知识与相关技术 2 - 1 面向对象技术 所谓对象,至今仍无确切的定义,也很难给山确切的定义。那么什么是对象? 答案:任何衷两! 粗 略地讲,一个对象对应着e r 模型中的一个实体。面向对象模型的基础是将一个对象的相关数据和代码 封装为一个单元。在概念上,一个对象和系统其余部分的所有交互都要通过消息。因此,对象和系统其 余部分的接口定义为一个允许的消息的集合。 一般来讲,一个对象有如下相关内容: 夺 一个包含对象数据的变量集台。 夺一个对象所响应的消息集合:每个消息可能有零个、一个或多个参数。 夺 一个方法集合:方法是实现一个消息的代码段,个方法返同一个值作为对消息的响应。 在面向对象系统中方法通过消息来调用。消息一词指的是不考虑特定实现细节情况f ,对象间请 求的传递。严格米讲,在面向对象模型中,实体的任何属性都必须表示为相虑对象中的一个变虽和一对 消息,变量_ 【 j 米保存属性的值,一对消息中其中一个用来读取属性值,另外一个用来更新这个值。不过, 为了简单起见,很多面向对象模型允许对变量直接进行读取和更新,而不用定义消息去读写它”j 。 应埘程序中通常有很多相似的对象,我们所说的相似,是指它们响应相同的消息、使用相同的方法、 并且有相同的名称和类型的变量。对每个这样的对象进行单独定义是很浪费的因此,我什j 将相似的对 象分组形成一个类,每个这样的对象称为类的个实例。类是描述对象的抽象数据结构。不过,除了具 有抽象数据结构的特征之外类的概念还有另外一些特征。为了表示这些特征,我仃j 将类本身看作一个 对象。一个类对象包括:一个集合变景,它的值是该类的所有实例对象所组成的集合。对消息n e w 实施一 个方法t h j 以创建类的一个新实例。 在面向对象系统中,每一个对象都有一个标识符( i d e n t i f i e r ) ,叫做对象i d 或o i d 。对象标识符是 唯一的也就是说,每个对象具有单一的标识符,并且没有两个对象具有相同的标识符。因此,通过识 q o i d 可以识剐对象。对象标识符可以由系统自动生成。也可以根据需要由程序产生符合实际需求的标 识符。 面向对象数据模型是由类构成的层次结构,类是对一类对象的抽象类与类之间的继承关系构成类 的层次结构。 6 河北1 = 业大学硕士学位论史 2 - 1 - 2 面向对象数据模型的优点 面向对象的数据模型具有自己独特的优点j : ( 1 ) 面向对象模型支持“聚合”与“概括”的概念,更好地处理多媒体数据等复杂对象的结构语义。 ( 2 ) 面向对象模型支持抽象数据类型和用户定义的方法,便于数据库系统支持定义新的数据类型和 操作。 ( 3 ) 面向对象系统的数据抽象、功能抽象与消息传递的特点使对象在系统中是独立的,具有良好的 封闭性,封闭了多媒体数据间的类型及其他方面的巨大差异,并且容易实现并行处理也便于系统模式 的扩充年修改。 ( 4 ) 面向对象系统中实体是独立丁值存在的,冈而避免了关系数据库中讨论的各种异常。 ( 5 ) 面向对象系统的对象类、类层次和继承性的特点,不仅减少了冗余和由此引起的一系列问题, 还非常有利于版本控制。 ( 6 ) 面向对象系统的查询语言通常是沿着系统提供的内部固有联系进行,避免了大量商询优化丁作。 2 1 - 3 类的设计 类i ,又称为对象类,是从设计的角度出发对对象的进一步抽象和描述。它由数据变量和使_ ;l j 这些 数据变量的操作两部分构成,数据变量用予表示对象属性的类型,操作硝于表示对象行为的方法。类分 为具体类和抽象类,抽象类的实例是具体类,具体类的实例是对象。面向对象软件系统是由一些通过关 联组合在一起的类构成的系统,当系统运行时,类及其之间的关联被实例化为具体的对象及其之间的关 联,因而形成了一个由众多的通过关联联系在一起的对象构成的实际运行系统。 在面向对象方法中,类、对象和事物等概念之闻的关系如图2 1 所示。 面向对象而向对象 分析模型设计模型 问题空闸 每习p 描述舟叫 属性 r 被描述舟叫数据变量 萼辛 被实例化 被垂例化 圈2 1 面向对象方法中的事物、对象和类之间的关系 f i 9 2 1 t h er e l a t i o n so f t h i n g s ,o b j e c t sa n dc l a s s e s i nt h eo r i e n to b j e c tm e t h o d 7 基十x m l 技术的数据管理系统的研究 2 - 2x m l 技术优势 x m l 发展的时间虽然不是很长,但是已给信息社会带来了革命性的影响。x m l 作为数据交换和网 络计算的基础,将无可非议地成为网络通用的语言。通过x m l 来表达知识、传递数据,不仅跨越了平 台( x m l 具有天然的与平台无关性) ,还跨越了空i 司( i n t e r n e t 的范围扩展到无线) ,更跨越了设备( x m l 的 数据与表现的分离可以成为不同终端间交换信息的载体) 。 2 - 2 1 什么是x m l x m l ”l ( e x t e n s i b l em a r k u pl a n g u a g e 的缩写,意为可扩展的标记语言) 是一套定义语义标记的规则, 这些标记将文档分成许多部分并对这些部分加以标记。它是元标记语言,即定义了用于定义其他与特 定领域有关的、语义的、结构化的标记语言的句法语言。 2 - 2 2x m l 技术规范 w 3 c 在1 9 9 8 年2 月发布了x m l l 0 建议,该建议严格规定了规x m l 应遵循的语法规则, 下面是该建议规定的一些常用语法规则1 : ( 1 ) 文档必须包含版本声明 ; ( 2 ) 所有的元素必须有开始标记和结束标记,除非它是空元素: ( 3 ) 所有的空元素必须在开始元素的结尾包含一个空元素标识符,即一个反斜杠; ( 4 ) 所有的属性值必须用单引号或双引号括起来; ( 5 ) 元素必须被正确的嵌套:元素的开始和结束标记之间不能互相重叠; ( 6 ) 元素是人小写敏感的; ( 7 ) 整个文档只能有一个称为根的元素: 当一个x m l 文档遵守x m l i 0 所规定的语法规则时被认为是格式良好的。实际上,由定义可知, 所有的x m l 文档都是格式良好的。如果一个文档不是格式良好的,它就不是一个x m l 文档。x m l 文 档严格的文档格式要求好处在于增强了文档间的互操作性,因为所有与x m l 说明规范兼容的文档都能 解析得到同样的嵌套元素结构。 x m l 语义:x m l 是基于文本、简单、易于扩展的它给了开发者定义自己标记的白由,这样开发 者就可以给标记赋予明显的语义信息。如标i a ,一般情况下人们一看到它自然就想剑创作某样 东西的人。而h t m l 标记却是由一套很少变化的词汇表组成,一般人不能随意扩展h t m l 标记集,要 想拥有新功能,除了等待浏览器厂家支持外别无他途。且有限的h t m l 标记也不能满足各类开发者的 8 河北工业大学顺士学位论文 需求,如现有h t m l 标记就没有像 这样拥有丰富语义信息的标记。开发者可以为不同的廊_ j 类 型创建一套专j j 的标记集,不同的标记集可以拥有相同的元素或属性名,x m l 利川名字空间米区分。 然而每一套标记集都必须符合x m ls c h e m a t ” ( x m l 模式) 。 这种自由可能导致相同的应用类型却分别由不同的人或组织制定了两套不同的标记,这就妨碍了 x m l 文档数据的交换和互操作;w 3 c 采用x s l t b3 1 ( 扩展风格语言变换) 解决了这个问题,它采用模板的 方式,把一个文档中与模板匹配的数据抽取出来。然屙插入到输出的模板中,x s l t 的工作原理在某种 程度上类似7 - s q l 语言。其实x s l t 的功能不仅仅是进行x m l 文档到x m l 文档间的转换,它也可用 于从x m l 文档到h t m l 文档或从x m l 文档到x h t m l 文档或从x m l 文档到纯文本文档的转换等。 此外,x m l 文档还不能在浏览器中像h t m l 文档那样显示,因为浏览器不可能n 二确处理用户自定 义的标记。针对这一问题,w 3 c 协会规定x m l 文档在最终输出到浏览器之前必须采用样式单( s t y l e s h e e o ,如级联式样式单c s s ( c a s c a d i n gs t y l es h e e t s ) 或x s l t r a n s f o r m a t i o n ( x s l t ) 来指定x m l 文档的表 现样式。 2 - 2 - 3x m l 的优点 x m l 语言可以让信息提供者根据需要,自行定义标记及其属性名,结构化地描述信息内容,从而 使x m l 文件的结构可以复杂到任意程度。良好的数据存储格式、可扩展性、高度结构化、便_ 丁i 网络传 输是x m l 四大主要特点”l 。x m l 给基于w e b 的应用软件赋予了强大的功能和灵活性,它给开发者平 用户带来了许多好处。 ( 1 ) 更有意义的搜索 数据可被x m l 唯一标识。没有x m l ,搜索软件必须了解每个数据库是如何构建的,而这实际上 是不可能的,闻为每个数据库的描述数据都是不同的。有了x m l ,1 籍就可以很容易以标准的方式按 照作者、标题、i s b n 序号或其他的标准分类。搜索书籍就变得十分方便。 ( 2 ) 开发灵活的w e b 应用软件 数据一旦建立,x m l 能被发送到其他应用软件、对象或者中间层服务器做进步处理。或者发送 到桌面州浏览器浏览。x m l 和h t m l ,脚本,c o m ( c o m p u t e ro b j e c tm o d e l ,组件对象模型) 等一起为 灵活的三层w e b 应用软件的开发提供了所需的技术。 ( 3 ) 不同数据源的集成 现在搜索多种不兼容的数据库实际上是困难的。x m l 能够使不同来源的结构化的数据很容易的结 合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其他应用处来的数据进行集成。然后, 数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。 ( 4 ) 描述多种应用得到的数据 x m l 的可扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的w e b 页到数据记 录。同时,由于基3 - x m l 的数据是白我描述的数据不需要有内部描述就能被交换和处理。 ( 5 ) 本地计算和处理 9 基于x m l 技术的数据管理系统的研究 x m l 格式的数据发送给客户后,客户可以_ f j 虑_ 【 j 软件解析数据并对数据进行编辑和处理。使川者 可以用不同的方法处理数据,而不仅仅是显示它。x m l 文档对象模型( d o m ) 允许州脚本戏其他编群语 言处理数据。数据计算不需要回到服务器就能在本地进行。分离使用者观看数据的界面,使用简单灵活 开放的格式,可以给w e b 创建功能强大的应用软件。而这些软件原来只能建立在高端数据库上。 ( 6 ) 数据的多样显示 数据发送到客户后能够用多种方式显示。通过以简单开放扩展的方式描述结构化的数据,x m l 补充了h t m l ,被厂泛的用来描述使用者界面。h t m l 描述数据的外观,而x m l 描述数据本身。由丁 数据显示与内容分开,x m l 定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的 数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。c s s 和x s l ( e x t e n s i b l es t y l e l a n g u a g e ) 为数据的显示提供了公布的机制。 x m l 相对于其它各种信息存储技术的优越性“: ) ( m l 用一种优美、可扩展的方法来结构化文档:相对于目前各种信息存储技术而言,x m l 是以一种不 同的数据表达格式来存储数据的新技术。与数据库、文本文件等传统的信息存储技术相比,x m l 只有以 下优点i : ( 1 ) x m l 是开放的标准,允许开发人员创建属于自己的标记结构来存储信息。 ( 2 ) ) c m l 文档的解析是已经定义好,且得到了广泛实现,因此在各种环境中从x m l 文档中检索信息 是一件容易的事。 ( 3 ) x m l 建立在u n i c o d e 编码基础之上,非常适合于国际问的电子商务。 ( 4 ) 虑闩= j 程序可以利用x m l 解析器的功能对) o i l 文档进行结构化的验证,如数据类型的检蠢等。 ( 5 ) x m l 文档是基于文本的,这使得它易于创建,可读性强,也易于应用程序的调试。 ( 6 ) x m l 的压缩性非常好。由于一个x m l 文件能够被存储为一平面的文本文件,因此它能获得非常 高的压缩比。这使得x m l 适台于大规模文档的存储,作为一种网络数据也非常有用。 ( 7 ) 在不同的系统平台上有大量的各种x m l 工具可用,因此利用) o i l 代替二进制格式进行复女s 信息 流的交换是容易的事。 ( 8 ) x m l 是自描述的。一个x m l 文档能够包含一个程序理解该文档所有必须的信息。这使得_ l _ jx m l 在应用程序间交换数据非常方便。因为一个程序能够在运行时,发现有关一个文档的信息而不需要有该 文档格式的任何先验知识。 ( 9 ) x m l 文档能够使用人量为h t m l 建立的框架结构,包括h t t p 协议及w e b 浏览器。 l o 河北工业大学砸j :学位论文 2 3 - i 文档对象模型d o m 2 - 3 应用程序访问x m l 文档的方法 x m l 的一个显著特征就是它是结构化的。在结构化文档中,信息是按层次化的树形结构组织的所 蛆结构化文档模型的组织也必然是树形的。 d o m 的全称是d o c u m e n to b j e c tm o d e l ,即文档对象模型。它是由w 3 c 制定的套标准接口规范。 一个d o m 接口的x m l 分析器,在对x m l 文档进行分析之后,不管这个文档有多简单还是有多复杂,文档 中的信息都会被转化成一棵对象节点树。在这棵节点树中,有一个根节点,所有其他的节点都是根节点 的后代节点。 d o m 常点树生成之后,就可以通过d o m 接口访问、修改、添加、删除、创建树中的特点和内容。通 过d o m 接口,戍j j 程序可以在任何时候访问x m l 文档中的任何一部分数据。因此,这种利用d o m 接e l 的 机制也被称作随机访问机制。 2 - 3 2x m l 简单虑州程序接口s a x s a x 的全称是s i m p l ea p i sf o r l ,即x m l 简单应用程序接口。它是x m l _ d e v 邮件列表的成员根 据麻用的需求,自发地定义的一套对x m l 文档进行操作的接口规范。s a x 提供了一种对) 【h i l 文档进行顺 序访问的模式,这是一种快速读取儿数据的方式。当使爿 | s a x 分析器对x m l 文档进行分析时,会触发 一系列事件,弗激活相应的事件处理函数,从而完成对x m l 文档的访问,所咀s a x 接口也被称作事件驱 动接口。s a x 事件由解析器在打开或关闭文档、元素、属性、子树时产生。该模型可在不关注文档完整 结构的情况卜测定其特征或相关数据。它是一个低代价的、事件驱动的a p i 标准。 s a x 接口之所以叫做“简单”应片j 程序接口,是因为这个接口确实1 f 常简单,绝人多数事竹分析器 都没有做,需要应用程序自己去实现。它的基本原理是由接口的使j 者提供符台定义的处理器,x m l 分 析时遇到特定的事件,就去调用处理器中特定事件的处理函数。一般s a x 接口都是用j a v a 实现的,但 事实上其它语言也可以用于实现s a x 接口。 2 - 3 3 数据绑定 数据绑定“( d a t ab i n d i n g ) 是从j a v a 应用程序内部访问x m l 数据的一种新方法,是指取出一些 数据( 比如从x m l 文档、文本文件或者数据库中) 并通过程序表示这些数据的过程。数据绑定软件包 应该能够用v m 上修改的数据,更新底层存储媒介( x m l 文档、文件或数据库分区) 中的数据。从解析 l 基于x m l 技术的数据管理系统的研究 到绑定不需要很复杂的实现手法,但却提供给使用者更加简单和灵活的解决方案。大多数处理戍_ 1 j 程序 中x m l 文档的方法都是把重点放在x m l 上:从x m l 的角度处理文档,并按照x m l 元素、属性和字符数据 内容编秽。如果应用程序主要荚心x m l 文档的结构,这种方法是挺不错的。对于关心文档中包禽的数据 更甚于关心文档本身的许多应用程序来说,数据绑定提供了一种简单得多的处理x m 。文档的方法。文档 模型和数据绑定都在内存中构建文档表示。两者之间的不同是文档模型尽可能地保存x m l 结构,而数据 绑定只关心应用程序使用的文档数据“。 为阐明这一点,图2 2 显示了一个简单x m l 文档例2 1 的文档模型视图。本例中只有元素和文本悔 点,按照反映原始x m l 文档的结构链接在一起。 例2 1 2 5 天津 红桥 图2 2 文档的文档模型视图 f i 9 2 2t h ed o c u m e n tm o d e lv i e w 如果应用程序为x m l 使用文档模型方法,就要处理这种类型的树。在本例中,可以使 i 节点间的父 一子关系纵向浏览该树,并使用公共父节点的多个子节点间的同级关系横向浏览该树。能够以非常详细 1 2 河北工业大学硕士学位论文 的级别操作树结构,当把这棵树序列化为文本时,生成的x m l 文档将会反映所做的任何更改。 现在,把幽2 2 和图2 3 对比一下,同一个文档例2 1 的数据绑定视图。这里,原始x m l 文档的结 构几乎完全被转换隐藏起来了,但通过一对对象,查看和访问实际数据耍容易得多。 i n s t a n c eo f c l a s sm e m l n f o s t r i n gn a m e = ”张某” l塑! 竖型三:墅l 垒! ! ! ! 苎苎! ! 塑! ! 三二二r s t r i n gc i t y = ”天津” s t r i n gs e c t i o n = “红桥” 图2 3 文档的数据绑定视图 f i g 2 3t h ed a t a b i n d i n g v i e wo f d o c u m e n t 使堋这个数据结构进行正常的j a v a 编程,甚至不必知道关丁x m l 的任何知 f ,但至少需要懂得如何 建立数据结构和x m l 文档之间的映射,但这仍是在简化方向上的一大步。 数据绑定还可以提供其它的好处,并不是只简化编程。由于它把许多文档细节抽象出来,所以数据 绑定所需的内存通常少于文档模型方法所需的内存。例如,考虑一下前面图2 2 和图2 3 中显示的两个 数据结构:文档模型方法使用1 0 个单独的对象,而数据绑定使h j 两个。由于要构建的东西少得多,所 以为文档构建数据绑定表示还可能更快。最后使用数据绑定方法访问程序内的数据要比使j 文档模型 快得多,因为可以控制如何表示和存储数据。 如果数据绑定这么好,那么何时想使用文档模型代替它呢? 在两种情况下需要使用文档模型”: ( 1 ) 应用程序真正关心文档结构的细节。例如,如果正在编写一个x m l 文档编辑

温馨提示

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

评论

0/150

提交评论