




已阅读5页,还剩51页未读, 继续免费阅读
(交通信息工程及控制专业论文)可扩展标记语言文档在数据库中存储技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 讧l ( e x t e n s i b l em a r k u pl a i l g u a g e ) 作为网络数据交换和表示的一种标准,越来越 受到人们的青睐,然而,随着在网络上发布的煳l 数据的不断增加,如何管理删l 文档已经成了一个十分棘手的问题。目前的研究侧重于用关系数据库来存储垤l 文 档,但是由于删l 数据和关系型数据在组织上的差异,以及关系数据库存储过程中存 在x m l 文档的多值元素、嵌套元素以及混合元素地映射等难点问题一直没有得到有效 的解决。所以研究删l 数据在关系数据库中的存储成为) a l 研究的一个热点。 本文主要研究删l 文档在关系数据库中的存储问题。作者通过对x 1 ls c h e m a 的 基本语义进行分析,首先引入一个基于rs c h e m a ( r e f o r n n i n g 皿,s c h e i l l a ) 的江l 文 档存储方法,rs c h e m a 由ls c h 锄a 生成,是ls c h e m a 的一种等价形式;其次 引入分级节点的概念,分级节点可以直接映射为关系,用表a n c e s t o r 存储嵌套的分级节 点父子关系,然后引入一组改写规则对rs c h 锄a 进行改写,利用搜索算法进行优化处 理,得到代价最小的rs c h e m a ;最后实验证明,rs c h 锄a 方法在) ( m l 数据存储过程中 的信息保持、查询和更新等操作优于文本、x p 积m t 方法。 总之,从理论分析和实验对比上可以表明,本文引入的基于rs c h 锄a 的) 口l 文 档存储方法是有效的。 关键词:m 。,r 。s c h e m a ,代价模型,搜索算法,咀。存储 a bs t r a c t a sas t a l l d a r do fe x p r e s s 觚de x c h a n 百n go fd a t a0 ni i l t 锄e t ,e x t e n s i b l em a r k u p l a i l g u a g eb e c o m e sm o r e 锄dm o r ep o p u l 瓯b u t ,w i t ht h ep u b l i s h e dx m l d a t ao nt h en e ti s i n c r e 弱i n g ,i ti sad i 伍c u l tp r o b l e mh o wm a i l a g em e s e 讧ld o c u n l e n t s a tp r e s e m ,7 r h e r ea r e s o m ee m p h a s i sr c s e a r c h e sm a ts t o r ex m ld o c u m e n t sw i mr e l a t i o n a ld a t a b a s e b u tb e c a u s eo f n l eg r e a td i 脑e n c eb e t 、) r e e n 讧ld a t a 锄dr e l a t i o n a ld a t ai ns t n l c t u r e ,勰w e l la ss o m e d i 伍c u l tp r o b l e m ss u c h 勰m u l t i v a l u ee l e m e n n i l a p p i n 吕r e c u r s i v ee l e m e mm 印p i n g 卸d m i x - c o m e n te l e m e mm 印p i i 培a r en o tr e s o l v ed e n e c t i v e l y - s og t o r i n gx m ld o c 啪e mi 1 1 r e l a t i o nd a t a b a s e b e c o m e sah o t s p o ti nt h es t u d yo f x m ls t o m g es 仃a t e 醪 h lt 1 _ l i sp a p a u t h o rf o c u so n 廿1 cr e s e a r c ho f ld o c u m e n ts t o r e di i lr c l a t i o n d a t a b 弱e ,a i l a l y s et 1 1 eb 邪i cs e m a n t i ci n f - 0 m a t i o no f ls c h e m a f i r s t l y b r i n gf o r w a r da s t o r a g em e m o do fx m ld o c u m e n tb 豁e do nr _ s c h e m r e f o m i n g 讧ls c h 锄a ) i ti s c r c a t e d b y 煳ls c h 锄a ,i sae q u i v a l e n te x p r e s s i o no f 删ls c h e m a ;s e c o n d l 弘a u t l l o rp u t f o n a r dm ec l a s s i f i e dn o d ew h i c hc a nb ed i r c c t l ym a p l p e di n t 0r e l a t i o n ,a i l c e s t o ri sa 协b l e m a ts t o r en e s t i n gf i l i a t i o no fc l a l s s i 丘e dn o d e ;1 h e l l ,a u l o r b 血g 向刑莉as e to fr e 、枷t t i n g m l e so ft h er 。s c h e m a ,u s es e a r c ha 1 9 0 r i l n lt o 丘n dar - s c h 锄aw h o c o s ti sm j l l j 脚眦i i l t h ei l s c h 锄a ;k 塔t l y ,e x p e r i m tp r o v i n gi l s c h e m am e t i l o di sb e t t e rt l l a l lo m e rm e t h o d s 文l c h 勰t e x ta n d ) ( p a r e n t0 ni n f o n n a t i o nm a i n t a 疏n g ,d a t aq u e 聊n g 锄du p d a ! t i n gd u 渤g x m ld a t as t o r a g e h lc o n c l u s i o n ,e 姗n c i a t i o no f t t l e o r i e s 锄a l y s i s 锄de x p 耐m e n tc o n 仃砸t ,s t o r a g e m e t h o do fx m ld o c 啪e n tb a s e do nrs c h e m ai sv a l i di nm i sp a p e r k e yw o r d s :x m l ,r 。s c h e m a ,c o s tm o d e i ,s e a r c ha l g o r i t h i l l ,x m ls t o r a g e 论文独创性声明 本人声明:本人所呈交的学位论文是在导师的指导下,独立进行研究 工作所取得的成果。除论文中已经注明引用的内容外,对论文的研究做出 重要贡献的个人和集体,均已在文中以明确方式标明。本论文中不包含任 何未加明确注明的其他个人或集体已经公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:苍花 j 吵年,月岁日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属学 校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成 果时,署名单位仍然为长安大学。 论文作者签名:彦氟 导师签名: 日扣 叭7 刖 月 r , j 年 年 7 7 必 长安大学硕士学位论文 第一章绪论 1 1 问题的提出及其研究的意义 订l ( e x t e i l s i b l em a r k u pl 锄g u a g e ) 是一门新兴的面向h n 锄e t 应用的标记语言, 它的迅速发展使其已经成为w e b 上的数据格式事实上的标准。聊l 作为一种通用的 格式进行数据的表示、交换、存储和访问对数据库系统提出了许多新的挑战。随着互联 网上讧l 数据发布的指数式增长,管理现有的) 口】一文档已变得越来越困难。所以 说删l 文档的有效存储和查询的研究已迫在眉睫。目前大量的数据仍然是在关系数据 库中管理和维护,所以研究煳l 数据在关系数据库中的存储从而充分利用关系数据库 成熟的数据管理服务( 并发控制、紧急恢复等) 已成为了研究的热点。同时,基于删l 的数据交换,实现数据库的删l 数据双向存取,才能将删l 数据同具体应用程序集 成,进而使之同现有的业务规则相结合,最后真正实现基于x m l 的分布式数据交换与 信息共享。相对于关系数据库中用平面关系表来存储数据来说,l 文档是一种比较 复杂的树型结构,而且关系数据库也不能很好的支持l 中的一些本质关系,如层次、 顺序、包含等。因此怎样在关系数据库中有效地存储舭文档同时又保持其结构信息 和文档信息成为一个难题。 1 2 国内外研究的现状 虽然有关l 存储的研究已出现不少,但总的说来,) a l 数据的存储管理方法主要 可以划分为以下四大类: 1 、基于文件系统的存储:此种方法直接把l 文档作为磁盘文件进行存储,它 是最简单,但是缺点也最多的一种存储方法。如每次浏览和查询时都需要解析,文件占 用空间大、修改数据很困难等。 2 、x m l 原生数据库的存储( n a t i v ex m ld b m s ,m ( d ) :建立原始l 数据库 系统时a t i v e 讧ld a t a b 2 u s e ) 进行管理【1 】【2 】【3 1 。l 原生数据库的基本存储单元是l 文档,这种数据库维持原有文档的数据结构和相关的元数据,而不关心数据的底层存储 格式,只能通过舭特有的相关技术对数据进行存储。由于内部采用的是标准的 x m l 格式,存储时不需要进行格式的转换因而可以充分发挥删l 的优势,但它采用 的是一种全新的数据组织方式,技术还不成熟,其性能也还没有得到充分验证,因而应 用不多。 3 、基于面向对象数据库的存储:将l 数据转换到面向对象的数据库中进行管 理。从理论上说,面向对象数据库的结构使得煳l 文档很适合于用对象数据库进行存 储,而且实现l 模式到对象的转换规则也比较简单,技术比较成熟【l 引,但是由于对 第一章绪论 象数据库应用范围较窄,所以到目前为止,使用并不多见。 4 、基于关系数据库的存储:近年来,用关系数据库进行煳l 数据的管理得到了 许多学者的关注【5 】【6 】,这是因为关系数据库是已经发展了几十年的非常成熟的技术。关 系数据库存放订l 有以下几个优势:首先同对象数据库和原始讧l 数据库相比, 关系数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于 编制应用程序等优点。其次,目前大量的数据都是存储在关系数据库中。现在流行的数 据库绝大多数是关系数据库,如s q ls e r v e r 、d b 2 、o r a c l e 等都是第三代的关系数据库。 最后,在关系库中存储l 文档数据的关键问题是确定表( t a b l e ) 的数量和大小,要求 表的大小和数量保持平衡,从而使得查询操作和连接操作最少,即在存储代价和查询性 能之间求得一个平衡点。可以实现对数据的统一管理,最大限度的利用关系数据库现有 的存储管理、并发控制、恢复、版本机制等技术来有效的管理数据。但由于讧l 数据 和关系型数据在组织上的差异,如层次、顺序、包含等,所以不可避免存在模式的转换、 结构变动、文档复原和查询效率等问题。根据x m l 文档和关系数据库的不同特点,研 究x m l 在关系数据库中的存储主要应关注以下几个方面: 1 、如何处理讧l 模式的半结构化特征和煳l 数据的层次嵌套关系,使之适应于 关系数据库的二维平面特征。 2 、如何处理煳l 数据中可能存在的多值元素、集合值元素和递归值元素。 3 、如何保证煳l 文档在存储到关系数据库的过程中不丢失信息,能够从数据库中 完整的恢复瑚l 文档。 1 3 论文主要内容及结构 本文主要研究煳l 文档在关系数据库中的存储问题。作者介绍了讧l 的相关 技术,并对讧l 文档的各种存储方法进行分析和比较。同时对沮。s c h e m a 的基本 语义进行分析,引入rs c h e m a ( r e f o m i n gx m ls c h e m a ) 的概念( 即原始ls c h e m a 中的可选元素组,复杂元素和多值元素提取出来,生成新的定义类型) 。提出一个基于 rs c h e m a 的x m l 到关系模式的转换方法,rs c h 锄a 是订ls c h e m a 的一种等价表 示,所以rs c h 锄a 可以被直接映射为关系模式。 利用d o m ( d o c 啪e i l tc i b j e c tm o d e l ) 树的思想将rs c h e m a 转换为d o m 树型表 示。d o m 树中的元素点被拆分为三类。简单元素节点用来表示简单类型定义的元素; 复杂元素节点用来表示复杂类型定义的元素。c h o i c e 辅助节点用来处理可选元素。在 r - s c h e m a 中只有文档的语义信息并没有实际的数据,对应的d o m 树没有文本节点。 引入分级节点的概念,分级节点将直接映射为关系。 引入代价模型,结合rs c h e m a 中的统计信息,对rs c h e m a 的等价集合进 行代价估计。在代价模型中查询语句被分为三类:单子树查询,双子树联结查询,多子 2 长安大学硕士学位论文 树联结查询。每一类查询对应自己的代价公式,代价模型根据各类查询操作的工作负载 ( w o r k l o a d ) 计算得到总代价。引入一组改写规则对rs c h e m a 进行改写。rs c h e m a 的 改写主要集中在两个方面:内联改写和c h o i c e 合并改写。内联改写是将子元素的内容 嵌入到其父亲元素的定义中;c h o i c e 合并改写将c h o i c e 涉及的元素按照公式( 岛( bi c ) ) = = ( 如l 如c ) 与其它元素合并,生成新的元素。i l s c h e m a 的存储方法采用搜索 算法进行r _ s c h e m a 优化处理。搜索算法寻找代价最小的r _ s c h e m a ,将其映射为关系 模式。 最后,作者通过实验,验证了rs c h 锄a 方法在) ( m l 数据存储过程中的信息保持、 查询和更新操作等优于文本、x p a r e n t 方法。 论文的结构如下: 第一章绪论,主要介绍本课题的研究背景,研究思路和研究方法等。 第二章主要介绍x m l 基本知识及其相关技术。 第三章基于关系数据库的讧l 存储方法,详细介绍当前已经存在的基于关系的 x m l 存储的经典方法,例如s t o r e d 方法、d t d p o c u m e j n t1 卯ed e f i i l e ) 方法、 p c h e m a ( p h y s i c a l 江ls c h 锄a ) 方法、e 吨e 方法和x p 骶斌方法等。 第四章引入rs c h 锄a 的概念,提出一个基于rs c h 锄a 的存储方法。并对 rs c h 锄a 集合进行改写,代价估计,搜索算法进行优化处理后找出代价最小的 rs c h e m a ,将其映射为关系模式。最后,通过实验证明基于rs c h 锄a 存储方法的有 效性。 第五章结论与展望给出本文实验所得出的主要结论、研究的不足以及以后工作及 研究的方向。 致谢 参考文献 附录 第二章x m l 及其相关技术 2 1x m l 的产生背景 第二章x m l 及其相关技术 i n t 锄e t 提供了全球范围的网络互连与通信功能,w 曲技术的发展更是一日千里, 其丰富的信息资源给人们的学习和生活带来了极大的便利。特别是应运而生的h t m l ( h y p e n c x tm 训( u pl a i l g t l a g e ,超文本链接标示语言) ,以其简单易学、灵活通用的特性, 使人们发布、检索、交流信息都变得非常简单,从而使w 曲成了最大的环球信息资源 库。然而,电子商务、电子出版、远程教育等基于w 曲的新兴领域的全面兴起使得传 统的w 曲资源更加复杂化、多样化,数据量的日趋庞大对网络的传输能力也提出更高 的要求。传统的h n 他由于自身特点的限制,不能有效地解决上述问题:作为一种简 单的表示性语言,它只能显示内容而无法表达数据内容。而这一点恰恰是电子商务、智 能搜索引擎所必需的。另外,h t m l 语言不能描述矢量图形、数学公式、化学符号等 特殊对象,在数据显示方面的描述能力也不尽如人意。最重要的是:h n l 只是s g m l ( s t a i l d a r dg l m e r a l i z e dm a r k u pl 孤g u a g e ,标准通用置标语言) 的一个实例化的子集,可 扩展性差,用户根本不能自定义有意义的置标供他人使用。这一切都成为w 曲技术进 一步发展的障碍。s g m l 复杂度太高,不适合网络的日常应用,加上开发成本高、不被 主流浏览器所支持等原因,使得s g m l 在w | e b 上的推广受到阻碍。在这种情况下, 开发一种兼具s g m l 的强大功能、可扩展性以及h t m l 的简单性的语言势在必行。 由此诞生了订l 语言。垤l ( e x t e n s i b l em 砌( u pl a i l g u a g c ,可扩展置标语言) 是由 w 3 c 于1 9 9 8 年2 月发布的一种标准。它同样是s g m l 的一个简化子集,将s g m l 的丰富功能与h t m l 的易用性结合到w 曲的应用中,以一种开放的自我描述方式定 义了数据结构,在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关 系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。 2 2x m l 的优缺点 煳l 的优势之一是它允许各个组织、个人建立适合自己需要的置标集合,并且这 些置标可以迅速地投入使用。这一特征使得蹦l 可以在电子商务、政府文档、司法、 出版、保险机构、厂商和中介组织信息交换等领域中一展身手,针对不同的系统、厂商 提供各具特色的独立解决方案。江l 的最大优点在于它的数据存储格式不受显示格式 的制约。一般来说,一篇文档包括三个要素:数据、结构以及显示方式。对于h t m l 来 说,显示方式内嵌在数据中,这样在创建文本时,要时时考虑输出格式,如果因为需求 不同而需要对同样的内容进行不同风格的显示时,要从头创建一个全新的文档,重复工 作量很大。讧l 把文档的三要素独立开来,分别处理。首先把显示格式从数据内容中 4 长安大学硕士学位论文 独立出来,保存在样式单文件( s t y l es h e e t ) 中,这样如果需要改变文档的显示方式, 只要修改样式单文件就行了。其次删l 的自我描述性质能够很好地表现许多复杂的数 据关系,使得基于) a l 的应用程序可以在讧l 文件中准确高效地搜索相关的数据 内容,忽略其他不相关部分。x m l 还有其他许多优点,比如它有利于不同系统之间的 信息交流,完全可以充当网际语言,并有希望成为数据和文档交换的标准机制。总体说 来,儿主要具有以下一些重要特性: 第一,可扩展性。) a l 让使用者创建和使用他们自己的标记而不是h t m l 的有 限词汇表,可扩展性是至关重要的,企业可以为电子商务和供应链集成等应用) a l 定 义自己的标记语言,甚至特定的行业也可以一起来定义该领域的特殊的标记语言作为该 领域信息共享与数据交换的基础。 第二,灵活性。l 提供了一种结构化的数据表示方式,使得用户界面分离于结 构化数据。在订l 中可以使用样式表如x s l ( e x t e i l s i b l es t y l e s h e e tl a l l g l l a g c ,扩展样式 表语言) 、c s s 2 ( c 嬲c a d i i 培s t y l es h e e t s 【胱e l2 ,层叠样式表) 将数据呈现到浏览器中。 第三,自描述性。l 文档通常包含一个文档类型声明,因而文档是自述的,不 仅人能读懂l 文档,计算机也能处理。讧l 文档中的数据可以被任何能够对x m l 数据进行解析的应用所提取、分析、处理,并以所需格式显示,瑚l 表示数据的方式 真正做到了独立于应用系统并且这些数据能重用。 第四,简明性。) 口l 只有s g m l 约2 0 的复杂性但具有s g m l 功能的约8 0 , 同完整s g m l 的相比,捌l 简单得多、易学、易用,易实现。可以预言,随着人们对 煳l 认识的逐渐深入,删l 必将成为网络技术不可缺少的一员。 2 3x m l 的相关应用及使用前景 作为互联网的新技术,v i l 的应用非常广泛,可以说讧l 已经渗透到了联网的 各个角落。下面主要列举其几个经典应用: 1 、电子商务 电子商务就是利用电子手段尤其是互联网进行商务活动,通过互联网传输和交换商 务数据,并能根据商务数据进行人工或自动处理。l 的可扩展性和自相容性等特点, 使它成为电子商务活动中数据交换的有力工具。 2 、网络出版 网络出版自从出现以来,用于信息发布的主要是h t m l 技术,但是这种方式在跨 媒体出版时遇到了极大的困难,人们需要为不同媒体制作不同版本。根据讧l 的内容 与显示分离的特点,人们可以一次性制作内容,配以不同的样式单,实现一次制作多次 出版。 3 、移动通信 第二章x m l 及其相关技术 为了满足人们随时随地与互联网连接的需要,p h o n e c o m 联合了n o b a 、e r i c s s o n 、 m o t o r o l a 在1 9 9 7 年6 月建立了w a j p 论坛,旨在利用已有的互联网技术和标准,为 移动设备连接互联网建立全球性的统一规范。在1 9 9 8 年5 月,推出了w a j p 规范1 0 版。w a p 范包括w a j p 编程模型、无线置标语言w m l 、微浏览器规范、轻量级协议 栈、无线电话应用( 帆) 框架、w a p 网关几个组件。其中w m l 是利用捌l 定 义的专为手持设备的置标语言。另外w 3 c 也定义了一个基于l 的手持设备置标 语言皿m l 。w m l 和皿m l 非常类似,因为呲脱胎于皿m l ,可以说根在 h d m l ,而花开w m l 。需要指出的是,虽然人们在提到w a p 时首先想到的是手机上 网,但掌上电脑等手持设备的上网也可以使用w a p 。 4 、) a l 前景展望 l 自从出现以来,一直受到业界的广泛关注。自从1 9 9 8 年2 月成为推荐标准 后,许多厂商加强了对它的支持力度,包括m i c r o s o f i 、m m 、o r a c l e 、s u n 等,它 们都推出了支持删l 的产品或改造原有的产品支持) 口l 。由于煳l 是元置标语 言,任何个人、公司和组织都可以利用它定义新的标准,x m l 的出现为互联网的发展 提供了新的动力,终将成为互联网上全新的开发平台。它促使了新类型软件和硬件地形 成和发展,而这些发展又将反过来促进垤l 的发展。 2 4 m l 的文档格式 2 4 1x 札的语法 l 文档的基本结构由序言部分和一个根元素组成。序言包括了小声明d t d 和ls c h e m a 都是用来描述x m l 文档结构的,也就是描述元素和属性是如何联系在 一起的。一个讧l 文档中有且仅有一个根元素,其他所有的元素都是它的子元素,一 个x 】l 文档首先应当是“格式良好的 ( w e 1 1 f o n n e d ) ,该规定的正式定义位于: 1 脚:伪哪w w 3 o 吲t r 瓜e c - x m l 。“格式良好的 l 文档除了要满足根元素唯一的特 性之外,还包括: l 、起始标签和结束标签应当匹配:结束标签是必不可少的。 2 、大小写应一致:讧l 对字母的大小写是敏感的, 和 是 完全不同的两个标签,所以结束标签在匹配时一定要注意大小写一致。 3 、元素应当正确嵌套:子元素应当完全包括在父辈元素中,下面的例子就是错误 嵌套:勺 正确的嵌套方式如下:叫p 科a 属性必须包括在 引号中。 4 、元素中的属性是不允许重复。l 文档的“有效性 是指一个l 文档应 当遵守d t d 文件或s c h e m a 规定,有效的l 文档肯定是格式良好的。 6 长安大学硕士学位论文 2 4 2x m l 的名称空间 瑚l 文档中很可能会定义许多名字相同而意义不同的元素或属性,尤其在不同的 订l 文档合二为一时,更容易产生冲突。名称空间就是为了解决这个问题而提出的, 它用u r j ( u n i f o 姗r e s o u r c ei n d i c a t o r ,统一资源指示器) 加以区别,是x m l 文件的 元素和属性中出现的所有名称的集合。如下面的l 片断: t ,p r :d e s c r i p t i o i l r e i i i l b u r s ee x p e i l s e s t 却r :d e s c r i p t i o i l 19 9 7 6 t 却r :p a 皿e n l 有了名称空间,用户就可以保证在文件中使用的名称是唯一的。对元素的属性x m l l l s 进 行定义就表示对该元素指定了一个名称空间。n a m e s p a c en 锄e 必须是一个有效的切r i 。 如果省略l o c a lp r e f i x ( 本地前缀) ,这时就构成了缺省名称空间: 12 3 4 妣u s t o m e r 5 0 0 o i 12 0 3 2 0 0 i ) 唧a ) ,i i l e r 胗 如果对一个元素定义了缺省名称空间,那么该元素及其子元素,包括它们的属性都会自 动地成为该名称空间的一部分,不用再在元素和属性前面一一标明了。 2 5x m l 语言的相关规范 自从l 1 0 规范【l l 】发布之后,讧l 的有关技术规范不断涌现,w 3 c1 9 9 9 年先 后推出了n 锄e s p a c e si nx m l ( x m l 中的名字空间) ,c s s 2 、a s s o c i a t i i l gs t y l e s h e e t sw i t h ld o c u m e m s ( 将样式表关联到订l 文档) 等标准。与x m l 有关的重要技术规范 还包括和d o m 、x l i l l l 【( l l i l l l 【l a n g e ) 、ls c h 锄a 等。 2 5 1 应用编程接口d o m 和s a ) ( 围绕l 出现的各种标准的a p i ( a p p l i c a t i o np r 0 黟a i l l i l l 吨i n t e r f ;k e ,应用程接口) 对于讧l 应用开发来说无疑是十分重要的,应用开发者可以使用这些标的接口来获得 和设置删l 文档中的元素、属性、数据内容等。在这些煳l 的应用编程接口中最 重要的是w 3 c 制定的d o m ( d o c u m e l l to b j e c tm o d e l ,文档对象模型) 。d o m 是基于 文档的树状结构,它提供了用来表示讧l 文档和h t m l 文档的一组标准对象、组合 这些对象的标准模型以及存取和操纵它们的一个标准接口。s a x ( s i m p l e a p i sf 0 r 捌l , l 简单应用程序接口) 提供了一种对儿文档进行顺序访问模式,这是一种快速 7 第二章x m l 及其相关技术 读写煳l 数据的方式。 d o m 分析器通过对脚l 文档的分析,把整个订l 文档以一棵d o m 树的形 式存放在内存中,应用程序可以随时对d o m 树中的任何一个部分进行访问与操作, 这种访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个x m l 文 档中的内容。所以d o m 分析器对机器性能的要求比较高,实现效率不十分理想。不过, 由于d o m 分析器的树结构的思想与蹦l 文档的结构相吻合,而且,通过d o m 树 机制很容易实现随机访问,因此,d o m 分析器还是有很广泛的使用价值的。 s a x 分析器在对l 文档进行分析时,触发一系列的事件,应用程序通过事件 处理函数实现对x m l 文档的访问。s a x 之所以被叫做”简单”应用程序接口,是因为 s a x 分析器只做了一些简单的工作,大部分工作还要由应用程序自己去做。同d o m 分析器相比,s a x 分析器对) a l 文档的处理缺乏一定的灵活性,然而,对于那些只 需要访问l 文档中的数据而不对文档进行更改的应用程序来说,s a x 分析器的效 率则更高。由于s a x 分析器实现简单,对内存要求比较低,因此实现效率比较高,同 样具有广泛的使用价值。 2 5 2x s l ( x m ls t y i e s h e e tl a n g u a g e ) 剐l 的一个最重要的特性是把内容和显示格式分开,这样做带来了很大的好处, 可以让不同的用户按照各自希望的格式显示同一煳l 文档的数据内容,这也就意味着 蹦l 文档本身并没有关于格式方面的信息,为删l 文档提供格式信息的是样式表, 适用于) a l 文档的样式表语言有x s l 和c s s 语言。c s s 语言既可以用于h t m l 文档也可以用于煳l 文档,而x s l 是专为l 设计的样式表语言并采用x m l 语法,x s l 的优势在于它可以用于转换。严格说来x s l 包含3 部分:x s l t ( x s l t r a l l s f 0 硼a t i o n ) 、a t h ( 讧lp a t hl a i l g u a g e 和x s l 格式化对象。下文主要对x s l t 和x p a t h 做个简单介绍。 x s l t :x s l t 是x s l 标准中最重要的部分,它用于将一个讧i ,文档转换成另 一个删l 文档或另一种类型的文档,也就是将一个订l 文档转换成浏览器所能识 别的一种格式。这其中之一就是h t m l 。通常,x s l t 将每个讧l 元素都转换成一 个h t m l 元素。x s l t 还可以向输出文件中增加全新的元素,或去掉一些元素。它可 以重新安排这些元素并对元素进行分类,测试并确定显示哪些元素等等。 x p a m :x p a t l l 是用来帮助x s l t 在x m l 源文档中查找定位信息的语言【1 8 】。在实 际使用过程中,? a t l l 和x s l t 总是混在一起使用。砒本质上是与具有层次结构 的讧l 数据模型相匹配的查询语言【1 引。它可以通过按任何方向浏览树来选择节点,并 根据节点的值和位置应用谓词。它还包括用于基本字符串处理、数字计算和布尔代数的 工具。以3 3 1 d t d 节为例,) a ? a m 表达式b i b b 0 0 k y e a r 表示从文档根开始,选择 所有b i b 子元素,然后选择b i b 的所有b o o k 子元素,最后选择b o o k 子元素的所有 长安大学硕士学位论文 y e a r 属性。,a :c l l 表达式用于选择要进行处理的输入节点在条件处理期间测试条件,以 及计算值以便插入结果树中。 2 5 3xq u e r y x m l q u e 1 2 】( x q u e r ) r ) 是在) a l 数据中搜索特定信息的功能强大的新方法, 与a n l2 o 的起源相同。x q u e 巧是x m l 规范和w 3 c 建议书之间相互关系的优秀 示例。x q u e 巧工作组与x s l 工作组还一起负责a t h2 o 工作草案,a m2 0 将包 括许多为x q u 叫开发的功能。除了对x p a t l l 的增强外,x q u e 巧还允许您通过嵌套 类s q l 的子句来创建复杂查询,以及通过将x m l 构造器直接包括在输出中来创建复 杂结果。全新的f i ,w r 是f o r l e t w h e r e r e 骶瓜n 的缩写,它描述了典型x q u e 巧 的结构【1 羽。在f i 胍语句中,数据被绑定到变量,然后,后续步骤使用该变量。以3 3 1 节d t d 文档为例,使用下面的语句: f o r $ b o o k i i l d o c u m e n t ( ”h t t p :价州w b n c o n 泊i b x i i l l ”) b 0 0 k l e t $ c o i i l l n 朗n := $ b o o k c o m m e n t w r h e r e $ b 0 0 郇u b l i s h e r = a d d i s o n - w e s l e y r e n m l 该语句返回原始文档中每个b 0 0 k 元素的b 0 0 k h l f 0 元素,其中b 0 0 k 元素的“p u b l i s h e r 子元素为a d d i s o n - w b s l e y 。每个b 0 0 k h l f 0 元素都有c o i n m e n t 子元素,如下所示: o m m a 肼c p p l u s t r a t e d c o m m e n 伊a d v a n c e dp r o 伊a i i l i n i n gi nm eu i l i xe i i v 拍m n e i l t 2 5 4x m l 链接规范 讧l 链接规范分为三个部分:x 1 i 1 1 1 【( 订ll i l l l 【l a i l g e ) 语言、v i lb a u s e 和 x p o i n 衙( 儿p 0 i n t e rl a l l g u a g e ) 语言。其中,x l i i l l 【语言用于建立资源之间的链接 【1 8 1 ;l b a s e 定义了显示控制文档中元素的基准,r i 的处理语法【2 3 】:,o 缸e r 用 于定位龇文档中的片断。需要指出的是,x 1 lb 嬲e 和o i n t e r 语言的使用并不 局限于链接,它们的主要功能在于资源的定位。当前的主流浏览器 n c t s c 印en a v i g a t o r 和h l t e m e te x p l o 崩对x l i l l l ( 的支持非常弱,在n e t s c 印en a v i g a t o r 9 第二章x m l 及其相关技术 6 o 的预览发行版中可以发现对简单舭链接的支持,但是其支持的部分并不完全符 合最新规范;i n t e m e te x p l o r e r5 5 没有提出对x l i l l l 【支持。如果要在浏览器中显示链 接,可以利用x s l t 将l 链接转化为h t m l 链接加以显示。 2 6 本章小结 x m l 及其相关技术规范是个十分庞大而又复杂的大家族。学习龇不一定要详 细了解捌l 的每个技术归范,但对删l 技术规范的整体结构的了解是十分必要的。 本简要介绍了煳l 的基础知识及其相关技术归范,希望通过本章的阅读能够大体上了 解涯l 技术,并为后面内容的阅读做好准备。 l o 长安大学硕士学位论文 3 1x m l 和数据库 第三章基于关系的x m l 存储方法 在讨论l 和数据库之前,有必要回答一个萦绕在很多人心头的问题:”x m l t 是数据库吗? 在严格意义上将,如果”l ”是指讧l 文档时,答案是”否”。尽管l 文档包含了数据,但是如果没有其他的软件来处理这些数据,它对于数据库的意义和其 他文本文件没有什么区别。如果在更为宽泛一些的意义上讲,当”x m l ”是指x m l 文档 以及所有相关的l 的工具和技术时,答案则是”是”。之所以肯定是由于l 提 供了许多数据库中所需要的部分:存储( x m l 文档) ,结构( d o c 啪e n t1 卯ed e 觚t i o n ,x m l s c h e m a 语言) ,查询语言( x q l ,江l q l ,q u i l t 等) ,编程接口( s i i n p l ea p i s 矗w 证l , d o c 啪e n to b j e c tm o d e l ) ,等等。不过) m l 还缺少很多在真实的数据库中所必备的内容: 有效的存储、索引、安全、交易、数据完备性、多用户访问、触发、多文档查询等。因 此如果在数据量一般、用户较少、性能要求不高的环境下可以把x m l 当作数据库来使 用;而在大多产品的环境中,要求有许多的用户使用、需要严格的数据完整性并且对性 能有很高的要求,l 就不能胜任了。而且,考虑到象d b 嬲e 和a c c e s s 等数据库既 便宜又十分易用,因此甚至在第一种情况下煳l 都很少有理由充当数据库的角色。 在选择数据库时,最重要的判断因素可能是你保存的信息是数据还是保存文档。如 果想保存数据,需要的数据库主要是面向数据存储( 例如关系型数据库或者面向对象型 数据库) 以及在数据库和煳l 文档之间相互转换。从另一个角度来讲,如果你想存储 文档,你需要一个专门设计用来存储文件的内容管理系统。当然你也可以自己把文件保 存在关系数据库或面向对象数据库中,可是你常会发现你的工作是在重复内容管理系统 的功能。类似的,虽然一个内容管理系统通常是建立在面向对象数据库或关系数据库之 上,但要是把一个内容管理系统当做数据库来使用就可能非常的令人困绕你需要存储数 据还是文档,答案常常取决于你的) a l 文档是以数据为中心还是以文档为中心。 以数据为中心的文件的特点是结构相当规范、数据颗粒度好( 也就是说,数据中最 小的独立单元是p c d a r a ( p a r s e dc h 嬲l c t e rd a t a ) 元素或者是属性) 、很少或者没有混合 内容。其中同层次元素和p c d 筒渔的出现顺序并不重要。典型的例子是,l 文档 包含了销售定单、飞行安排、餐馆菜单等等。数据为中心的文档常被用于机器的使用, 这时煳l 可能是多余的它仅仅是数据传输的手段而已。 以文档为中心的文档的特点是结构不规范、数据颗粒度更大( 即,最小的独立数据 单元是包含有混合内容的元素或者就是整个订l 文档) 以及含有大量的混合内容。其 中相同层次的元素和p c d a r a 出现顺序是非常重要的。典型的例子是书、电子邮件、 广告以及大多数t m l 文档。以文档为中心的文档是用于人的使用。在现实情况中, 第三章基于关系的x m l 存储方法 以数据为中心的文件和文档为中心的文件之间的区别并不是很严格。例如,一个以数据 为中心的文件( 如一张发票) ,也有可能包含粗颗粒度、不规则的数据( 如发票的描述部 分) 。而一个以文档为中心文件( 如用户手册) 也可能包含有良好颗粒度、规则的结构化数 据( 通常是元数据) ,例如作者和修订日期。除此之外,让你的文档具有以数据为中心或者 以文档为中心的特点有助于你判断是关心数据还是文档,这也将决定你需要采用什么样 的系统。 3 2x m l 存储的背景知识 随着越来越多的数据用) a l 文档表示,x m l 文档的存储和查询也成为人们日益 关心的问题。而由于关系数据库的稳定性、成熟性和历史悠久性,自然成了研究者的青 睐。基于关系的x 1 l 的存储方法已经出现了不少,但概括起来讲,所有这些l 数 据的存储方法主要可以分为以下三种方式: 1 、将舭文档作为一个整体存储在数据库的某一列中,它的基本存储单元是 煳l 文档。这种存储方法维持原有l 文档的数据结构和相关的元数据,只能通过 数据库中特有的搜索技术对数据进行存储和检索。这种方法优点是实现起来比较简单。 2 、将订l 文档看成是一种图的结构,对其进行一定的分解,然后将其元素和值 存储在关系数据库中。d a i l i e l af 1 0 r e s c u 【6 l 把讧l 文档作为一个有序、有向的图元素作 为图中的结点,元素之间的关系用带标签的边表示,然后将图中的节点和边存储在数据 库中,而文酬1 0 l 提出了一种基于边的存储方法,将所有l 文档映射到几个固定的关 系表中。这一类方法针对的是l 文档,没有考虑到讧l 文档的模式,对每一单个 l 文档进行映射,不具有通用性,而且增加了数据库查询的复杂性。 3 、采用一定的映射规则,直接将删l 文档模式( 或从矾l 文档中抽取出其模 式信息r 7 】) ,映射到相应的关系模式,然后再根据映射模式存储相应的讧l 文档。这 种方法能够利用到关系数据库的特性,如查询优化和并发性控制等。在这方面 s h 观m u g a s l m d a r a m 【9 1 ,r b o u 玎e t 【1 4 1 ,和d e u t s c h 【7 1 等人都作了较深入的研究。然而现在 大部分的研究和应用都是基于d t d ( d o c m n e n tt y p ed e f i i l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物学《遗传学基础与进化论》教学大纲
- 办公区域无线网络建设及维护合同
- 早期教育招生课件
- 早期政治制度课件
- 纪念设施课件
- 早期复级化课件
- 农业经济管理软件服务与维护合同
- 纪念刘和珍君课件
- 2025年山东省公务员录用考试申论真题模拟解析
- 员工福利协议签署文件
- 2025年内江市总工会公开招聘工会社会工作者(14人)笔试模拟试题及答案解析
- 2025云南辅警笔试题目及答案
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考试题及答案解析
- 2025年三支扶陕西试题及答案
- 2025年行政执法证考试必刷题库与答案
- 基孔肯雅热防控知识考试试题含答案
- 低钾血症护理常规业务学习
- (高清版)DZT 0388-2021 矿区地下水监测规范
- 新编物理基础学王少杰(上、(下册))课后习题答案
- 产品设备安装调试方案
- 电动转向管柱系统项目商业计划书范文参考
评论
0/150
提交评论