




已阅读5页,还剩48页未读, 继续免费阅读
(计算机应用技术专业论文)基于缓存的xml代数查询优化的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉科技大学硕士学位论文第1 页 摘要 x m l 已经逐渐成为1 1 1 t e n l e t 上数据的表示标准和信息交换基本语言,作为一种半结 构化数据,它和传统数据库在数据模式上有所不同,因此不能直接使用传统的数据库技术 进行处理。随着x m l 查询语言与存储机制研究的日趋成熟,如何提高查询时的效率,实 现查询优化成了一个有待解决的问题。 x m l 查询优化问题和数据的存储、索引的建立、查询语言和代数表达式都有关系。 随着x m l 查询优化问题的不断深入研究,针对x m l 查询的缓存技术受到越来越多的关 注。利用缓存提高查询响应时间的基本思想是,把“热数据( 频繁查询模式) 保存在缓 存中,当新的查询到来时,数据库管理系统首先检查是否可以由缓存中的数据进行回答, 如果可以,则直接从缓存中返回查询结果,这样可以有效地提高数据库的处理效率和响应 能力。因此,本文提出了一种利用缓存技术对x m l 代数查询进行优化的策略。文章首先 介绍了一种查询代数t a x 。详细阐述了此查询代数的模式树和实例树的概念以及定义 的各种操作符,并介绍了如何将x q u e 珂查询解析成t a x 查询代数表达式。然后在此代 数模式的基础上介绍了将语义缓存技术应用到x m l 代数查询的过程,重点给出了在查询 过程中的缓存匹配规则。最后,通过对实验结果的分析,验证了此优化策略的可行性和有 效性。 关键词:x m l 代数查询优化;t a x ;语义缓存;缓存匹配 a b s t r a c t a sal ( i n do fs e m i s t r u c t u r e dd a t a , x m lh a sb e c o m eas t a n d a r df o rd a t ae x p r e s s i n ga n da l a n g u a g ef o ri n f o r m a t i o ne x c h a n g i n gg r a d u a l l y , a n di t i sd i f f e r e n tf r o mt h ed a t am o d e l so f t 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 e ,s oi tc a nn o tb ee f f e c t i v e l yp r o c e s s e db yt h et r a d i t i o n a ld a t a b a s e t e c h n i q u e s w i t ht h ed e v e l o p m e n to fx m lq u e r yl a n g u a g ea n ds t o r em e c h a n i s m ,h o wt o i m p r o v et h eq u e r y i n ge f f i c i e n c yh a s b e c o m em o r ea n dm o r ei m p o r t a n t x m lq u e r yo p t i m i z a t i o nr e l a t e dt ot h ed a t as t o r a g e ,t h ei n d e xe s t a b l i s h m e n t ,t h eq u e r y i n g l a n g u a g ea n d t h ea l g e b r ae x p r e s s i o n a l o n gw i t ht h ec o n t i n u o u sf o c u s i n go no ft h ex m lq u e r y o p t i m i z a t i o n ,x m lq u e r yf o rc a c h i n gi sg r a d u a l l yg a i n i n g m o r ea n dm o r ea t t e n t i o n t h eb a s i c i d e a ro fi m p r o v i n gq u e r yt i m eu s i n gc a c h ei s ,c a c h i n gh o td a t a ( f r e q u e n tq u e r yp a t t e r n s ) w h e n an e wq u e r yr e q u e s t s ,d m s ( d a t a b a s em a n a g e m e n ts y s t e m ) f i r s tj u d g e sw h e t h e ri tc a nb e a n s w e r e db yc a c h e i fi tc a l l ,t h er e s u l ti sr e t u r n e df r o mc a c h e i nt h i sw a y , t h ep r o c e s s i n g e f f i c i e n c ya n dr e s p o n s ea b i l i t yc a nb ei m p r o v e de f f e c t i v e l y s o ,t h i sp a p e rp r o p o s e da s t r a t e g y f o rq u e r yo p t i m i z a t i o no fx m la l g e b r au s i n gc a c h e f i r s t ,t h ep a p e ri n t r o d u c e dt a x , a k i n do f q u e r ya l g e b r a e x p a t i a t e do nt h ep a t t e r nt r e ea n dw i t n e s s t r e eo ft h eq u e r ya l g e b r aa sw e l la st h e d e f i n i t i o na b o u tv a r i o u so p e r a t o r s ,e x p l a i n e dh o wt op a r s ex q u e r yi n t ot a xe x p r e s s i o na l s o s e c o n d ,t h i sp a p e re x p l a i n e dt h eq u e r yp r o c e s s o fx m la l g e b r au s i n gs e m a n t i cc a c h e t e c h n o l o g yb a s e do nt h i sq u e r ya l g e b r a , a n dp r o p o s e dr u l e so fc a c h em a t c h i n gi nt h eq u e r y p r o c e s s a tl a s t ,i tp r o v e dt h ef e a s i b i l i t ya n d e f f e c t i v e n e s so ft h eo p t i m i z a t i o nm e t h o da c c o r d i n g t ot h er e s u l to fe x p e r i m e n t k e yw o r d s :q u e r yo p t i m i z a t i o no f x m la l g e b r a ;t a x ;s e m a n t i cc a c h e ;c a c h em a t c h i n g 武汉科技大学 研究生学位论文创新性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下,独立进行研 究所取得的成果。除了文中已经注明引用的内容或属合作研究共同完成的 工作外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:锡劫咖 日期:至竺牡! 蜩 研究生学位论文版权使用授权声明 本论文的研究成果归武汉科技大学所有,其研究内容不得以其它单位 的名义发表。本人完全了解武汉科技大学有关保留、使用学位论文的规定, 同意学校保留并向有关部门( 按照武汉科技大学关于研究生学位论文收录 工作的规定执行) 送交论文的复印件和电子版本,允许论文被查阅和借阅, 同意学校将本论文的全部或部分内容编入学校认可的国家相关数据库进行 检索和对外服务。 论文作者签名: 指导教师签名: 日期: 武汉科技大学硕士学位论文 第1 页 1 1 论文的背景和意义 第一章绪论 随着i n t e m e t 信息技术的高速发展,i n t e r n e t 已经成为人们获取信息的主要工具和最具 潜力的资源,提供了世界范围内的网络通信。它作为一种新的环境资源,为新技术的产生 开辟了新的领域,同时也为数据管理技术的研究提出了新的问题【l 】。w e b 技术与生产生活 的紧密联系,使得信息量与日俱增,信息形式多种多样。人们迫切需要把原来使用不同平 台的信息服务和管理系统联系起来,并且能够以w e b 页面的形式,进行全球信息传递和 共享。w e b 上的资源不仅包括传统的有严格数据模型的数据库,还包括无结构和半结构 的数据,要用传统的数据库技术来存储和查询w e 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 ) 应运而生,并在 w 3 c 组织正式推出它的短短几年里,迅速成为一个在因特网上数据表示和数据交换的新 标准,并受到越来越多的关注。 x m l 数据作为一种数据表现和交换的格式,具有灵活性、自描述性、可扩展性等特 点,越来越多的领域开始使用它作为主要的存储格式和传输媒介,特别是在w w w 上被 广泛接受和采用,因而产生了大量的x m l 数据。随着x m l 应用越来越广泛,传统信息 管理技术因为x m l 数据库技术的出现而面临新的挑战。x m l 数据库技术包括数据的存 储策略、索引机制、查询处理和查询优化等。x m l 的存取和访问是早期研究的重点,研 究者提出了多种x m l 数据的存储模型和索引技术,与此同时,i n t e m e t 上的应用对x m l 数据的查询、定位和获取的需求不断增加,也引发了对x m l 数据进行合理存储和快速查 询的要求,从众多的x m l 资源中快速提取信息成为一个需要迫切解决的问题,因此快速 有效地处理x m l 查询的课题成为当前研究的热点。所以近几年,x m l 数据库研究的重 点是x m l 的查询处理及其优化。 在众多的x m l 查询优化方法,缓存技术得到了业界的广泛关注。缓存技术最早是在 关系数据库中提出的,这是数据库系统的一个重要功能。缓存是优化数据库系统性能的一 项重要技术。最初的数据库服务器采用类似操作系统的缓存机制提高数据库性能,通过将 经常访问的数据缓存在内存中来减少对磁盘的i 0 操作。随着c l i e n t s e r v e r 结构数据库系 统的广泛使用,客户端缓存技术得到了很大发展。在传统c l i e n t s e r v e r 结构数据库系统中, 查询处理完全由服务器完成,不能充分利用客户端资源。客户端缓存的思想是按照一定策 略将从服务器取得的数据缓存在内存或本地磁盘,当缓存的数据能够被查询重用时就在本 地处理。利用缓存提高数据库的查询响应时间的基本思想是,数据库管理系统有选择的对 查询结果进行缓存,把经常被查询的数据( 即“热数据 ) 保存在缓存中。当新的查询来 到时,数据库管理系统首先检查是否可以由缓存中的数据进行回答,如果可以,则直接从 缓存中返回查询结果,这样就避免了i 0 开销较大的磁盘数据读取从而提高了查询响应速 第2 页武汉科技大学硕士学位论文 度。 随着对x m l 数据库技术的不断深入研究,x m l 数据库缓存技术正在逐渐受到越来 越多的关注。通过对“热数据”进行缓存,可以有效地提高数据库的处理效率和响应能力。 更重要的是,x m l 技术是起源于i n t e m e t 网络应用大规模发展的大背景下,x m l 数据更 多地是与i n t e m e t 上的应用相关,网络数据传输代价给x m l 数据库的性能带来了更多的 挑战,所以对x m l 数据查询响应时间的要求就显得更加重要。在这种情形下,合理高效 地缓存数据,一方面可以大规模地提高数据库的响应速度,减少结果数据的返回时间,缓 解网络数据传输带来的一系列性能上的问题;另一方面,缓存数据也可以有效地减少网络 传输中不必要的负载,极大地提高w e b 环境下半结构化数据的查询性能。 1 2 国内外的研究现状 查询优化在x m l 数据库中具有重要作用,是一个正在被广泛、深入研究的课题。x m l 数据库查询优化问题,和数据的存储、索引的建立( 物理层) ,查询语言和代数表达式( 逻 辑层) 都有关系。目前x m l 查询优化方法的研究有:基于路径表达式的优化方法,该 方法是利用x m l 文档的模式信息产生优化规则,对路径表达式进行重写以实现优化目的。 王国仁等在文献 2 】中提出了x m l 模式信息简化x m l 查询路径表达式的策略,文献【3 】 中提出了完全基于路径表达式的查询优化方法。查询最小化,查询最小化问题的实质是 等价问题。文献【4 是最早研究x p a t h 查询最小化问题的。基于查询代价估计的连接次 序优化。在x m l 查询中,一个给定的查询或逻辑计划在转换为物理查询计划的时候往往 有多种选择,通常要对多个物理查询计划进行评价,选择最好的物理查询计划,这种评价 往往是基于代价的。此类研究目前比较多,文献 5 】对多种连接代价估计进行了概括和评 价。关于x m l 查询代数的研究。代数优化的技术是在关系代数的基础上创造的。通过 建立一个查询代数,利用代数操作来实现查询优化。文献【7 】提出了一种x m l 查询的逻辑 代数表示,a n x q l 。7 】代数。基于这种代数表示作者探讨了在逻辑层面上进行x m l 查询优 化的可能性和方法,对查询优化的研究主要是在异构集成系统的前提下进行的,从代数重 写的角度探讨查询优化的方法和可能性。主要原理是尽量减少扫描原文档的次数,或者减 少不必要的中间层次的变量绑定,达到物理查询的效率最高。还有一种研究是在一种查询 代数e t a 8 】的基础上进行代数级的优化,采用了启发式查询优化规则来进行查询优化的处 理。孟晓峰等人提出了一种查询代数o r i e n t x a 9 1 ,研究人员针对x m l 查询语言和x m l 数据的特点,提出了x m l 代数新的优化问题:更多的分组操作【l 。 除此之外,基于缓存的查询优化技术也是提高查询效率的一种重要方法同时也是本文 研究的重点。缓存技术的设计目的是在缓存中存储那些访问频度较高的数据项,使得系统 能够减少输入输出次数以及降低客户端与服务器端的通信开销,以更快的速度处理这些数 据项,从而提高系统的整体性能。目前对x m l 查询缓存的研究主要是基于语义缓存【l l 】 的查询优化。国内外对x m l 语义缓存技术的研究主要在三个方面:热数据的合理判断; 语义缓存模型和查询与缓存的匹配算法;缓存内替换策略。h r i s t i d i s 和p e t r o p o u l o s 0 2 1 提出 武汉科技大学硕士学位论文第3 页 了一个压缩结构m i t ( m o d i f i e di n c o m p l e t et r e e ) 用来表示x m l 查询的语义区域。 a c e x q 1 3j 是一个基于x q u e r y 的语义缓存系统。作者判断一个新查询是否包含在缓存中 及怎样回写与缓存查询一致的新查询。在文献 1 4 中考虑使用缓存中已存在的x q u e r y 查 询来回答新的查询。在文献 1 5 中为了回答新的查询挖掘频繁子树模式来缓存他们的结 果。但在这两种方法中,只有结果已存在缓存中的那些查询能够被回答。文献 1 6 是对 x m l 查询缓存中的替换策略进行研究,在语义相近的两个查询组中挖掘关联规则,并且 同时使用负的关联规则去降低其对应的查询区域的替换权值,利用发现的关联规则设计了 替换策略l r ua r 。文献 1 7 】提出了一种基于x o u e r y 和语义缓存的x m l 查询处理技术, 对x q u e r y 的核心语法子集的语义进行研究,提出了语义匹配算法和基于缓存的反向匹配 重写算法,并设计实现了基于路径表达式的细粒度缓存替换策略。 1 3 文章组织形式 本文共分五章。 第一章介绍了课题的研究背景与研究意义,并分析了国内外相关研究情况。 第二章介绍了x m l 的基本概念,阐述了x m l 的特性和x m l 模式( x m ld t d 和x m l s c h e m a ) 。重点介绍了x m l 查询语言,x p a t h 路径语言和x q u e r y 查询语言,说明了对 x m l 文档进行查询的理论依据。 第三章先介绍了x m l 查询代数的特点,并列举了国内外对查询代数的研究情况。然 后重点介绍了一种新的查询代数- t a x 【6 1 ,详细介绍了t a x 的数据模型,包括模式树 和实例树,还有t a x 的几种主要操作符,最后阐述了t a x 的表达能力,说明了如何将查 询语句转换成t a x 代数表达式。 第四章主要是对x m l 代数查询优化的研究。首先阐述了x m l 代数查询优化的相关 理论依据。然后提出了一种基于缓存的代数查询优化策略,本章主要是在查询代数t a x 的基础上,采用语义缓存技术来达到查询优化的目的。重点给出了在x m l 代数查询过程 中的缓存匹配规则,并给出了实验结果及其分析。 第五章对全文进行总结,并提出进一步需要展开的工作。 第4 页武汉科技大学硕士学位论文 2 1x m l 语言简介 第二章x m l 基本定义及查询语言 随着计算机网络的发展,作为全球最大的网络i n t 啪e t ,已经成为信息发布和获 取的平台,任何人都可以在i n t e m e t 上发布和获取数据。而w e b 则是环球信息资源库。从 广义上讲,w e b 本身就是一个巨大的数据库,里面包含着海量的数据,而这些数据是日 新月异,不断变化的。目前几乎所有的w e b 页面都是直接或间接地用h t m l 编写的。h t m l 是一种基于建立超文本超媒体文档的标记语言,是s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u p l a n g u a g e ,标准通用标记语言) 的一种应用,它具有通用的语义,适合于表示各系统域的 信息。h t m l 的应用十分广泛,它用于描述超文本化的新闻、邮件与文档,超媒体文档, 操作菜单,数据库查询结果,嵌入图形的结构化文档等。由于传统的h t m l 只适合数据 的浏览,而不适合数据间的交换,因此需要一种新的语言能够适应数据的组织和交换。为 了推动互联网继续向前发展,w 3 c 组织指定了一套新的标准x m l 。 2 1 1x 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 ( 可扩展标志语言) 【博j ,是由万维网协会( w 3 c ) 设计的用来自动描述数据信息的一种新的标记语言,适合w e b 上的应用之间或应用与用 户之间的数据交换。它不像h t m l 那样有固定的形式,所以使得s g m l 标准能在互联网 上应用自如。x m l 并不是一个独立的、预定义的标识语言,它属于一种元语言,即用来 描述其他语言的语言。x m l 符合s g m l 标准,保持了s g m l 的扩展性、结构化以及可 验证等方面的性能,重新定义了s g m l 的某些内部数值及参数,在语言的易懂性、易用 性及对w w w 的适应性方面做了较大改进。 最基本的x m l 包括三个相互联系的标准,它们是可扩展标识语言x m l 、可扩展的 样式语言x s l 和可扩展的链接语言x l l 。x s l 是用于规定x m l 文档样式的语言,它能 在客户端使w e b 浏览器改变文档的表示法,从而不需要再与服务器进行交互通信,x s l 凭借其扩展性能够控制无穷无尽的标记,而控制每个标记的方式也是无穷无尽的,这就给 w e b 提供了高级的布局特性。x l l 是基于x m l 的超文本链接标准,它提供了比h t m l 更加灵活的链接功能,支持可扩展的链接和多方向的链接,不受文档制约,可以存储在独 立于引用文本的数据库和数据组中,完全按用户要求来指定和管理。这三个标准使得x m l 语言在数据标识、显示风格及超文本链接上都比h t m l 更为优越。 x m l 被设计成为易于编写,易于解释和易于实现的s g m l 的一个分支,比起h t m l 来,x m l 继承了s g m l 的三大优点【1 9 j : ( 1 ) 可扩展性,信息提供者可以针对自己的应用程序定义新的标签和属性。 武汉科技大学硕士学位论文第5 页 ( 2 ) 结构化,文档结构可以嵌套到任意复杂的层次。 ( 3 ) 确认化,应用程序不用应用外部定义的词汇就可以快速检查x m l 文档的结构 正确性。 x m l 和h t m l 的区别在于:x m l 中的标签t a g 是可以任意的,而h t m l 中的标签 是有统一的格式;而且x m l 的标签必须是封闭的,标签必须配对的出现。x m l 文档由 标记和内容组成,其中共有六种标记:元素、属性、实体引用、注释、处理指令和c d a t a 段。一个格式良好的x m l 文件需要满足的主要基本规则包括: 起始标记和结束标记必须匹配; 标记之间不能交叉; 标记对大小写敏感; 所有属性值必须加引号; 每个x m l 文档必须有唯一的根元素。 图2 1 是一个x m l 文档实例: 图2 1x m l 文档实例 它是一个包含出版物信息的x m l 文档。p u b 是根元素r o o te l e m e l l t ,一个x m l 文档 只能有一个根元素。p u b 、b o o k 、t i t l e 等标签都是x m l 文档的元素e l 锄e i l t 。元素必须是 封闭的,也就是说每个元素之间都没有交叉。每个b o o k 元素中有一个t i t l e 子元素、一个 p r i c e 子元素和至少一个( 即一个或多个) a u t h o r 子元素,y e a r 为b o o k 的属性a r f i b u t e 。2 0 0 0 、 d a t a b a s es y s t e i i lc o n c 印t s 、2 6 5 0 等为属性或元素的值。可以看到x m l 中既包含了数据 第6 页武汉科技大学硕士学位论文 的结构信息又包含了数据的内容信息。但它的结构信息并不完整,比如从x m l 文档中不 能知道元素p r i c e 的值2 6 5 0 是一个数还是一个字符串,即不能从x m l 文档中知道它的数 据类型。所以被称之为半结构化数据( s e m i s t r u c t u r e dd a t a ) ,它介于结构化数据和无结 构化数据之间。 2 1 2x m l 的特性 x m l 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以 标识。它不像h t m l 或格式化程序。这些语言定义了一套固定的标记,用来描述一定数 目的元素。x m l 是一种元标记语言,用户可以定义自己需要的标记。这些标记必须根据 某些通用的原理来创建,x m l 标记描述的是文档内容的结构和含义,而不是描述页面元 素的格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记,而 不是说明文档看起来是什么样的。 x m l 的优势之一是它允许各个组织、个人建立适合自己需要的标识集合,并且这些 标识可以迅速地投入使用。这一特征使得x m l 可以在电子商务、政府文档、司法、出版、 c a d c a m 、保险机构、厂商和中介组织信息交换等领域中一展身手,针对不同的系统、 厂商提供各具特色的独立解决方案。x m l 的最大优点在于它的数据存储格式不受显示格 式的制约。一般来说,一篇文档包括三个要素:数据、结构和显示方式。x m l 把文档的 三要素独立开来,分别处理。首先把显示格式从数据内容中独立出来,保存在样式单文件 中,这样如果需要改变文档的显示方式,只需修改单文件就可以的。x m l 引入了结构的 概念,使得对数据的查询和标识更为方便。x m l 可以将多个应用程序所生成的数据纳入 同一个x m l 文件。一旦x m l 文件被传送到客户机上,经过解析即可被客户机所理解, 而不像h t m l 文件那样,只能由浏览器对数据进行显示。由于x m l 描述的是数据本身, 而不是像h t m l 那样描述的是数据的显示,因此它能成为一种有效的信息交换和共享的 媒介,也使得计算机在不需要人工干预的情况下进行通信成为可能。 总体来说,x m l 具有以下的一些重要特性: ( 1 ) 半结构化。半结构化是x m l 的一大特点。用户可以通过文档类型定义规范为 x m l 定义语法、数据结构以及元素类型,并且可以根据用户的需要增加、删除标记。x m l 文档可以用不同的样式进行显示。利用标记本身所包含的语义,x m l 可以将异构的数据 集成在一起。利用x m l 半结构化特性可以解决异构数据转换的问题。 ( 2 ) 自描述性。x m l 文档通常包含一个文档类型声明,因此文档是自描述的,不仅 人能读懂x m l 文档,计算机也能处理。x m l 文档中的数据可以被任何能够对x m l 数据 进行解析的应用所提取、分析、处理,并以所需格式显示,x m l 表示数据的方式真正做 到了独立于应用系统,并且数据能够重用。x m l 文档被看作是文档的数据库化和数据的 文档化。 ( 3 ) 可扩展性。x m l 允许使用者创建和使用他们自己的标记。这一点至关重要,企 业可以用x m l 为电子商务和供应链集成等应用定义自己的标记语言,甚至特定的行业也 武汉科技大学硕士学位论文第7 页 可以一起来定义该领域的特殊标记语言,作为该领域信息共享和数据交换的基础。 ( 4 ) 灵活性。h t m l 很难进一步发展,就是因为它是格式、超文本和图形用户界面 语义的混合,要同时发展这些混合在一起的功能是很困难的。而x m l 提供了一种结构化 的数据表示方式,使得用户的显示界面分离于结构化数据。在x m l 中可以使用样式表如 x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ) 、c s s 2 ( c a s c a d i n gs t y l es h e e t sl e v e l 2 ) 将数据呈现到浏 览器中。所以,w e b 用户所追求的许多先进功能在x m l 环境下更容易实现。 除了上述特性之外,x m l 还具有简明性。它只有s g m l 约2 0 的复杂性,但却具有 s g m l 功能的约8 0 。x m l 比完整的s g m l 简单得多,易学、易用并且易实现。另外, x m l 也吸收了人们多年来在w 曲上使用h t m l 的经验。x m l 支持世界上几乎所有的主 要语言,并且不同语言的文本可以在同一文档中混合使用,应用x m l 的软件能处理这种 语言的任何组合。所有这一切将使x m l 成为数据表示的一个开放标准,这种数据表示独 立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力,并为信息技术带来 新的机遇。目前,许多大公司和开发人员已经丌始使用x m l ,包括b 2 b 在内的许多优秀 应用已经证实了x m l 将会改变今后创建应用程序的方式。 2 2x m l 的模式 x m l 文档本质上是保存信息的结构化载体。为了得到x m l 文档的有效性,还必须 要明确文档中的信息必须遵守哪些结构,即需要一种用来描述x m l 文档中信息结构的数 据模型,这种数据模型不仅建立了x m l 文档中可以使用的x m l 词表( 如果x m l 文档 没有遵守这个词表,那么应用程序就无法从中读取数据) ,而且定义了关于x m l 文档中 元素的顺序和元素的嵌套关系的内容模型,并建立了文档中数据的数据类型。解决方案之 一是d t d ,d t d 是d o c u m e n tt y p ed e f i n i t i o n ( 3 啪类型定义) 的缩写【2 0 1 。 d t d 定义了文档的逻辑结构,是描述文档语法和语义的一种正式语法,是一种基于 正则表达式的x m l 模式。它规定了文件中的元素命名,存放位置,组合方式等。一个 d t d 内嵌在x m l 文档中,也可以是一个外部文件。d t d 用于定义文档的语法,而文档 的语法反过来能够让x m l 语法分析程序确认某个页面标记使用的合法性。d t d 列出了 可用在文档中的元素、属性、实体和符号表示法,以及这些内容之间的相互关系。例如, d t d 可以确切地规定每个b o o k 元素只有一个t i t l e 子元素,只有一个p r i c e 元素,有一个 或多个a u t h o r 子元素。 d t d 不是强制性的。它并不是x m l 文档存在的必要条件,也就是说x m l 文档可以 有d t d 定义也可以没有d t d 定义。但它确实可带来方便,d t d 有三个基本用途:对标 记编制文档:加强标记参数内部的一致性;使x m l 语法分析器能够确认文档。d t d 有 自己的语法来声明x m l 文件中的元素类型和属性等。 作为描述x m l 文档的一种模式,d t d 使用一种特殊的语法来声明出现在x m l 文档 中的每个对象( 元素、属性等) 。通过具体说明每一个元素和属性的名称、元素与子元素之 间的嵌套关系、子元素的出现次数等定义x m l 文档的结构模型,其中可以利用操作符奉( o 第8 页武汉科技大学硕士学位论文 次或多次) 、+ ( 至少一次) 、? ( o 次或1 次) 、l ( 或选) 来定义子元素的结构。d t d 假设所有 取值都只能是字符串值,但a n y 类型能够是一个任意x m l 片段。还有一个特殊的属性 i d ,它是用来在一个文档中标识一个元素的,因此在一个文档中它的取值必须唯一。如果 一个元素的属性定义为i d r e f 或i d r e f s 类型,且该属性的取值为另一个元素i d 属性的 值,则可实现该元素对另一个元素的引用。d t d 没有根的概念,符合该d t d 的文档可以 用该d t d 中的任何一个元素作为它的根元素。图2 2 为描述图2 1 中x m l 文档的d t d 。 图2 2d t d 文档 d t d 定义元素的格式为: 。在上图的d t d 文档中,要求表示p u b 是x m l 文档的根元素。可以有多个子元素b o o k 。元素b o o k 包含 了三个子元素:t i t l e 、p r i c e 和a u t h o r ,t i t l e 和p r i c e 只能出现一次,而a u t h o r 可以出现至少 一次,这三个子元素只能按照这个顺序出现。在d t d 中定义属性的格式是: 。元素名是属性所属的元素的名字,属性名是属性 的命名,默认声明用来说明该属性在x m l 文件中是否可以省略及默认值是什么。共有三 种默认声明,一是# r e q u i r e d ,表示该属性在x m l 文件中必须出现;二是# i m p l i e d , 表示该属性在x m l 文件中可以省略的;三是声明默认属性值。在第三行中,定义了b o o k 元素的属性y e a r ,其内容是c d a t a ,c d a t a 指的是纯文本,即由字符、符号( & ) 、小于 号( ) 和引号( “) 组成的字符串,它表明y e a r 属性的值是经过语法分析的字符数据。 x m ld t d 是近几年来x m l 技术领域所使用的最广泛的一种模式,使用d t d 虽然在 指定许可的元素、需要的元素以及给定x m l 文档中如何组织元素等方面给用户较大的方 便,但是d t d 存在着很多缺陷,主要表现在:( 1 ) d t d 是基于正则表达式的,描述能力 有限;( 2 ) d t d 没有数据类型的支持,在大多数应用环境下能力不足;( 3 ) d t d 的约束定义 能力不足,无法对x m l 实例文档作出更细致的语义限制;( 4 ) d t d 的结构不够结构化, 重用的代价相对较高;( 5 ) d t d 并非使用x m l 作为描述手段,而d t d 的构建和访问并没 有标准的编程接口,无法使用标准的编程方式进行d t d 维护。为了试图解决这些问题, w 3 c 制定了一种新的x m l 模式语言x m ls c h e m a 2 1 1 。x m ls c h e m a 是用一套预先规 定的x m l 元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。相应的一 套精巧的规则指定了每个s c h e m a 元素或者属性的合法用途。如果违反这些,规则解析器 就会拒绝解析你的s c h e m a 以及任何同它相联系的文档。因为x m ls c h e m a 的定义语言本 武汉科技大学硕士学位论文第9 页 身基于x m l ,所以,不像d t d 的定义,可以用于定义x m l 文档的结构集合是可扩展的, x m ls c h e m a 同时支持命名空间和相对于d t d 更丰富和更复杂的定义。x m ls c h e m a 为 一类文件建立一个模式,模式规范了文件中标签和文本的可能组合形式。x m ls c h e m a 主 要由以下一些元素构成。 ( 1 ) s c h e m a 。s c h e m a 元素是x m ls c h e m a 中第一个出现的元素,用于声明该x m l 文档是一个s c h e m a 文档。s c h e m a 元素具有两个属性:n a m e 指定该s c h e m a 的名称;而 x m l n s 则指定该s c h e m a 包含的命名空间。 ( 2 ) 数据类型。x m ls c h e m a 支持两种数据类型:简单数据类型( s i m p l e t y p e ) 和复杂 数据类型( c o m p l e x t y p e ) 。其中c o m p l e x t y p e 类型的元素可以包括子元素和属性,而 s i m p l e t y p e 类型的元素不能包含子元素,也不能包含属性。x m ls c h e m a 不但内置了3 7 种简单数据类型,同时也可以对s i m p l e t y p e 和c o m p l e x t y p e 这两种类型做进一步的扩充。 如可以声明s i m p l e c o n t e n t ,m i x c o n t e n t 和a n y t y p e 等属性对元素的内容和结构所做的进一 步描述。 ( 3 ) e l e m e n t 。在x m ls c h e m a 中用 来定义元素。在 中包括n a m e , t y p e ,m i n o c c u r s ,m a x o c c u r s 等属性。其中n a m e 记录元素名;t y p e 表示元素的类型,它 既可以是简单类型也可以是白定义的复杂类型;m i n o c u r r s 和m a x o c u r r s 表示元素在实例 中出现的最小次数和最大次数,默认值均为l 。 ( 4 ) a t t r i b u t e 。a t t r i b u t e 元素用于定义在s c h e m a 文档中出现的属性元素。在 中包括n a m e ( 属性名) ,t y p e ( 属性的类型) ,u s e 等属性。u s e 用来指定属性的默认值,是 “f i x e d ”,“o p t i o n a l ”和“r e q u i r e d ”,分别表示该属性有一个确定的默认值、该属性可以 有默认值和该属性必须在元素中出现。 ( 5 ) g r o u p 。g r o u p 元素用于将x m l 文档中的元素分组。通过元素s e q u e n c e 可指定 该分组中的元素或子分组的顺序,通过m i n o c c u r s 和m a x o c c u r s 分别制定该分组在x m l 实例文档中出现的最少和最多次数。 ( 6 ) c h o i c e 。 相当于d t d 的“i ”。在 中出现的元素或元 素组只能有一个出现在相应的x m l 实例中。 ( 7 ) s e q u e n c e 。在x m ls c h e m a 中将 包括的一系列元素成 为一个系列,系列中的每个成员在对应实例中出现的顺序与其在系列定义中的顺序相同。 ( 8 ) a n n o t a t i o n 。a n n o t a t i o n 元素包括d o c u m e n t a t i o n 和a p p i n f o 两个元素,分别对基 本s c h e m a 信息和版权信息及工具、样式单和其它应用程序的信息进行描述。 模式必须以某种格式来表示,x m ls c h e m a 的格式与x m ld t d 的格式有着非常明显 的区别,x m ls c h e m a 事实上也是x m l 的一种应用,即x m ls c h e m a 的格式与x m l 的 格式是完全相同的,而作为s g m ld t d 的一个子集,x m ld t d 具有着与x m l 格式完 全不同的格式。这种区别给x m ls c h e m a 的使用带来了许多好处: ( 1 ) x m l 用户在使用x m ls c h e m a 的时候,不需要为了理解x m ls c h e m a 而重新学习, 节省了时间。 第1 0 页武汉科技大学硕士学位论文 ( 2 ) 由于x m ls c h e m a 本身也是一种x m l ,所以许多的x m l 编辑工具、a p i 开发包、 x m l 语法分析器可以直接的应用到x m ls c h e m a ,而不需要修改。 ( 3 ) 作为x m l 的一个应用,x m ls c h e m a 理所当然的继承了x m l 的自描述性和可扩展 性,这使得x m ls c h e m a 更具有可读性和灵活性。 ( 4 ) 由于格式完全与x m l 一样,x m ls c h e m a 除了可以像x m l 一样处理外,也可以同 它所描述的x m l 文档以同样的方式存储在一起,方便管理。 ( 5 ) x m ls c h e m a 与x m l 格式的一致性,使得以x m l 为数据交换的应用系统之间,也 可以方便的进行模式交换。 ( 6 ) x m l 有非常高的合法性要求,x m ld t d 对x m l 的描述,往往也被用作验证x m l 合法性的一个基础,但是x m ld t d 本身的合法性却缺少较好的验证机制,必须独立处理。 x m ls c h e m a 则不同,它与x m l 有着同样的合法性验证机制。 2 3x m l 的查询语言 常用的对于x m l 的处理是通过x m l a p i 来实现的。x m l 的语法分析程序读取文档 并检查其中包含的x m l 结构是否完整。如果文档通过了测试,则处理程序就将文档转换 为元素的树状结构。目前已有各种语言的多种解析器提供,如i b m 公司的x m l 4 j 和s u n 公司的p r o j e c tx 等。根据对x m l 文档的处理方式不同,可分为基于d o m ( d o c u m e n to b j e c t m o d e l ,文档对象模型) 的解析器和基于s a x ( s i m p l ea p if o rx m l ,x m l 简单应用程序接 口) 的解析器。在需要详细了解文档的组成部分及不止一次地使用文档中信息等情况下一 般使用d o m ,d o m 将一个x m l 文档解析成一棵节点树,每一个节点代表一个可以和它 交互的对象,这一机制也称为“随机访问”协议,因为可以在任何时间访问数据的任一部 分,然后修改、删除或插入数据。与d o m 兼容的解析器读入x m l 文档,在内存中构造 一个对象树,并且使用d o m 把所有数据元素作为对象进一步的处理,或者把数据移交给 另外的应用软件或对象进行相关的处理;在需要从一个x m l 文档中抽取一些元素、没有 很多可用的内存或者文档中信息等情况下,应该使用s a x 标准。这一a p i 是事件驱动的, 又称“顺序访问”协议,当它在x m l 文档中发现特殊符号时,就会触发相关的事件,应 用程序丌发人员可以在相应的事件中写入特定的处理代码。由于s a x 解析器是按顺序处 理信息的,因而不能随即定位到文档的特定部分,也不能实现复杂的搜索。 x m l 查询语言是目前的一个研究热点,现在已有很多原型语言,如x m lq l l 2 2 1 、 x q l 2 3 、x m lg l 2 4 1 、q u i l t t 2 5 】和x i r q l 2 6 1 等。这些查询语言各有优缺点:x m lq l 和 x m l 的集成性比较好;x q l 的功能比较强;而x m lg l 在图形化界面方面做得比较好; q u i l t 综合很多语言的优点,它的路径表达式参考了x p a t h ,变量绑定借鉴了x m lq l , f l w r 表达式则类似于s q l ,而且还支持用户自定义函数。q u i l t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准私人借款合同范本样式
- 2025二手房买卖合同
- 2025企业法务部合同审核与签订培训发言稿
- 2025风力发电工程合同范本
- 聊城期中考试试题及答案
- 2025年建筑工程的联合开发合同范本
- 2025法律合同范本:直营店加盟协议书
- 安全设备考试题目及答案
- 2025年机动车交通事故责任强制保险合同
- 2025年医院精麻药品培训知识试题及参考答案
- 针刺伤处理流程课件
- 桥梁基本知识-桥梁养护课件
- 华为供应链管理(6版)
- 幼儿园秋季传染病预防知识课件
- 化工原理-传热课件
- 劳务派遣劳务外包服务方案(技术方案)
- 第09章资本市场有效性理论及其实证分析
- 学校各功能室使用情况登记表
- 《商务分析方法与工具》课程教学大纲
- 模块化硬件设计方案
- 高中日语开学第一课导入课课件
评论
0/150
提交评论