(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机软件与理论专业论文)基于持久化dom的xml数据存储技术研究与实现.pdf.pdf 免费下载

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

文档简介

沈岍t 业大学颀士学位论文 摘要 伴随着网络技术的发展,可扩展标记语言x m l 在电子商务、数据交换、网络出版、 制造业、生物医药以及电信等行业得到了广泛的应用。x m l 应用市场的蓬勃发展,使 x m l 文档的数量急剧增多,x 札语言的作用日益重要。越来越多的各种数据和文档资料 开始用x m l 语言编写。这就给x 札数据的存储和管理提出了迫切的要求。 x m l 数据与传统关系数据库存储的结构化数据有很大的不同,它是一种半结构化数 据,很难直接而有效地存储在关系数据库中。但关系数据库历经3 0 多年的发展在技术 上已经相当成熟,拥有最广泛的用户群体。目前,世界上的大部分数据还是存储在关系 数据库中的。如何把x m l 技术与成熟的关系数据库技术相结合,既能保持x m l 的灵活 性,又能充分利用关系数据库现有技术来有效地存储x m l 文档,是一个重要的课题。 在研究x 札数据存储相关技术的基础上,本文设计并实现了一个基于文档对象模型 ( d o m ) 持久化的x m l 数据存储系统。该系统采用三层体系结构来设计,以关系数据库为 底层的数据存储方式,以文档对象模型作为其逻辑模型,以x p a t h 语言为检索方式,利 用文档对象模型持久化技术和成熟的c o m 中间件技术实现。此系统可以在不影响原数据 库正常使用的基础上,把普通关系数据库扩展成) 吨,数据存储系统,有效地存储) 【m l 文 档。 此系统采用映射成关系表的持久化d o m 树的形式在关系数据库中存储以文档为中心 的) a 也文档,所以可以使该类文档的存储不产生内容失真。同时为了有效地存储混合型 x m l 文档,在此系统的具体设计和实现中,尝试性地采用了把文档中的结构化数据和半 结构化数据分离存储的思路。而且根据需要对持久化文档对象模型和x p a t h 语言进行了 必要的扩展。 最后,本文进行了必要的试验,表明本文所设计的x m l 数据存储系统能够实现存储 x m l 文档的基本功能。 关键词:x m l 。数据存储,x m l 数据库,持久化d 跚 沈m 丁二业大学硕士学位论文 ar e s e a r c ha n d i m p l e m e n t o f x m l d a t a - s t o r i n g m o d e lb a s e do n p e p s i s t e n td o m a b s t r a e t w i t ht h ed e v e l o p m e n to fn e t w o r kt e c h n o l o g y x m lh a sb e e nw i d e l yu s e di ne l e c t r o n i c b u s i n e s s ,d a t ae x c h a n g e ,n e t w o r kp u b l i c a t i o n , m a n u f a c t u r i n g ,b i o m e d i c i n ea n d t e l e c o m t h e r e w a sas t e a d yi n c r e a s ei nt h ea m o u n to fx m ld o c u m e n t s ,w i t ht h er a p i dd e v e l o p m e n to ft h e m a r k e to fx m l a p p l i c a t i o n s x m l h a sp l a y e da ni n c r e a s i n gi m p o r t a n tr o l ei nt h ew o r l d m o r e a n dm o r ed a t ao rd o c u m e n t sb e g i nt or e c o r di nx m ll a n g u a g e t h i ss i t u a t i o nm a k e s t h es t u d y o f s t o r i n ga n dm a n a g i n g x v l ld o c u m e n t s u r g e n t l y c o n w a s tt ot h es t r u c t u r e dd a t as t o r i n gi nt r a d i t i o n a lr e l a t i o n a ld a t a b a s es y s t e m x m ld a t a i sd i f f e r e n t , w h i c hi st y p i c a ls e m i s t r u c t u r e dd a t aa n dd i f f i c u l tt os t o r ei ti n t or e l a t i o n a ld a t a b a s e s y s t e md i r e c t l y a n de f f i c i e n t l y h o w e v e r , t h et r a d i t i o n a lr e l a t i o n a ld a t a b a s eh a se x p e r i e n c e d m o r et h a n3 0y e a r s e v o l v e m e n t , i t st e c h n o l o g i e sa l em a t u r e r e l a t i o n a ld a t a b a s e sh a v et h e b i g g e s t u s e r p o p u l a t i o na n d am a j o r i t yo f d a t ai nt h i sw o r l dh a ss t o r e di nt h e m h o wt oc o m b i n e x m la n dr e l a t i o n a ld a t a b a s e t e c h n o l o g i e s f o r s t o r i n gx m ld o c u m e n t se f f i c i e n t l y i sa c h a l l e n g i n g t a s k a n e rs t u d y i n gt e c h n o l o g i e so fx m ld a t as t o r a g e ,ax m ls t o r a g es y s t e mh a sb e e n d e s i g n e da n di m p l e m e n t e d , w h i c h i sb a s e do n p e r s i s t e n td o c u m e n to b j e c tm o d e l m a k i n g t h e m o s to ft h ed e v e l o p e dr e l a t i o n a ld a t a b a s es y s t e m sa st h ew a yo fs t o r a g e u s i n gd o c u m e n t o b j e c tm o d e la st h el o g i cm o d e l a d o p t i n gx m l p a t hl a n g u a g ea st h ew a yo f q u e r y i n gd a t a m a k i n g u s eo f t h e t e c h n o l o g i e so f p e r s i s t e n td o c u m e n to b j e c tm o d e la n d c o mm i d g ew a r e 5 , i n t r o d u c i n gt h r e e - l a y e rs o f l r w a - ea r c h i t e c t u r e ,t h i sx m l s t o r a g es y s t e m h a sb e e ni m p l e m e n t e d t om e e tt h ed e m a n do fs t o r i n gx m ld o c u m e n t se f f e c t i v e l y , t h i ss y s t e r ac a nt u r nag e n e r a l r e l a t i o n a ld a t a b a s es y s t e mi n t oax m l s t o r a g es y s t e mw i t h o md i s t u r b i n gt h ed a i l yw o r k s o f t h e r e l a t i o n a ld a t a b a s e ,w h i c hi sb a s e do n a d o p t i n gp e r s i s t e n td o c u m e n to b j e c tm o d e lb a s e do nr e l a t i o n a l d a t a b a s ef o rs t o r i n g d o c u m e n t - c e n t r i cx m ld o c u m e n t si nl l i ss y s t e n l t h e r ei sn od i s t o r t i o ni nt h ep r o c e s so f s t o r i n g d o c u m e n t - c e n t r i cx m ld o c u m e n t s s i m u l t a n e i t yi no r d e rt os t o r i n 培m i x e dx m l d o c u m e n t s 2 沈阳工业火学硕士学位论文 e f f e c t i v e l y , t h i ss y s t e mh a sb e e nd e s i g n e da n dd e v e l o p e d i na w a yo f s t o r i n g t h es t r u c t u r e dd a t a a n ds e m i s t r u c t u r e dd a t ao f t h em i x e dx m i ,d o c u m e n t s r e s p e c t i v e l yo rd i s c r e t e l y m o r e o v e rt o m e e tt h en e e do fs t o r i n gm i x e dx m ld o c u m e n t si nt h i sw a y , p e r s i s t e n td o c u m e n to b j e c t m o d e la n dx m l p a t h l a n g u a g e h a v eb e e ne x t e n d e d f u n c t i o n a l l y f i n a l l y ,s o m ee x p e r i m e n t s ,w h i c hm u s tb et a k e n ,h a v ei n d i c a t e dt h a tt h i sx m ls t o r a g e s y s t e m c a r lf u n c t i o nn o r m a l l y k e y w o r d s :x m l ,d a t as t o r a g e ,x m ld a t a b a s e , p d o m 3 独创性说明 本人郑重声明:所呈交的论文是我个入在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 沈阳工业大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表 示了谢意。 签名:! i2 姿竺 日期:丕! ! :墨二业 关于论文使用授权的说明 本人完全了解沈阳工业大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅:学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签名: ! i l 垫全 导师签名:幺逝 日期:丛! ! :! ! ! l 沈i i 兀工业大学坝七学位论文 1 1 课题背景 八十年代以来,随着计算机网络技术的发展,通过网络实现信息资源的共享己成为 一种普遍要求。在这种情况下,原来只限于教育、科研部门使用的全美科学技术网逐步 发展成为包罗万象的i n t e r n et 。计算机网络技术和信息资源不仅被科学家、工程师和 计算机专业人员使用,也为广大的普通用户提供服务。i n t e r n e t 为用户提供了资源共 享和信息交互的方便快捷的手段和平台。任何人只要进入i n t e r n e t ,就可以共享其中 各个网络和计算机上的共享资源,同世界各地的人们自由通信和交换信息。正因为如 此,i n t e r n e t 在九十年代进入了一个历史上前所未有的飞速发展时期,深刻地改变着 人们的生活、工作、学习和思维方式。这一革命性和历史性的变化在很大程度上依赖于 超文本标记语言( i 删l ) 的发明。正是这种语言的易学易用性使网络上的信息发布变得更 加简便快捷,也使互联网上的信息变得更加丰富多彩。 h r 札作为描述i n t e r n e t 上信息的一种语言,着重描述w e b 页面的显示格式。由于 简单易用,更加有力地促进了i n t e r n e t 的发展。但是h t 札由于难以扩展、交互性差、 语义性差以及单向的超级链接等缺点使其在电子数据交换、数据库与搜索引擎等领域的 应用存在着障碍,有很大的局限性。 随着计算机网络技术的进一步发展,一种起源于s g m l ( s t a n d a r dg e n e r a l i z e d m a r k u pl a n g u a g e ) “2 3 1 的,能更好地描述结构化数据的语言x m l 语言( e x t e n s i b l e m a r k u pl a n g u a g e ) 诞生了。) ( m l 能用一种灵活的可扩展的方式来表示信息和实现数据 交换。从此以后,l 语言开始在各行各业得到应用,也文档的数量以惊人的速度增 长。 在计算机网络技术迅速发展的今天,x 札语言给网络世界带来的冲击是巨大的。 x 虬语言及其相关技术几乎在网络世界里的各个角落,比如:电子商务、数据交换、数 据存储等等领域,都得到了广泛地应用。如何有效地存储、管理和检索日益增多的枷l 数据,已成为国内外重要的研究课题。 沈l 工业大学硕j 学位论文 l _ 2 国内外硼贫汁靓 ) ( | l i l 数据的存储是数据存储领域研究的重要方面。许多国内外学者和专家都在x m l 数据存储领域进行了深入的研究。 德国软件股份公司( s o f t w a r ea g ) 是欧洲具有独立品牌软件产品的大型软件企业, 具有三十多年数据库系统产品的研发历史。由参考文献 5 可知,在1 9 9 9 年l o 月, s o f t w a r ea g 公司推出了业界第一个原生x m l 数据库( n a t i v ex m ld a t a b a s e ) “1 产品 t a m i n 。1 。 由参考文献 9 】可知,目前在国外,t a r n i n o 已经成功她应用在电子市场、医院病 历管理、电子数据交换( e d i ) 以及电子供应链管理等领域中。 由参考文献 6 、1 0 3 可知,至今为止,市场上己有3 0 种以上的国外的原生x m l 数据 库产品,其中大部分是商业性质、需要购买的,少部分是开放源码的。原生x m l 数据库 通常适用于处理面向文本的非结构化、半结构化数据。但不善于处理结构化数据。缺少 像关系数据库那样完善的理论基础,也缺少像关系数据库那样的事务处理、数据一致 性、多用户访问、触发器等功能。因为) 0 札数据库是近几年才开始出现的,是个正在发 展中的新产品,还不成熟,许多x 儿数据库还是刚刚开发出来,所以很多人对它的技术 和操作很陌生,支持的软件也很少。有关原生渤4 l 数据库的规范还没有制定,因此不周 原生礼数据库产品之间的数据交换和共享至今为止还是很困难的。 随着对札数据库不断深入地研究,众多学者越来越关注) ( 。和关系数据库的结 合。因为如果它们之间能很好结合的话,那么) 叫就可以存储在技术上十分成熟的关系 数据库中,同时关系数据库技术也会因此而伴随着x 札的发展而不断进步。现在许多关 系数据库已经引入了支持) 凸儿的新特性。比如:o r a e l e 9 i “、m i c r o s o f ts q ls e r v e r 2 0 0 0 和i b md b 2 “”等都是支持虬的数据库( 也一e n a b l e dd a t a b a s e ) ”3 。 由参考文献 1 5 3 可知,在o r a c l e g i 中,面向对象的扩充,i n t e rm e d i at e x t 部件 的扩充和j a v a 支持是o r a c l e 中支持x 虬的三块基石。o r a c l e 9 i 作为对象一关系数据 库,允许用户自定义对象类型、集合类型,这些特性使得它能以一种比关系数据库更自 然的方式去支持) 强乱的层次结构。o r a c l e 9 i 对涮l 进行了比较全面的支持,提供了各种 沈阳工业人学硕十学位论文 x m l 工具。但o r a c l e 及其它商业数据库公司仍应在x m l 的查询语言、特定的索引、标 准的映射方式比如x m l s q l 标准等方面进行更大程度的支持。 虽然在国外已经有很多x m l 数据库产品,但是在国内,由参考文献 9 可知,x m l 数据库还处在研究阶段,市场上还没有属于中国自己的成熟产品。 持久化d o m ( p e r s i s t e n td 咖或p d o m ) “”和内容管理系统( c o n t e n tl 忱a n a g e m e n t s y s t e m s ) “是两种特殊的原生) ( m l 数据库。由参考文献 1 7 可知,2 0 0 2 年3 月,浙江 大学的刘靖侨以o s c a r 数据库作为底层存储系统实现了持久化d o m 。但该系统是面向以 文档为中心的x 儿应用的,不善于处理结构化数据。 由参考文献 1 8 可知,合肥工业大学的刘建华于2 0 0 4 年5 月设计了一个以关系数 据库为基础的舡文档存储和查询系统,简称x r d b 。在该系统中均衡地考虑到x 札的 模式和关系模式的特点,把x m l 文档映射到关系数据库存储。在x r d b 中x m l 元素的父 子关系和x 札结构到关系表的映射主要是用关系字典来表示的。例如,关系字典可以保 存一个元素和它的属性映射到具体的哪个表和列上。但这个系统还有很多不足之处需要 进一步改进和完善。目前x r d b 只能存储和查询用札s c h e m a 描述模式的x 札文档, 对于用d t d 描述模式的x 池文档和无模式的舭文档无法适用。x r d b 还没有提供更新 和删除的功能,并且还不能存储以文档为中心的x m l 文档。 由参考文献 1 9 可知,东北大学和香港科技大学联合研制了一个建立在分布式面向 对象数据库管理系统之上的x 札数据库系统x b a s e 。该系统可以将解析器解析后的x 札 数据以d o m 模型存入对象数据库中,也就是说x b a s e 是一个基于对象数据库和持久化 d o m 的儿数据库系统。 总体来说,由参考文献 2 0 可知,以数据为中心的x 札文档具有规则内容的结构化 数据,适合存储在从关系数据库扩展来的支持) 。札的数据库中:以文档为中心的x 帆文 档具有不规则内容的半结构化数据,适合存储在原生儿数据库中;以数据为中心和以 文档为中心相结合的混合型x 礼文档,既有半结构化数据也有结构化数据,目前没有理 想的存储方法。但如果半结构化数据多一些,则最好存储在原生x m l 数据库中。 现代关系数据库大多支持x 札,但它们的支持是有限的,归纳起来问题很多。在存 储瑚l 文档时,从关系数据到x 儿数据的映射还没有统一的标准,使应用程序不能很好 沈阳工业大学硕士学位论义 地复用,这现象可能会随着由s q l x 组织着手制定的s q l x m l 标准的出台而有所改 变:各数据库均缺乏对x 札查询语言x q u e r y 的支持:各数据库均不能保证在数据转换 时不产生语义的损失。研究如何在结构上支持以文档为中心的x m l 文档的存储也是一个 重要研究方向。所以,在这一领域还有许多挑战性的问题有待深入研究。 1 3 课题的硕贫:意义 伴随着x 札应用市场的蓬勃发展,x 礼文档的数量急剧增多。在电子商务、数据交 换等领域,以及制造业、生物医药、电信等行业,x m l 数据存储技术也摄到了广泛的应 用。 由参考文献 2 1 可知,支持x m l 的数据库依靠传统数据库技术二三十年的积累,在 与原生x m l 数据库竞争的前期,占据了x 札应用市场的很大份额。在i n t e l l o r 公司 2 0 0 1 年3 月份的调查报告中,支持x 池的数据库的市场份额将近是原生x m l 数据库的3 倍,约1 2 亿美元。原生x m l 数据库虽然出现较晚,但市场份额增长速度却非常强劲, 在短短的3 年中,已经由1 9 9 9 年的2 ,3 0 0 万美元发展到2 0 0 1 年的3 9 亿美元,并在以 后几年将继续保持很高的增长率。 在国内市场,对) m 。数据库的需求也相当大。例如数字图书馆的源数据都是以x m l 格式为基础的。而在网络教学中,为了使课件等教学资料制作标准化以及方便交互,也 需要蹦l 技术。未来在国内的医疗、金融、电子出版、电子政务、电子军务、制造业以 及电子商务等领域也都需要x 札数据库。 在几年前i t 业界还在为应该选用原生瑚数据库还是传统数据库争论地不可开交 的时候,就已经有一些公司悄悄地投入到原生x m l 数据库的开发中。到今天,已经有了 十多种商业性质的原生x m l 数据库产品。i 嘲,m ic r o s o f t 和o r a c l e 等生产传统数据库 的厂商,也正在踏入原生) a 札数据库的领域。 面对如此巨大的国内外市场需求和如此强劲的行业发展趋势,我国在删l 数据库产 业里应该有较大的作为。但目前市场上还没有属于国内自己的成熟产品。国内的x m l 数 据库还处在研究阶段,在研究水平上与国外也有较大差距。所以在国内研究x 虬数据库 是很有必要和很有意义的。 沈阳丁业大学硕上学位论立 x m l 数据库是一个比较新的事物,其发展历史还很短。很多相关的基本概念还在发 展中,很多相关技术还不成熟。在x m l 数据存储技术上还有很多有待解决的问题没有找 到满意的解决方案。如果在x 阮数据存储这个基础性壤域内有所研究是一件很有意义的 事。 1 4 研究的主要内容 本课题研究的主要内容是在深入研究x 札相关技术的基础上,利用持久化d o l l 技术 设计和实现一个x m l 数据存储系统。由于关系数据库是目前最成熟的数据库系统,在各 行各业得到了广泛的应用。所以本课题选择关系数据库作为底层的数据存储方式来实现 持久化d o m ,从而进一步实现x m l 数据的有效存储。这样可以使技术成熟的关系数据库 在新的x m l 数据存储领域里得到进一步的应用。此外,在本课题的具体研究过程中还要 探讨解决如下两个问题的有效方法。 问题1 :如何利用关系数据库在结构上支持以文档为中心的x m l 文档的存储,以减 少文档内容的失真。 问题2 :如何利用关系数据库和持久化d o m 技术有效地存储混合型x m l 文档。 1 5 课题中的难点及麓留 办法 在本课题的研究过程中涉及的实际问题很多,但始终围绕着一个主线那就是利用持 久化d o m 技术和关系数据库实现儿文档的存储。具体说来有如下重点和难点: ( 1 ) 设计和实现一个基于持久化d o m 的m j 数据存储系统。做一个完善的x m l 数据 存储系统的工作量过大,在课题所规定的时间里很难完成。所以本课题在重点设计和实 现x m l 存储系统的核心功能和基本功能的同时,简化了对存储系统的索引、查询检索和 用户界面的设计和实现。 ( 2 ) 如何利用关系数据库在结构上支持以文档为中心的x m l 文档的存储,以减少文 档内容的失真。由于结构化的关系数据与半结构化的x m l 数据的差异很大,关系数据库 很难在结构上支持x 礼文档的存储。本课题为了解决这个问题采用了文档对象模型 ( d o c u m e n to b j e c tm o d e l 简称为:d 0 吣嘧1 作为逻辑模型,用映射成关系表的d o m 树的 形式存储文档。 沈阳r 业大学硕士学位论文 ( 3 ) 如何利用关系数据库和持久化d 【 m 技术有效地存储混合型x m l 文档。由于混合 型x m l 文档中既有结构化数据也有半结构化数据,这两种数据的特性差异很大,很难一 起存储。所以本课题采用了特定的方法把结构化数据和半结构化数据先分离开来再分别 提供存储方法。 ( 4 ) 实现持久化d o m 的具体方法。本课题选用了c 0 m d 0 0 m 中间件技术实现持久化 d o m ,并用v i s u a lc + + 的a t l 技术具体开发。 1 6 本文的组织 在绪论的最后,简述一下本文的基本章节组成。 第一章绪论简要地阐述了课题的研究背景、意义、国内外研究情况以及研究的主要 内容和重点难点的解决方法。 第二章介绍与本课题有关的主要技术领域的基本概念,并对本文实际用到的技术做 了重点论述。 第三章分析和讨论了本文要解决的两个问题,并设计了可行的解决方案。 菊四章论述的是个基于d o m 持久化的) 曲也数据存储系统的设计方案。 第五章简单介绍系统的实现以及试验情况等。 第六章是结论,从总体上对本文进行总结。 8 2 相关技术 沈阳工业大学硕士学位论文 2 1 s g 札语言 在1 9 8 6 年,国际标准化组织( i s o ) 正式发布了s g m l ( s t a n d a r dg e n e r a l i z e d m a r k u pl a n g u a g e ) 语言的国际标准,其标准号是i s o8 8 7 9 一1 9 8 6 。 s g 札语言用于描述文档的结构与内容、实现文档信息的交换和共享,使全世界的 信息交换成为可能。而且s g ) “l 本身是种元语言,是一套用来定义其它标记语言的通 用规则。 早在1 9 7 8 年,美国国家标准学会( n s i ) 就成立了一个由戈德法布( c h a r l e s g o l d f a r b ) 领导的专门的工作组,进行文本描述语言标准化的研究。这项研究以 g y l ( g e n e r a l i z e d 讲a r k u pl a n g u a g e ) 语言为基础,设计标准化的通用标记语言s g 眦语 言。在1 9 9 5 年,我国也把s g 札语言作为国家标准,标准号为g b 1 4 8 1 4 。 由参考文献 2 3 3 可知,超文本标记语言( b y p e rt e x tm a r k u pl a n g u a g e ,简称h t m l ) 就是由s g m l 这种元语言定义出来的,成功地应用在 n t e r n e t 互联网上的标记语言。它 是s g m l 的一个特定的d t d 类型,用于对超媒体文献的结构、内容和外观进行标记。由 于其通用性、跨平台、机器可解析性和编辑方便等特点,得到了广泛地应用;并在 h t t p 协议的支持下成为i n t e r n e t 互联网络上交换和显示超媒体文献的主要工具。但 h t m l 仍不适用于需要长期保存和复杂检索的文献,原因在于它缺乏个灵活的数据内 容与显示形式分割的结构,以及它有限的标记。 2 2 】瓯语言 x m l ( e x t e n s i b l ey a r k u pl a n g u a g e ) 语言是一种结构化描述语言,包含许多s g m l 语 言的要素,但比s g m l 语言简单,是s g 札语言的一个简化子集。它能使s c 4 1 l 语言像 h t m l 语言那样,在互联网络里得到广泛应用。如果说h t m l 是s g m l 衍生的一种文件格 式那么x m l 则是s g m l 的简化版,所有龇文件也是合乎规范的s g 肌文件。所以d i l 也是一种元语言。1 ,可以用来定义其它新的标记语言。1 9 9 6 年底,万维网协会( w 3 c ) 推出 了x m l 标准。x 扎的制定是为了弥补h t b l 的不足,使得在互联网络上可以传输、处理 沈阳工业大学硕十学位论文 和共享各种结构复杂的文档。在继承s g m l 的同时,它又去除了s c m l 的复杂性,让使用 者可以很容易地定义和使用属于自己的文档类型。 ( 1 ) 设计目标。在) ( ;i l 的正式规范中阐述了如下1 0 个x m l 的设计目标。 1 ) x m l 应该可以直接应用于r n t e r n e t 网络。 2 ) 埘l 应该支持大量的各种各样的应用。 3 ) 列l 应该与s g m l 兼容。 4 ) 处理x m l 文档的程序应该很容易编写。 5 ) x m l 中的可选项的数目应该尽可能地少,理想情况是一个也没有。 6 ) x m l 文档应该可读性强,条理清晰。 7 ) x m l 的设计应该迅速完成。 8 ) x 札的设计应该正规且简洁。 9 ) x m l 文档应该易于创建。 1 0 ) x m l 的标记必须有明确的含义,不必过于简洁精炼以防含义模糊不清。 ( 2 ) 主要特点。参见文献 2 6 ,删l 语言的主要特点是: 1 ) 简单性。x m l 语言有严格的定义,其语法包含一个比较小的规则集,使开发者 很容易学会并能很快开始工作,而且人和机器都能很容易地阅读。由于x m l 文档是建立 在一个基本嵌套结构的核心集的基础之上的,当一层又一层的文档内容被增加,从而使 结构变得越来越复杂时,开发者只需要为内部结构的复杂性做出非常少的工作就可以满 足复杂应用的需要。这些基本嵌套结构可以很容易地描述复杂的信息集合,而不需要改 变结构自身。而且x m l 语言为程序员和文档开发者提供了一个友好的开发环境,其语法 分析器也非常容易创建。 2 ) 可扩展性。x i l 语言至少在两方面是可扩展的。首先,它允许开发者使用他们 自己的标签和d t d ,有效地创建可被用于特定应用的专业化的标记集。其次,许多附加 的标准对x 规的能力进行了扩展。这些附加标准可以向核心的功能集增掘样式、链 接和引用能力。而且作为一个核心标准,x m l 为可能产生的其它标准提供了一个坚实的 基础。 8 一 沈阳工业大学硕上学位论立 3 ) 跨平台。x m l 语言是独立于特定平台的,而且支持世界上所有主要语言编写的 混合文本,从而可在世界上各种平台的不同计算环境中使用。 4 ) 开放性。x m l 标准是完全开放的,并且可以免费获得。) 【m l 文档本身也很开放, 任何人都可以对一个结构良好的x m l 文档进行语法分析,如果提供了文档的d t d ,还可以 校验这个) a ,l l 文档。 ( 3 ) 基本概念。 1 ) 标记”3 是通过名叫分隔符( d e l i m i t e r ) 的专用字符与字符数据区别开来的x m l 文本。不太严格地讲,小于号( ) 之间的文本,或和号( ) 与分号( :) 之间的 文本就是标记。以小于号开始和大于号结束的标记叫标注( t a g ) 。 2 ) 元素“”( e l e m e n t ) 是组成x m l 文档的基本单元。一个元素包含一个起始标记和 一个结束标记,在两个标记之间可以有数据内容。任何一个格式良好的x 儿文档都包含 一个或多个元素,而且仅有个称作根元素的顶级元素。元素之间可以存在树型的嵌套 包含关系。被包含的元素叫予元素,相应地,包含子元素的元素称为这个子元素的父元 素。 3 ) 属性”1 是元素包含的附办信息,用来描述元素的特征。 4 ) 文档类型定义。文档类型定义( d t d ) 用来定义) 凸也文档的合法语法。它通过列 出可以在文档中使用的元素名字、指明元素之问的组合和嵌套关系、每个元素类型的可 用属性等来定义x m l 文档的合法语法。 5 ) 良构的和有效的文档汹。每一种语言都具有说明语言用法正确与否的规则, 在瑚l 语言中也不例外。包含可以理解的标记的文档称为良构的文档,在这类文档中可 以使用除了元素和属性的定义之外几乎全部的x m l 项,即没有d t d 。有效的文档符合关 于良构的文档的所有规则,但具有一个相关的定义文档的元素和属性的d t d 。 2 3x m l 文档及其分类 用x m l 语言书写的文档就是) a 儿文档,它由元素、属性、实体引用、注释、c d a t a 和处理指令等部分组成。一个x 儿文档可以选择具有一个文档类型定义( d t d ) ,它用来 定义一个x m l 文档的结构。x 虬文档具有类似h t m l 的基于文本的格式,是种标准化 9 沈阳丁业大学硕士学位论文 的可以在网络上表示数据的文档。x m l 文档通常以一个x m l 声明开始,通过) ( m l 元素组 织x 札数据。根据x 札文档的内容、结构和用途的不同,可以将它分为如下三类: ( 1 ) 以数据为中心的文档( d a t a c e n t r i cd o c u m e n t s ) 是将) ( m l 用作数据的传输载 体,着重于文档中的数据,而非文档格式,通常是给机器用的,方便机器进行数据处 理。例如销售订单、航班时刻表、科学计算结果及股市汇率。这类文档的特点是结构相 当严谨,数据粒度精细( 即最小的独立数据单位只存在于p c d a t a 元素或属性这一级 别) ,很少或没有混合内容。除非在对文档进行验证的时候,同级元素或p c d a t a 的出现 次序一般来说并不重要,交换两个同级元素并不会破坏文档的可读性。主要应用在电子 商务、e r p 、e m 等领域,集成不同数据源的数据,交换信息。 ( 2 ) 以文档为中心的文档( d o c u m e n t - c e n t r i cd o c u m e n t s ) 。3 将x m l 用作文本的传播 载体,通常是给人阅读的。例如书籍、e m a i l 、用户手册等。其特点是半结构化或非结构 化的数据、数据粒度大,混合内容多。同级元素或p c d a t a 出现的次序一般来说非常重 要。 ( 3 ) 混合型x m l 文档。在实际应用中,以数据为中心和以文档为中心的文档之间的 差另不一定很明显。例如,一种以数据为中心的文档比如发票,可能含有大粒度的、结 构不规则的数据比如零件说明;另一种以文档为中心的文档如用户手册,可能包含细粒 度的结构规则的数据,比如作者和修订日期。其它倒子包括法律和医学文书,虽然以松 散的形式写成,但是却包含离散的数据块,例如日期、名称和操作程序,出于法规的原 因通常要以完整的文件形式存储。此类文档同时具有面向数据和面向文档两种类型特 征,称为混合型札文档。在混合型y j , g , 文档中,有结构化数据,也有非结构化数据。 2 4 龇文档的解析 对于一个现成的x ) c i l 文档,应用程序是不能直接使用或进行处理的,必须通过x 札 文档的解析器( 瑚lp a r s e r ) 把文档解析成可操作的形式。) 0 l 文档解析器实际上是一些 程序,用来读取文档并分析文档的结构。解析x 札文档是处理捌l 文档的第一步。一般 来说,处理) n 仉文档还要对x 儿文档中的数据进行处理,比如对文档进行添加、删除、 修改等操作,这都要通过x 儿的解析器。解析器读取x 札文档并检查文档的有效性。在 沈阳t k 大学硕士学位论文 多数情况下,会生成一棵解析树。目前,对于x 札文档的解析主要有d 解析和s a x 解 析两种方法,如图2 1 所示。 n 。应用程序 i fi f d 删接口s a x 接口 竹n d 伽解析器s a x 解析器 i f介 x m l 文档 图2 1x 虬文档的解析 2 5 ) 眦简单 p i 2 5 1s a x 简介 x m l 简单a p i ( s i m p l ea p if o rx m l ,简称s a x ) 不是某个标准化组织的产品。它是 早期开发x m l 过程中,许多x m l 开发者为了实现一种有效的a p i 而创造出来的产品。 s a x 并不把注意力放在整个文档的树型结构上,而是采用了基于事件的模型,并在解析 x m l 文档的时候可以触发一系列的事件。比如当发现给定的标注( t a g ) 的时候,它可以 激发一个事件处理函数。对于这个事件的反映取决于使用解析器的程序( 它定义事件处 理函数) 。s a x 提供的这些事件包括:元素声明开始、元素声明结束、属性声明开始、 遇到注释声明等等。 一个s a x 应用程序可以完全操作和控制x 池文档,这样就可以根据实际需要来维护 x m l 文档中的数据。s a x 解析器并不在内存中保留x m l 文档,因此它们通常是短小精悍 的,对内存的要求通常也是比较低的。难因为如此,s a x 没有像i ) o m 那样的随机定位到 文档的特定部分的功能,也不支持复杂的搜索功能。但是这并不意味着s a x 不能用于复 沈阳工业大学硕士学位论文 杂的x m l 应用程序。相反,s a x 具有很多优点,完全可以满足我们开发复杂的x m l 应用 程序的需要。 2 5 2s a x 优点和缺点 s a x 在分析瑚l 文档时能够立即开始,而不是等待所有的数据载入内存。而且由 于s a x 应用程序只是在读取数据时检查数据,因此不需要将数据保留在内存中。这对于 大型文档来说是个巨大的优点。实际上,s a x 应用程序甚至不必解析整个x m l 文档,它 可以在某个条件得到满足时停止解析。一般来说,s a x 比d 叫快许多,而且更加灵活, 其优点如下: ( 1 ) 可以解析任意大小的文档。因为s a x 不需要把整个文档加载到内存中,所以 占用的内存要比d 嘶小。 ( 2 ) 适合创建自己的数据结构。因为在s a x 事件发生的时候可以方便地保存和组织 需要的数据。 ( 3 ) 适合对小量信息子集的操作。如果仅对某些数据感兴趣,那么把需要的少量数 据和其它数据一起全部调入内存是非常低效和不必要的。s a ) 【可以非常容易地忽略不感 兴趣的数据。 ( 4 ) 简单、高效。 但s a x 也有不少缺点,用它解析x 札文档的时候编码工作会比较难,而且很难同时 访问同一个文档中的不同部分。 2 5 3s 】【中的重要接口和类的介绍 c o n t e n t h a n d l e r 接口:是主要的接口之一,几乎所有的s a x 解析器都会实现这个 接口。它报告基本的解析事件以及文档事件,包括文档开始事件、元素开始事件等等。 e r r o r h a n d l e r 接口:s a x 解析器通过实现e r r o r s a n d l e r 接口并注册e r r o r h a n d l e r 的实例,可以实现定制的错误处理。当s a x 解析器需要向调用者报告某个错误的时候, 它会调用它的e r r o r l t a n d le r ,以使应用程序可以执行自己的错误处理代码。 o t d h a n d l e r 接口:这个接口用来报告与d t i ) 有关的事件,包括未解析的实体的声 明。 沈阳工业大学硕士学位论殳 d e c l h a n d l e r 接口:s a x 2 的扩展接口,提供x m l 文档中d t d 声明的信息。它报告 属性声明、元素声明、己解析外部实体声明和内部实体声明四种事件。 l e x i c a l h a n d l e r 接口:s a x 2 的扩展接口,它报告c o m m e n t 、c d a t a 开始( 结束) 、 实体声明开始( 结束) 、d t d 声明开始( 结束) 等事件。 2 6 文档对象模型 2 6 1 文档对象模型简介 w 3 c 文档对象模型( d o c u m e n to b j e c tm o d e l 简称为:d o m ) 规范是一组基于树模型 的平台和语言中立的应用程序编程接口( a p i ) ,它能够描述如何访问和操纵存储在x m l 和h t m l 等文档中的信息。它是由万维网联盟( w 3 c ) 发布并维护的一个标准。d o m 提供了 文档的结构化视图,以及一个标准的可互操作的类和方法的集合,可以用于x m l 文档元 素的添加、修改、删除和检索,以及文档内容的定位。d o m 解析器读取整个文档,并通 过在内存中构造一个对象树,提供文档的一个视图。文档的主要结构是通过对象树中的 节点来表达的,并通过使用d o m 接口来访问和处理对象树。目前d o m 是处理) ( m l 文档时 最常用的应用程序接口。 依照w 3 cd 规范,选用d o c u m e n to b j e c tm o d e l 这个术语是因为d 洲在传统的面 向对象编程的意义上来看是一个对象模型。文档利用对象被模型化,模型用来描述文档 的结构以及文档的行为和文档对象的行为

温馨提示

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

评论

0/150

提交评论