(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf_第1页
(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf_第2页
(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf_第3页
(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf_第4页
(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)基于dtd的xmlgl与xquery的查询转算法.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 随着计算机技术和网络技术的迅猛发展,企业和个人通过网络进行数据交换 变得越来越频繁,x m l 成为数据描述和数据交换的标准,越来越多的数据以 x m l 的形式存储和交换,大量的x m l 文档出现在网络应用中。随着x m l 的广 泛应用,x m l 查询技术的研究也受到越来越多的重视,自x v i l l 0 问世以来, 相继出现了多种x m l 查询语言,x m l 查询语言的相关研究已经成为当前x m l 数据库研究领域的一个热点。 目前,工业界和学术界提出了很多种x m l 查询语言,各种语言在语法形式 和查询能力上都不尽相同。在众多的查询语言中,x q u e r y 是一种比较成熟的语 言,很多大型公司以及科研机构都看好x q u e r y ,并且在不同程度上提供了对 x q u e r y 规范的支持。x m l 图形化查询语言也是查询技术发展的一个重要方向,图 形化查询语言的典型特点之一是能够产生用户友好的查询界面,降低用户学习 x m l 查询语言的难度,提高用户对x m l 文档查询的效率。 本文在对x q u c r y 与x m l 图形化查询语言研究的基础上,提出了一种有效 的x m l 图形化查询语言向x q u e r y 查询转换的技术。本文讨论了x q u e r y 查询 语言的发展,对x q u e r y 的语法及特点进行了研究,改进了图形化查询语言数据 模型的构建过程,在构造图形化查询语言条件查询树的基础上,提出了x m l 图 形化查询语言向x q u e r y 查询转换的算法与规则。在该转换算法支持下,用户可 以在更多的x m l 数据库平台下使用用户友好的查询界面进行数据查询。 本文所做的主要工作在于: 提出了一种新的图形化查询语言转换方式,详细描述了图形化查询语言转换 算法的基本思想,提出了算法的形式化描述及转换规则,并给出了转换算法 的具体实例。 提出了条件查询树的构造方案,并给出条件查询树构造的具体步骤与规则。 讨论了图形化查询语言的数据模型,并提出了对图形化查询语言数据模型的 简化以及数据模型之间进行转换的规则。 山东大学硕士学位论文 讨论了图形化查询语言中复杂的查询。本文所做的具体工作是有意义的。本 文实现了x m l 图形化查询语言向x q u e r y 语言的查询转换,可以支持用户 以更便捷的方式在更多的数据库平台下进行x m l 数据查询,丰富了x m l 数据查询技术的相关理论。 关键词:x m l ;x o u e r y ;图形化查询;转换 山东大学硕士学位论文 a b s t r a c t a st h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n dn e t w o r kt e c h n o l o g y , t h e e n t e r p r i s e sa n di n d i v i d u a l s t r a n s f e r r e dm o r ea n dm o r ed a t ab yi n t e r a c t ,x m li s b e c o m i n gt h es t a n d a r do fd a t af o r m a ta n dd a t at r a n s f e r , m o r ea n dm o r ed a t aa r es t o r e d a n de x c h a n g e d 弱t h ef o r m a to fx m l ,am a s so fx m ld o c u m e n t sa p p e a ri nt h e a p p l i c a t i o no fn e t w o r k a st h eb r o a da p p l i c a t i o no fx m lt e c h n o l o g y , x m lq u e r y t e c h n o l o g yr e s e a r c hh a sb e e nm o r ea n dm o r ea t t e n t i o n - g e t t i n g ,s i n c et h ea p p e a r a n c e o ft h ex m l 1 0 ,t h e r ei sav a r i e t yo fx m lq u e r yl a n g u a g e ,t h er e s e a r c ho fx m l q u e r yl a n g u a g eh a sn o wb e c o m ea h o ti nt h ex m ld a t a b a s er e s e a r c hf i e l d a tp r e s e n t ,t h ei n d u s t r i a lc i r c l e sa n da c a d e m i cm a d eal o to fx m l q u e r yl a n g u a g e , g r a m m a t i c a lf o r m sa n dq u e r yc a p a b i l i t i e si nv a r i o u sl a n g u a g e sa r ed i f f e r e n t a m o n g t h eq u e r yl a n g u a g e ,x q u e r yi sam o r em a t u r el a n g u a g e ,m a n yl a r g ec o m p a n i e s 弱 w e l l 嬲r e s e a r c hi n s t i t u t i o n sa l eo p t i m i s t i ca b o u tx q u e r y , a n dt ov a r y i n gd e g r e e s , p r o v i d e sas t a n d a r dx q u e r ys u p p o r t x m lg r a p h i c a lq u e r yl a n g u a g ei sa l s oa l l i m p o r t a n td i r e c t i o no ft e c h n o l o g yd e v e l o p m e n t ,o n eo ft h et y p i c a lc h a r a c t e r i s t i c so f g r a p h i c a lq u e r yl a n g u a g ei sp r o d u c i n gu s e r - f r i e n d l yq u e r yi n t e r f a c e ,i tr e d u c et h e d i f f i c u l t yo f u s e r s l e a r n i n gx m lq u e r yl a n g u a g e ,a n di m p r o v eu s e r s q u e r y i n g e f f i c i e n c yo fx m l d o c u m e n t t h i sp a p e ra f f o r d sa ne f f e c t i v ec o n v e r s i o nt e c h n o l o g yf r o mx m l g r a p h i c a lq u e r y l a n g u a g et ox q u e r yq u e r yl a n g u a g e ,o nt h eb a s i so ft h er e s e a r c hf o rx q u e r ya n d x m l g r a p h i c a lq u e r yl a n g u a g e t h i sp a p e rd i s c u s s e st h ed e v e l o p m e n to fx q u e r y , s t u d i e st h es y n t a xa n df e a t u r eo f x q u e r y , i m p r o v e st h ec o n s t r u c t i o no f t h eg r a p h i c a l q u e r yl a n g u a g e sd a t am o d e l ,a n da f f o r d st h ec o n v e r s i o na l g o r i t h ma n dr u l e sf r o m x m l g r a p h i c a lq u e r yl a n g u a g et ox q u e r yq u e r yl a n g u a g e ,o nt h eb a s i so ft h e c o n s t r u c t i o no ft h ec o n d i t i o nq u e r yt r e e u n d e rt h es u p p o r to ft h ec o n v e r s i o n a l g o r i t h m ,u s e r sc a nq u e r yd a t aw i t hu s e r - f r i e n d l yi n t e r f a c ei nm o r ex m ld a t a b a s e p l a t f o r m i i i 山东大学硕士学位论文 t h em a i nw o r k sa n da c h i e v e m e n t so ft h i sa r t i c l ea r e a f f o r dan e w g r a p h i c a lq u e r yl a n g u a g ec o n v e r s i o n d e s c r i b et h eb a s i ci d e ao f t h ec o n v e r s i o na l g o r i t h m so fg r a p h i c a lq u e r yl a n g u a g ed e t a i l e d l y a f f o r dt h ef o r m a l d e s c r i p t i o no f t h ea l g o r i t h ma n dt h ec o n v e r s i o nr u l e s ,a n dg i v e ss p e c i f i ce x a m p l e so f t h ea l g o r i t h m a f f o r das t r u c t u r es c h e m eo ft h ec o n d i t i o nt r e e ,a n dg i v et h ec o n c r e t es t e p s a n dr u l e sf o rt h es t r u c t u r eo ft h ec o n d i t i o nt r e e d i s c u s st h ed a t am o d e lo f g r a p h i c a lq u e r yl a n g u a g e ,a n dp u tf o r w a r dt h e p r e d i g e s t i o no f t h eg r a p h i c a lq u e r yl a n g u a g ea n dt h er u l e so fc o n v e r s i o nb e t w e e nt h e d a t am o d e l s d i s c u s st h ec o m p l e xq u e r yi nt h eg r a p h i c a lq u e r yl a n g u a g e t h ew o r ko ft h ep a p e ri ss i g n i f i c a t i v e t h i sp a p e ri m p l e m e n t st h ec o n v e r s i o no f t h eg r a p h i c a lx m l q u e r yl a n g u a g ea n dt h ex q u e r yl a n g u a g e ,a n dc a l ls u p p o r t u s e r s q u e r y t h ex m ld a t au n d e rm o r ed a t a b a s ep l a t f o r mi nam o r ec o n v e n i e n tw a y , i t e n r i c h st h er e l a t e dt h e o r i e so ft h ex m ld a t aq u e r yt e c h n o l o g y k e y w o r d s :x m l ;x q u e r y ;g r a p h i c a lq u e r y ;c o n v e r s i o n i v 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:上噬 日 期: 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:【主竖笙遣导燧名蟛期: 山东大学硕士学位论文 第一章绪论 本章介绍了本文的研究背景,阐述了本文的研究内容及主要工作,对本文的 组织结构进行了安排。 1 1 研究背景 随着计算机网络技术的快速发展,通过网络进行数据交换变得越来越频繁。 但是由于不同用户的数据往往采用了不同的数据表示方式,这就给数据的交换带 来了很大的不便。为了支持采用不同数据表示方式的用户之间方便的进行数据交 换,迫切需要一种为各方用户所接受的数据表示标准,使数据交换的各方使用统 一的数据表示方式。这时x m l 应运而生,并在行业中迅速普及,成为事实上的数 据表示标准。 x m l 与传统数据库中的结构化数据不同,x m l 数据1 2 5 】是自我描述的,没有预 先固定的模式。x m l 与数据库界近年来研究的半结构化数据( s e m i - s t r u c t u r e d d a t a ) 极为相似。所谓半结构化数据【2 4 ,4 2 1 ,就是介于完全结构化数据( 如关系型 数据库、面向对象数据库中的数据) 和完全无结构的数据之间的数据,主要有以 下一些特点:对半结构化数据来说,是先有数据,后有模式;半结构化数据的模 式用于描述数据的结构信息,而不是对数据结构进行强制性的约束;半结构化数 据的模式是非精确的,它可能只描述数据的一部分结构,也可能根据数据处理不 同阶段的视角不同而不同:半结构化数据的模式可能规模很大,甚至超过源数据 的规模,而且会由于数据的不断更新而处于动态的变化过程中。h t m l 文档就属 于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的 区分。半结构化数据已有的理论和原型系统可以作为x m l 研究的基础。同时,x m l 所具有的独特特性又为我们带来了新的研究课题。 在数据库系统【3 l5 j 中,数据的检索、转换和集成都是依赖查询语言的。在关 系数据库中,依赖s q l ;在面向对象数据库中,依赖o q l 。x m l 文件是数据的集 合,因此可以说它也是一个数据库系统,但是x m l 数据模式与传统的关系和面向 对象数据的模式不同,所以不能直接把上述的查询语言应用于对x m l 数据的查 山东大学硕士学位论文 询。由于x m l 数据模式与半结构化数据的相似性,在半结构化数据查询语言研究 的基础上,出现了许多针对) ( m l 的查询语言【1 1 1 。 迄今为止,工业界和学术界提出了很多舭查询语言,各种语言在语法形 式和查询能力上都不尽相同。比较有代表性的如早期的x m l q l t l 9 1 、x q l 2 0 1 , 后来的x m l g l 2 、q u i l t 2 2 1 、x p a t h 2 3 1 ,以及由q u i l t 发展而来的x q u e 1 2 ,1 引。在 w 3 c 的极力推动和学术界、工业界的大力支持下,x q u e r y 逐渐在这些查询语言 中脱颖而出,成为事实上的工业标准。而x q u e r y 虽然是其中一种比较成熟的语 言,但是对普通用户来说,它依然是比较复杂和困难的。相对而言,x m l g l 是 一种图形化的x m l 查询语言,它的功能不是很强大,但它最大的特点就是用户 容易掌握和易于理解。正是由于上述两种语言的特点,本文中我们对图形化的 x m l 查询语言进行了改进,提高了图形化查询语言的表达能力,并在此基础上 提出了图形化查询语言向x q u e r y 转换的思路【8 】,这样用户面对的将是容易的多而 且功能也相对强大的图形化查询语言,用户生成的查询也将会有工业界强力支 持,这将大大提高用户对x m l 文档查询的效率。 当前对x l d l 数据查询的研究已经是一个热点。尽管x m l 可以描述非常复杂 的结构,其本质仍然是树状的数据。为了方便对x m l 数据的查询,w 3 c 已经提出 了多种x m l 查询语言,例如x p a t h 、x q u e r y 等,这些查询语言都将路径表达式 作为核心内容【6 j 。对x m l 数据查询的研究主要是借助于x m ld t d 和s c h e m a 来对 x m l 数据进行查询,其思想是把x m l 数据转化为一棵文档树,利用x m ld t d 和 s c h e m a 所定义的x m l 数据的层次结构,对x m l 文档树进行扫描,获得所要查询 的数据。这方面的研究主要包括:对x m l 文档树进行扫描算法的提出和优化,提 高扫描文档树的效率;对查询表达式进行优化来提高查询的效率等。 x q u e r y 是一种发展得非常慎重的w 3 c 标准【1 4 】,因而演化得比较缓慢,x o u e r y 也因此而闻名。目前许多公司仍然在这个领域创新,并且正不断产生大量的经验 信息,许多大数据库厂商非常看好x q u e r y ,本源x m l 数据库产品如d b x m l 、t a m i n o 、 i p e d o 等都加入了x o u e r y 查询功能,而关系数据库业界的三大主流厂商o r a c l e 、 i b m 、m i c r o s o f t 也都已经在各自的产品中提供了对x o u e r y 规范的支持,而不同 程度的x o u e r y 引擎实现也有3 0 多个。 2 山东大学硕士学位论文 相对而言,x m l 的图形化查询发展就要缓慢的多。目前国内对此研究的很少, 正因如此,本文中对图形化查询语言的研究属于重点部分。对于图形化查询语言 的转换,目前实现的是图形化查询语言向s q l x 的转换 1 6 , 1 7 】。但是目前看来, x o u e r y 是一种更成熟的查询语言,因此本文将实现图形化查询语言向x o u e r y 的 转捌8 | 。 对图形化查询语言的研究以及图形化查询语言向x q u e 吖查询转换的实现, 将大大降低用户学习x m l 查询语言的难度,提高用户学习x m l 以及相关技术的 热情。我们相信,x m l 数据库技术必将取得更大的进步。 1 2 本文的主要工作 本文的主要内容是对目前x m l 数据查询技术的研究。在众多的x m l 查询 技术中,重点研究了x q u e r y 及x m l 图形化查询语言,本文在对x q u e r y 与x m l 图形化查询语言研究的基础上,提出了一种有效的x m l 图形化查询语言向 x q u e r y 查询转换的技术;本文讨论了x q u e r y 的发展,对x q u e r y 的语法及特点 进行了研究,讨论已有相关查询语言的特点及不足,详细介绍了x q u e r y ;讨论 了x m l 的图形化查询语言,介绍了图形化查询语言的发展,提出了目前的图形 化查询语言之间的数据模型转换,对图形化查询中的复杂查询进行了研究;在对 x q u e r y 及图形化查询语言研究的基础上,提出了条件查询树的构造,进而在条 件查询树的基础上提出x m l 图形化查询语言向x q u e r y 查询转换的算法与规则, 在该转换算法支持下,用户可以方便快速的在更多的数据库平台下进行x m l 数 据查询。 本文所做的主要工作在于:提出了一种新的图形化查询语言转换方式,详细 描述了图形化查询语言转换的算法和规则。提出了条件查询树的构造方案,并给 出条件查询树构造的具体步骤与规则。讨论了图形化查询语言的数据模型,并提 出了对图形化查询语言数据模型的简化以及数据模型之间进行转换的规则。讨论 了图形化查询语言中复杂的查询。本文所做的工作丰富了x m l 数据查询技术的 相关理论。 山东大学硕士学位论文 1 3 本文的组织结构 本文是按照下面的结构组织的: 第一章主要论述了本论文的研究背景,并对本文的主要工作做了详细的阐述。 第二章中对x m l 进行了简单介绍,论述了x m l 查询的相关技术,重点讨论 了x q u c r y 语言及查询技术。 第三章着重讨论了x m l 的图形化查询语言,介绍了图形化查询语言的发展 及相关工作,对日前的图形化查询进行了改进,并对其进行了扩展研究。 第四章在前两章的基础上,提出了图形化查询语言向x q u e r y 查询转换的思 路,给出的转换算法及规则解决了图形化查询向x q u e r y 查询的转换,给出几个 图形化查询的具体实例对算法进行验证。 第五章为总结和展望,对全文进行了总结,分析了本文研究成果的理论意义 和应用前景,并指出了今后需要进一步做的工作。 4 山东大学硕士学位论文 第二章x m l 查询技术的研究与分析 2 1x 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 ,可扩展标记语言) 是由w o r l dw i d ew e b c o n s o r t i u m ( w 3 c ) 的x m l 工作组定义的。这个工作组是这样描述该语言的:“x 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 pl a n g u a g e ,标准通用标记语言) 的子集, 其目标是允许普通的s g m l 在w e b 上以目前h t m l ( h y p e rt e x tm a r k u pl a n g u a g e ) 的方式被服务、接受和处理。x m l 被设计成易于实现,且可在s g m l 和h t m l 之间 相互操作【1 1 。 x m l 是一套定义语义标记的规则,这些标记可将文档分成许多部件并对这 些部件加以标记【4 】。它不像h t m l 或格式化程序。这些语言定义了一套固定的标 记,用来描述一定数目的元素。x m l 是一种元标记语言,用户可以定义自己需要 的标记。这些标记必须根据某些通用的原理来创建,x m l 标记描述的是稳定内容 的结构和含义,而不是描述页面元素的格式化。文档本身只说明文档包含什么标 记,而不是说明文档看起来是什么样子的【9 1 。 下面给出一个简单的x m l 文档的例子。 例2 1 u s e r s x m l o u t r a c e m y p a s s t r a c e m y p a s s 山东大学硕士学位论文 新增用户名 新增密码 通过上面的例子,可以对x m l 文档有了一个直观的认识:一个x m l 文档 由一个单一的最外面的元素及其子元素组成。 2 1 2 l 的起源 s g m l 介绍 说到皿,一定要先了解一下s g m l 。s g m l 最初是由m m 开发的一种用 于排版的符号化语言,称为g m l 。经过若干年的发展,1 9 8 4 年国际标准化协会 ( i s o ) 开始对此提案进行讨论,于19 8 6 年正式承认s g m l 为国际标准规范 ( i s 0 8 8 7 9 ) 【2 5 j 。 s g m l 实际上是一种通用的文档结构描述符号化语言,主要用来定义文献模 型的逻辑和物理类结构。一个s g m l 语言文件由三部分组成,即语法定义、文 件类型定义d t d ( d e f i n i t i o nt y p ed o c u m e n t ) 和文件实例。语法定义部分定义 了文件类型定义和文件实例的语法结构;文件类型定义部分定义了文件实例的结 构和组成结构的元素类型;文件实例是s g m l 语言程序的主体部分。 在s g m l 的实际使用中,每一个特定的d t d 都定义了一类文件。因此,人 们习惯上把具有某一特定d t d 的s g m l 语言,称为某某符号化语言。这样 s g m l 就成为那些派生语言的元语言。 h 1 讥的出现 1 9 8 9 年,欧洲物理量子实验室( c 斟) 的信息专家蒂姆伯纳斯李发明 了超文本链接语言,使用此语言能轻松地将一个文件中的文字或图形连到其它 的文件中去,这就是h t m l 的前身。1 9 9 1 年,蒂姆伯纳斯李在c e r n 定 义了h t m l 语言的第一个规范,之后成为w 3 c 组织为专门在互联网上发布信 息而设计的符号化语言规范。可以说,h t m l 是s g m l 的一个实例,它的d t d 作为标准被固定下来。因此,h t m l 不能作为定义其它符号化语言的元语言。 作为w o r l dw i d ew e b 的一个组成部分,h t m l 语言发展很快,在短短的几年 6 山东大学硕士学位论文 里,它已历经了h t m l l 0 、h t m l 2 0 和h t m l 3 0 、h t m l 4 0 等多个版本,同 时d h t m l ( 动态) 、v h t m l ( 虚拟) 、s h t m l 等也飞速发展起来。h t m l 以简 单精练的语法、极易掌握的通用性与易学性,使w e b 网页可以亲近于每一个普 通人,互联网因此得以普及发展以至今日辉煌。但是,目前的h t m l 还不稳定, 不同的浏览器会产生不同的显示效果。此外,由于h t m l 对超级链接支持不足, 并缺乏空间立体描述,处理图形、图像、音频、视频等多媒体能力较弱,图文混 排功能简单,不能表示多种媒体的同步关系等缺点,也影响h t m l 的大规模应 用以及用于复杂的多媒体数据处理【垌。 舭的诞生 1 9 9 6 年万维网协会( w o r dw i d ew e bc o n s o r ti u m ) 开始设计一种可扩展的标 记语言,使其能够将s g m l ( s t a n d a r dg e n e r a liz e dm a r k u pl a n g u a g e ) 的灵活性 和强大的功能与已经被广泛采用的h t m l 结合起来,x m l 的设计者们的目标是: x m l 将直接用于i n t e m e t ,x m l 与s g m l 兼容,编写处理x m l 文件的程序很 简单,x m l 的可选特征尽量少,x m l 文件清晰且易于阅读,x m l 设计尽量规 范、简洁。x m l 与s g m l 有着密切的关系,这种继承了s g m l 的规范被称为x m l , 它实际上是s b m l 的一个子集,保留了s g m l 可扩展性、结构以及数据确认方面 的主要优点,可支持建立用户定义的w e b 文件类型,对s g m l 的某些内部数值 和参数进行了重新定义,省略了s g m l 中许多复杂而少用的部分。x m l 不是一 种编程语言,它和s g m l 一样是一种元语言【2 5 , 2 7 。 2 1 3x m l 的特点 与s g m l 、h t m l 相比,x m l 既继承了s g m l 的特性,同时也具有h t m l 的 灵活性和通用性,具备如下的特点: ( 1 ) 简单性 x m l 为程序员和文档作者提供了一个友好的环境。x m l 的严格定义和规则 集使人类和机器都能更容易的阅读文档。x m l 文档语法包含一个非常小的规则 集,使开发者能立刻开始工作。根据文档的结构,d t d ( d o c u m e n tt y p ed e f i n i t i o n , 文档格式定义) 既可以通过一个标准过程创建,也可以由专家创建。x m l 文档建 立在基本嵌套结构的一个核心集的基础之上。当一层又一层的细节被增加,使结 山东大学硕士学位论文 构变得越来越复杂时,作者或开发者只需要为内部结构的复杂化付出非常少的努 力。这些基本结构可以被用来代表复杂的信息集合,而不需要改变结构自身。 x m l 的语法分析器也非常容易创建。 ( 2 ) 结构化 x m l 文档将内容与格式分开描述,并利用样式表中的规则集对所描述的内容 文档的格式进行严格的说明。这样,x m l 的描述就像数据库一样具有了结构性。 ( 3 ) 可扩展性 x m l 允许用户根据需要自我创建自定义标记,创建的标记只需要在样式表 中进行符合格式规则集的说明即可。很显然,这样的扩展性不会像h t m l 那样 受到扩展量的局限。x m l 提供了一个表示结构化信息的架构,它允许定义任意 一组标记,来满足不同内容的需求。这使得它突破了h t m l 标记只能用来描述 内容的显示格式的限制,可以通过网络传送数据、显示数据,还可以将数据转交 给其他应用程序作进一步处理。 ( 4 ) 互操作性 x m l 可以在多种平台上使用,而且可以用多种工具进行解释。因为文档的 结构是相容的,所以解释它们的语法分析器就可以以较低的费用建立。x m l 支 持用于字符编码的许多主要标准,允许它在全世界许多不同的计算环境中使用。 ( 5 ) 开放性 尽管还有一些关于x m l 的疑问,但这个标准自身在w e b 上确实是完全开放 的,可以免费获得。w 3 c 组织的成员已经较早的得到了这些标准,不过一旦此 标准完成了,结果就是大家都可以获得的。x m l 文档自身也较为开放,任何人 都可以对一个结构良好的x m l 文档进行语法分析。 ( 6 ) 通用性及灵活性 x m l 是专门为w e b 设计的通用标记语言,它比h t m l 更具有通用性。x m l 的灵活性表现在两个方面,一是x m l 文档也是纯文本文件,同h t m l 一样,各 种编辑工具创建的x m l 文档都能被浏览器所显示;二是x m l 允许自定义标签, 这种优势使得h t m l 应用无法与x m l 的应用相比。 由于x m l 的上述特点,使得它成为一种在i n t e r n e t 上共享信息和交换信息 的途径。x m l 的出现使互联网跨入了一个新的阶段,它将成为因特网领域中一 8 山东大学硕士学位论文 个重要的开发平台。x m l 的诞生已经而且将继续促使全新种类的应用程序的产 生,而这些新的应用程序又将需要新的软件和硬件工具。可以预测,无论是在软 件还是硬件上,x m l 都将开辟一系列的新市场,促成互联网上新的革命。 2 2x m l 查询技术 随着计算机和网络技术的快速发展,x m l 的应用越来越广泛,x m l 数据源变 得更加复杂,面对用户日益提高的查询需求,以往x m l 查询语言显得力不从心, 而由w 3 c 于2 0 0 1 年设计公布的x q u e r y 性能良好,功能强大,能够更好的满足用 户对各种x m l 数据的查询需求。本章拟对x m l 的特点及其数据源类型进行分析, 概括以往x m l 查询语言的优缺点,提出x m l 数据源对其查询语言的要求;同时对 x q u e r y 语言进行研究。 对x m l 查询语言的研究是随着x m l 应用范围的扩大而发展的。针对x m l 文档, 已经有很多学者对其查询进行了研究,并提出了多种x m l 查询语言。如对于基于 数据的x m l 文档,数据库研究者从已有的关系数据库查询语言( s q l ) 、面向对象 的查询语言( o q l ) 出发,提出了l o r e l ,x m l g l ,x m l q l ,q u i i t 等查询语言。而 对于基于记录的x m l 文档,专家同样提出了一些查询语言,比较典型的如x q l 。 这些查询语言促进了x m l 的推广和应用。以下对其中较为典型的l o r e l 进行分析。 l o r e l 是斯坦福大学开发的半结构化数据库管理系统l o r e 的查询语言,可 用于查询半结构化的x m l 数据【2 引。在l o r e 系统中,将x m l 建模成半结构化数据 模型下的数据,然后用l o r e l 进行查询。根据半结构化数据的特点,l o r e l 语言 支持数据类型的强制转换,提供了类型转换的规则和不同类型对象之间的比较规 则,目前它还基于o q l 语言扩展了路径表达式的表达,用通配符匹配路径的标记 或者匹配某个标记的字符串,以更好的满足对x m l 文档的查询。 下面是用l o r e l 书写的查询语言: s e l e c tx m l ( b i b : ( s e l e c tx m l ( b o o k : y e a r :y 。t i t l e :t ) ) f r o mb i b b o o kb ,b t i t l et ,b y e a ry w h e r eb p u b l i s h e r = ”w i l l i a mc r o f t ”a n dy 2 0 0 1 ) ) 从以上查询可以看出,l o r e l 在语法上采用了类似s q l 语言的形式,用 s e l e c t f o r m - w h e r e 格式对l o r e 系统中的x m l 数据进行查询。其中f r o m 语句包 含需要在目标x m l 文件中进行匹配的数据模式,并将匹配的x m l 数据绑定到一些 9 山东大学硕士学位论文 变量。然后在w h e r e 语句中,按照指定的条件,对绑定了实际数据的变量进行选 择过滤。最后所有满足条件的变量,按照s e l e c t 语句定义的x m l 数据结构构造 x m l 结果。对于具有层次嵌套结构的查询和连接,用嵌套的s e l e c t 语句实现。 但是由于在半结构化的数据模型中不定义文档顺序,因此l o r e l 作为一种数 据查询语言,在设计时没有过多考虑处理结构化文档的要求,这就导致了l o r e 在对查询文档结构( 基于记录的x m l 文档) 方面功能较弱,特别在重构查询结果方 面,l o r e l 要通过嵌套的s e l e c t 语句实现,相对比较复杂。 x q l ( x m lq u e r yl a n g u a g e ) 是由微软公司设计的针对基于文档的x m l 的查询 语言,它的目标是选择和过滤x m l 文档的元素和文本【2 0 1 。x q 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 ) 模式语法的自然扩展,在x s l 表达类型 节点的基础上增加了布尔逻辑,过滤,节点集合索引等。下面足一个x q l 查询: d o c u m e n t ( “h t t p :佃n t c o m ”) b i b b o o k p u b l i s h e r n a m e = “w i l l i a mc r o f t a n d y e a r 2 0 0 1 y e a rit i t l e ) ) 上例中,模式匹配语句b i b 匹配文档中的所有b i b 元素,嵌套的括号和b o o k p u b l i s h e r n a m e = “w i l l i a mc r o f t ”a n d y e a r 2 0 0 1 按p u b l i s h e r n a m e 子 元素和y e a r 属性的值选择满足条件的b o o k 节点,该查询结果就是只包括y e a r 属性和t i t l e 子元素的b o o k 元素。x q l 中没有单独的结果构造语句,结果的x m l 数据结构就是模式匹配语句中匹配的x m l 模式和选择过滤后满足条件的x m l 数据 部分,也就是说,在x q l 的查询中,保持节点的顺序和层次结构是必须的,通常 不考虑改变的顺序和结构。但由于它的设计目标是简单、紧凑,因此限制了部分 表达能力。 由上文可以看出,很多x m l 查询语言有极强的针对性,往往对某种数据类 型的查询十分有效,但对另一种数据类型的查询却无能为力,有的针对某一系统, 不具备通用性。正因如此,下面讨论了另一种功能更强的x m l 查询语言,适用于 各种类型的x m l 数据源的查询,兼具各种查询语言的优点。 山东大学硕士学位论文 2 3x o u e r y 查询技术 2 3 1x q u e r y 的发展概述 x q u e r y 是一个从x m l 格式的文档中获取数据的查询语言,起源于x m l 数 据查询语言q u i l t 。并将x p a t l l 版本2 0 作为其子集。q u i l t 有很多非常优秀的特 性,集s q l ,o d m g ,x p a t h l 0 ,x q l ,以及x m l - q l 的诸多特性于一身,然而随 着存储在x m l 文档中的信息量的增长,对于能高效的存取和查询x m l 的信息, q u i l t 显示出了它的不足。于是全新的x q u e r y 数据查询语言诞生了。 x q u e r y 规范【1 4 】启动于1 9 9 8 年由w 3 c 发起的查询语言波士顿专题讨论 会,与会的成员对x m l 的使用应当划分为两类,第一类是将x m l 主要作为文 档使用的人,第二类是将x m l 作为数据使用的人。来自业界、学术界和研究团 体的受邀代表利用这个机会发表了各自的看法,阐述了他们认为重要的x m l 查询语言的特性和需求。讨论会之后成立了q u e r yl a n g u a g ew o r k i n gg r o u p ( 查询 语言工作组) 。这个工作组很庞大,由3 0 多个成员公司构成,x m l 查询语言标 准很好地代表了两类使用者的需求和观点。 虽然1 9 9 8 年x q u e r y 规范就已经启动,但是由于x m l 应用领域的差异,规 范花费的时间是相当漫长的。x o u e r y 工作组于1 9 9 9 年9 月正式成立,其任务是 创建一种灵活的查询语言以便从x m l 文档中抽取数据。作为一种新型的查询语 言,x q u e r y 汲取了其它多种查询语言的优点,适用于各种类型的x m l 数据源的 查询,查询功能强大,x q u e r y 还具有从多种数据库中检索信息的特点,它能对 各种数据和文档进行查询。但是直到2 0 0 1 年2 月,工作组的发布工作才开始大 踏步地进行,大量的文档开始推出。在2 0 0 1 年6 月和1 2 月、2 0 0 2 年8 月和11 月、和2 0 0 3 年5 月进行了重要更新。在2 0 0 3 年5 月加入了一个x q u e r y 序列 化和两个全文相关的工作草案后,1 2 个文档基本完成,整个得工作草案正在接 近尾声工作。这1 2 份重要的文档包括: 1 x m lq u e r yr e q u i r e m e n t s ( 最新版本发布于2 0 0 3 年11 月1 2e 1 ) 此文档施工作组的规划文档。x q u e r y 需求列表。 2 x m lq u e r yu s ec a s e s ( 最新版本发布于2 0 0 3 年11 月1 2 日) 此文档提供了解决特定问题的几个实际方案和x q u e r y 代码片段。 山东大学硕士学位论文 3 x q u e r y1 0 :a nx m lq u e r yl a n g u a g e ( j 粼本发布于2 0 0 3 年11 月1 2 日) 此文档是工作草案中的核心文档,介绍语言本身,以及对大多数其他内容 的概述。 4 x q u e r y1 0a n dx p a t h2 0d a t am o d e l ( 最新版本发布于2 0 0 3 年11 月1 2 日) 此文档是x m l 信息集的扩展。描述查询实现必须理解的数据项和形式 语义的基础。 5 x q u e r y1 0a n dx p a t h2 0f o r m a ls e m a n t i c s ( 最新版本发布于2 0 0 3 年l1 月 1 2e 1 ) 此文档从形式上定义语言的底层代数。 6 x m l s y n t a xf o rx q u e r y1 0 ( x q u e r y x ) ( 最新版本发布于2 0 0 3 年1 2 月l

温馨提示

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

评论

0/150

提交评论