




已阅读5页,还剩76页未读, 继续免费阅读
(计算机科学与技术专业论文)基于xml+schema的查询优化技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1s2 :量 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:连銎 导师签名: 摘要 一j 豫y 搬1 7 l 嘁8 7 7 强s 婚犍6 m 臻 摘要 由于x m l 数据具有半结构化和自描述的特点,使得其得到了越来越广泛的 应用,并成为互联网上信息表示和交换的标准。鉴于x m l 数据的半结构化数据 特点,对) a v i l 数据的存储和查询要比关系数据库复杂和繁琐。x p a t h 和x q u e r y 作为x m l 通用的查询语言,可以从x m l 数据库中提取出用户所需要的信息, 并将查询结果组织为x m l 文档,但是随着x m l 数据量大幅度地增长,如何有 效的存储和查询大规模的x m l 数据成为数据库领域研究的一个热点问题。 本文在分析x m l 查询的相关问题、特别是x m l 查询优化技术的基础之上, 介绍了基于x m ls c h e m a 查询优化系统的设计思想。该系统使用x m l 作为数据 模型,以x q u e r y 语言作为查询语言的方法,利用x m ls c h e m a 所提供的结构信 息来重写x q u e r y 的方式来实现对x m l 查询处理的优化,优化工作主要包括将 x p a t h 表达式中模糊的查询转换为更加精确的查询以及删除冗余谓词等。此外, 本文提出了一种新的算法呐i g l i s t b y - p d t 算法来处理小枝查询,该算法使 用x m ls c h e m a 类型信息来优化小枝查询,缩小了小枝模式匹配过程中路径匹配 范围,减少了对x m l 文档中不必要节点的访问。 在查询处理过程中,随着x m l 数据量大幅度地增长,x m l 中无用数据存 储增加了x m l 查询处理的空间开销。针对该问题,本文介绍了x m l 延时加载 机制,该机制根据查询请求将查询所涉及到的x m l 数据加载到内存,避免了不 必要的空间开销。 关键词x m l ;x m ls c h e m a ;x q u e r y :小枝查询;优化 北京工业大学工学顾士学位论文 i i 1 j i a b s 仃a c t a bs t r a c t b e c a u s eo fs e m i - s t r u c t u r ea n ds e l f - d e s c r i p t i o nc h a r a c t e r i s t i e s ,e x t e n s i b l e m a r k u pl a n g u a g e ( x m l ) h a sb e c o m em o r ea n dm o r ep o p u l a r , a n dh a sb e e nad e f a c t os t a n d a r df o ri n f o r m a t i o nr e p r e s e n t a t i o na n de x c h a n g eo v e rt h ei n t e m e t b e c a u s e x m ld a t ai ss e m i s t r u c t u r e ,s t o r a g ea n dq u e r yp r o c e s s i n go nx m l i sm o r ec o m p l e x a n dc u m b e r s o m et h a nr e l a t i o n a ld a t a b a s e s x p a t ha n dx q u e r ya sc o m m o nx m l q u e r yl a n g u a g e sc a ng e tt h ei n f o r m a t i o nf r o mx m l d o c u m e n ta n dt h e nt r a n s f e rt h e r e s u l t st ox m l w i t ht h er a p i dg r o w t ho fx m ld a t a ,e f f i c i e n ts t o r a g ea sw e l la sq u e r y t e c h n i q u e so nl a r g ex m l d a t a s e th a sb e c o m eah o tp r o b l e mo fx m lr e s e a r c ht h e s e d a y s i nt h ep a p e r , w ea n a l y s et h ep r o b l e m so fx m l q u e r ya sw e l la st h eo p t i m i z a t i o n t e c h n o l o g i e s ,t h e ni n t r o d u c et h eq u e r yo p t i m i z a t i o ns y s t e mw h i c hu s e sx m l s c h e m a t oo p t i m i z ex m l q u e r i e s t h es y s t e mc h o o s e sx m l a st h ec o m m o nd a t am o d e l ;u s e t h ee x t e n d e dx q u e r yl a n g u a g ea st h eq u e r yl a n g u a g e r e w r i t et h ex q u e r yt o o p t i m i z eb yu s i n gt h es y n t a xi n f o r m a t i o np r o v i d e db yx m l s c h e m a o no n eh a n d , t h eo p t i m i z a t i o nc a nc o n v e r tt h ef u z z yq u e r yt oe x a c tq u e r y ;o nt h eo t h e rh a n d ,c a n d e l e t e t h er e d u c t a n tp r e d i c a t e s t h ep a p e ra l s op r o p o s e san e wa l g o r i t h mc a l l e d t w i g l i s t b y - p d tt op r o c e s s et w i gq u e r y , t h ea l g o r i t h mm a k e s f u l lo ft h et y p e i n f o r m a t i o ni nx m ls c h e m at oo p t i m i z et h et w i gq u e r y , r e d u c e st h es c o p e so fp a t h m a t c h i n gi nt w i gp a t t e r nm a t c h i n ga n dd e c r e a s e st h et r a v e r s e so fu s e l e s sn o d e si n x m ld o c u m e n t w i t hr a p i dg r o w t ho fx m ld a t a ,t h es t o r a g eo fu s e l e s sx m ld a t ai n c r e a s e st h e s p a c e c o s ti nx m lq u e r y p r o c e s s i n g t h ep a p e ri n t r o d u c e s t h e l a z y - l o a d e d m e c h a n i s mt os o l v et h ep r o b l e m ,t h em e t h o dc a nl o a dp a r t so fx m ld o c u m e n tt o m e m o r ya c c o r d i n gt ot h eq u e r y , t h e r e f o r e ,a v o i d su n n e c e s s a r ys p a c ec o s t k e y w o r d sx m l ;x m ls c h e m a ;x q u e r y ;t w i gq u e r y ;o p t i m i z a t i o n i i i 北京工业大学工学硕二仁学位论文 ! i i l l 昌葛鲁暑皇皇皇篁皇量曼曼皇詈鼍詈詈量鼍皇曼量曼曼量曼曼詈量! ! 鼍詈曼量詈皇皇皇皇詈鼻皇暑曼! 曼! ! 曼鼍詈昌量詈喜鼍墨量皇昌皇詈喜曹喜皇皇鲁皇皇詈置鲁皇曼基 i v 一 一 目录 目录 摘要i a b s t r a c t i i i 第1 章绪论1 1 1 课题背景1 1 2 研究意义2 1 3 相关研究现状2 1 4 课题来源4 1 5 作者工作4 1 6 本文结构4 第2 章相关技术和背景知识7 2 1x m l 简介7 2 2d t d 和x m ls c h e m a 9 2 3x q u e r y 语言1 1 2 4t w i g 查询1 2 2 5 区域编码1 5 2 6f x q l 简介1 6 2 7 本章小结1 6 第3 章基于x m ls c h e m a 的x q u e r y 查询优化处理1 7 3 1x q u e r y 解释实现系统1 7 3 1 ,1 系统结构1 7 3 1 2 数据源w r a p p e r 的设计和实现1 8 3 1 3 系统查询处理流程图2 3 3 2x m l 查询中存在的问题2 4 3 2 1x m l 查询中包含冗余信息2 4 3 2 2x m l 查询存在不必要空间开销2 4 3 3 设计方案2 5 3 3 1x m l 文档延迟加载2 5 3 3 2x q u e r y 查询重写机制2 6 3 3 3 利用路径制导树指示t w i g 查询2 7 3 4 基于x m ls c h e m a 的x q u e r y 查询优化处理系统架构2 7 3 5 本章小结2 9 北京工业大学丁学硕i :学位论文 第4 章x m ls c h e m a 导入模块的设计与实现3 1 4 1x m l s c h e m a 导入系统架构。3 1 4 2x m ls c h e m a 数据结构设计3 3 4 2 1 元素关系表3 3 4 2 2 路径树和生成算法3 6 4 2 3 倒排索引表3 8 4 3 本章小结3 9 第5 章x m l 延迟加载机制设计与实现4 1 5 1x m l 延迟加载系统结构图4 1 5 2x m l 预处理阶段4 2 5 2 1x m l 解析器选取4 2 5 2 2x m l 文档树的存储设计。4 2 5 3 动态构造虚拟x q u e r y 对象树4 4 5 4 本章小结4 6 第6 章基于x m ls c h e m a 的t w i g 查询算法4 7 6 1 工作背景4 7 6 1 1x m l s c h e m a 简介4 7 6 1 2t w i g 查询4 7 6 1 3t w i g l i s t 查询算法中存在问题4 8 6 2 基于x m ls c h e m a 的t w i g l i s t 扩展算法4 9 6 2 1 路径制导树p d t 生成算法4 9 6 2 2t w i g l i s t b y - p d t 算法51 6 3 本章小结5 4 第7 章系统测试5 5 7 1x m l 延迟加载机制测试与分析5 5 7 1 1 数据集5 5 7 1 2 测试方法5 5 7 1 3 测试用例:5 5 7 1 4 测试环境5 5 7 1 5 测试结果及其分析5 6 7 2 基于x m ls c h e m a 的t w i g 算法测试与分析5 6 7 2 1 数据集5 6 7 2 2 测试用例5 7 7 2 3 测试环境5 7 7 2 4 测试结果5 7 - v i 目录 7 2 5 测试结果分析5 8 7 3 本章小结5 9 结 仑。6 1 参考文献6 3 攻读硕士学位期间发表的学术论文6 7 致 射6 9 北京t 业人学丁学顾i j 学位论文 1 1 课题背景 第1 章绪论 近几年来,由于e x t e n s i b l em a r k u pl a n g u a g e ( x m l ) t i 2 】的可扩展性、自描述 性、跨平台性、以及强大的数据描述能力和简便的数据交换能力,使得其在互联 网上快速发展,并成为互联网上信息描述和交换的标准。鉴于x m l 数据的半结 构化特性,使得对其存储和查询处理比关系库要繁琐和复杂,如何有效地存储和 查询x m l 数据成为当前数据库研究的一个热点问题。 x q u e r y ( x m lq u e r y ) 3 , 4 是w 3 c 提出对x m l 进行查询的语言规范,x q u e r y 和x m l 之间的关系,等同于s q l 和数据库表之间的关系。x q u e r y 可以用来查 询x m l 的数据1 5 , 6 l 不仅仅限制于对x m l 文件,还包括任何以x m l 形式呈 现的数据,包括数据库等。x q u e r y 是一种函数式语言,它以表达式作为程序设 计的主体,支持递归函数的定义,没有副作用,非常适合用来表达从x m l 文档 或者大型x m l 存储库中获得数据的查询。x q u e r y 支持x p a t h 查询【7 】,并将其作 为子集,x p a t h 是一门在x m l 文档中查找信息的语言,其用于在x m l 文档中 通过元素或者属性进行导航。然而,鉴于x m l 半结构化特点,其查询语言例如 x q u e r y 和x p a t h 的实现普遍面临性能瓶颈,成为该领域的研究热点。 为了提高x m l 查询性能,人们分析了各种复杂的x m l 查询方式,注意到 大多数复杂的x m l 查询请求都包含了小枝查询( t w i g 查询) ,小枝查询是x m l 查询处理的核心操作,其主旨就是搜索x m l 文档树并从中找到与小枝查询模式 相匹配的元素序列。基于小枝查询模式匹配的x m l 查询处理中有两个关键的问 题:( 1 ) 如何快速地判断x m l 文档树中任意两个节点之间的关系,包括父子关 系( p c 关系) 和祖先一后代关系( a d 关系) 。( 2 ) 如何从给定的x m l 文档中高 效地查找出与小枝模式相匹配的所有数据。如何解决这两个问题对于提高小枝查 询起着至关重要的作用。 x m ls c h e m a 8 】是w 3 c 提出的模式描述语言,其采用了和x m l 相同的文法 结构,支持命名空间,具有丰富的数据类型及其强大的数据结构定义功能,充分 改造并极大地扩展了d t d 的能力,弥补了d t d 在描述文档结构和内容方面的不 足。本文就基于x m ls c h e m a 的查询优化技术展开了分析和研究,并给出解决方 案。 北京1 二业大学工学硕士学位论文 1 2 研究意义 随着互联网蓬勃发展,x m l 数据量不断地增大,如何对x m l 数据进行有 效的存储和查询成为数据库研究的热点问题。x q u e r y 和x p a t h 作为x m l 查询 语言,由于简单性,易用性和灵活性等特点,得到了广泛地应用。现在许多公司 和组织都着手从事x q u e r y 执行引擎的研发工作,推出了x q u e r y 的不同实现, 包括:g a l a x 系统,基于x q u e r y 的查询语言;i p s i ( o r e i n t x a :种有效的x q u e r y 查询代数) 。x q u e r y 作为x m l 的通用查询语言,已经被越来越多的人使用,去 除x q u e r y 查询中所包含的无用查询请求有助于提高x q u e r y 执行效率。 x m ls c h e m a 是继d t d 之后,w 3 c 提出的另一种模式描述语言,其本身就 是x m l 文档,支持命名空间,具有丰富的内嵌数据类型及其强大的数据结构定 义功能,弥补了d t d 在描述文档结构和内容方面不足。x m ls c h e m a 在很多领 域都有广泛的应用,比如企业的数据集成和类型检查方面,并且有替代d t d 的 趋势。对x m ls c h e m a 技术 9 , 1 0 1 研究有助于x q u e r y 的表达式优化【l l ,1 2 】以及表达 式和函数的类型检查【1 3 1 5 】工作的进行,具有十分重要的应用价值和现实意义。 x m l 数据库的查询优化技术是当前数据库领域的一个研究热点,而小枝模 式匹配又是其中的一个研究重点。小枝查询利用模式匹配从x m l 文档中提取出 查询结果,好的t w i g 查询算法不仅仅能够有效地解决中间结果较多的问题,而 且可以减少对x m l 文档的扫描次数。x m ls c h e m a 作为一种模式描述语言,其 定义了x m l 文档结构,确定了各元素在文档中的位置层次关系。利用x m l s c h e m a 对x m l 约束,有望简化小枝模式匹配过程。 1 3 相关研究现状 x m ls c h e m a 于2 0 0 1 年5 月成为w 3 c 组织的推荐标准,对x m l 产生了深 远影响,可以说是x m l 发展史上的一个重要里程碑。在x m ls c h e m a 出现之前, x m l d t d 一直作为x m l 文档结构验证的标准,由于x m l d t d 出现在x m l 之 前,两者在文法结构方面存在着巨大的差异。x m ls c h e m a 作为x m l 的一种应 用,弥补了d t d 存在的缺点,例如:数据类型单一、缺乏灵活性和不支持数据 类型的扩展等,使得x m ls c h e m a 在电子商务交易处理,管理控制和数据获得等 领域有着非常广泛的应用前景。m i c r o s o f t 公司已经提供了符合x m ls c h e m a 的 m s x m l 4 0 技术版【1 6 1 ,o r a c l e 公司也将x m ls c h e m a 作为x m l 的核心技术在 o r a c l e 9 i t m 中进行了支持,其它的一些公司也将提供支持x m ls c h e m a 的产品, 例如a l t o v a m i s s i o 心倒2 0 0 8 是最完整最畅销的x m l 开发工具集,支持所有 x m l 技术,包括x s l t1 0 2 0 、x m ls c h e m a 、x q u e r y 、w e b 服务、r d f 和o w l 第1 章绪论 等。同时微软的最新产品s q ls e r v e r 2 0 0 8 【l 刀也增强了x m ls c h e m a 验证功能, 用户可以使用一个或多个x s ds c h e m a 执行遵从性检查,以此来验证x m l 数据。 x q u e r y 作为x m l 通用的查询语言,不仅查询功能强大,而且简单灵活并 易于实现。x q u e r y 的优化【1 睨0 1 有助于提高x m l 查询的执行效率。目前对x q u e r y 表达式的优化基本上可以分为两大类:一种是基于语义的查询优化,另一种是基 于执行代价的查询优化。在语义优化方面,利用x m ls c h e m a 的约束信息对正则 路径表达式进行优化;而谓词消除和选择连接主要是基于代价的查询优化所考虑 的范围。 t w i g 查询是x m l 查询处理核心操作,并成为x m l 数据库研究的一个热点。 近年学术界已经提出各种t w i g 查询算法,例如t w i g s t a c k 算法【z ,t w i 9 2 s t a c k 算法【2 2 】,t w i g l i s t 算法【2 3 】等。其中,t w i g s t a c k 是一种查询模式整体性匹配算法, 该算法采用x m l 文档标签聚集索引,通过对与查询节点匹配的文档节点实例进 行一次扫描从而获得查询结果,避免了产生大量的中间结果。该算法的时间效率 与输入规模成正比,实验证明,整体性匹配算法可以有效地处理带有a n d 逻辑 谓词的t w i g 查询,但该算法没有对查询处理中含有o r 逻辑谓词情况进行讨论。 t w i 9 2 s t a c k 是一种自底向上的查询处理算法,该算法采用了h i e r a r c h i c a l s t a c k ( 层 次栈) ,避免了后序路径连接和排序。但是,t w i 9 2 s t a c k 算法也存在着缺点;一 方面,在层次栈中,祖先后代关系维护方式非常复杂;另一方面,t w i 9 2 s t a c k 存 在着大量的层次栈,维护该数据结构增加了查询处理时间开销。t w i g l i s t 摒弃了 层次栈,采用了简单的链表,在进行结果枚举时,只需要枚举现有的链表,不需 要额外开销,在时间复杂度和空间复杂度上要优于t w i g z s t a c k 算法。x m ls c h e m a 是对x m l 文档验证的标准,如何利用x m ls c h e m a 约束信息对t w i g 查询进行 优化来简化t w i g 查询模式以及匹配过程,是提高x m l 查询处理的关键所在, 具有十分重要的现实意义。 文献 2 4 】提出了一种p r u n e g t p 算法,该算法利用了x m ls c h e m a 对x m l 的约束信息,可以对t w i g 查询模式进行剪枝操作,去掉了冗余叶子节点或冗余 中间节点以及空查询或子查询,从而减少了不必要的节点存储,提高了查询效率。 文献 2 5 】提出了利用有向图这种数据结构即s i g ,来描述x m ls c h e m a 的信息; 其中,节点表示元素或者属性,边表示节点之间的关系,通过s i g 获得x q u e r y 查询的a p s ( 备用路径集) ,利用备用路径集中代价最小的路径重写x q u e r y 查询 来实现对其的优化。文献【2 6 】提出了一种基于s c h e m a 的路径表达式优化处理, 即分析待查询x m l 文档的d t d ,计算出其中所有等价路径类,并将等价路径类 及其关系记录在有向图c i c g r a p h 中。c i c g r a p h 中的每一个节点都代表一个等 价路径类,并保证其只与d t d 有关,与具体的x m l 文档及其物理存储方式无 关,根据等价路径类对x p a t h 进行优化处理,包括去除冗余路径、简化谓词表达 北京工业大学t 学硕上学位论文 式、判断谓词冲突等。 1 4 课题来源 本研究工作得到了北京市自然科学基金的支持,基金编号为4 0 8 2 0 0 3 ,项目 名称:x q u e r y 语言动态编译技术的研究。 1 5 作者工作 随着x m l 在各个领域应用不断地扩展和深入,如何对x m l 进行有效查询 成为了数据库研究的热点问题,x m ls c h e m a 描述了x m l 文档的结构,利用其 所提供的类型信息有助于验证并简化x m l 查询模式,进行基于x m ls c h e m a 查 询优化技术的研究具有十分重要的现实意义。 作者工作如下: 1 利用x m ls c h e m a 提供的类型信息来重写x q u e r y 查询,从而实现对 x q u e r y 查询优化,这些优化工作主要包括将x p a t h 表达式中的模糊查询 转换为精确查询以及去除冗余谓词。 2 提出了一种新的算法t w i g l i s t b y - p d t 来处理小枝查询,该算法利用 x m ls c h e m a 提供的类型信息,减少了小枝查询中对x m l 文档的扫描范 围。 3 通过采用x m l 延时加载机制,实现对x m l 文档的按需加载,即根据 x m l 查询请求将查询所涉及到的x m l 文档片段加载到内存中。 4 将基于x m ls c h e m a 查询优化功能无缝地添加到g e o q u e r y 系统中。 1 6 本文结构 本文组织结构如下所示: 第l 章绪论主要介绍了课题背景,研究意义,基于x m ls c h e m a 查询优 化的相关工作以及课题的来源。 第2 章主要介绍了与课题相关的技术和背景知识包括x m l 、d t d 、x m l s c h e m a 、x q u e r y 、t w i g 、区域编码和x q u e r y 的中间语言f x q l 。 第3 章介绍了x q u e r y 解释系统的系统结构及其查询处理的流程图;分析了 x m l 查询中存在的问题,包括x m l 查询请求中包含冗余信息和x m l 查询请求 中存在不必要的空间开销;并针对这些问题提出了相应的解决方案,包括x m l 文档延迟加载、x q u e r y 查询重写机制和利用路径制导树指示小枝查询。 第l 苹绪论 第4 章详细地介绍了x m ls c h e m a 导入的系统结构及其数据结构的设计,包 括元素关系表,路径树和倒排索引表。 第5 章介绍了x m l 延迟加载机制的设计和实现。首先,从系统结构的角度 对x m l 延迟加载进行了一个概要的介绍;然后,介绍了x m l 预处理过程中解 析器的选取和x m l 存储结构设计;最后,举例说明如何利用该机制来动态构造 x q u e r y 虚拟树。 第6 章主要介绍了基于x m ls c h e m a 的小枝查询优化算法。 第7 章对基于x m ls c h e m a 的查询优化系统进行了系统测试,并对测试结果 进行了分析。 北京_ t 业大学工学硕上学位论文 一6 第2 章相关技术和背景知识 2 1x m l 简介 第2 章相关技术和背景知识 x m l 是继h t m l ( h y p e rt e x tm a r k - u pl a n g u a g e ) 之后新兴的互联网信息交换 标准。h t 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 em a r k u p l a n g u a g e ) ,x m l 可以看作是s g m l 的一个子集,而h t m l 则被认为是s g m l 的一个应用。s g m l 主要集中于信息的结构,并通过结构而不是表现形式来约束 数据,这就使得它能以任何方式进行编辑、检索、分类、转换或者聚集。h t m l 是一个极度简化的s g m l ,它仍然采用标记来表达数据的语义,其存在的弊端是 该语言的标记集是固定的,使用者不能对其进行扩充,并且h t m l 中的数据和 显示是混杂在一起的,当页面要改变显示的时候,就必须重新修改h t m l 。x m l 具有巨大的伸缩性和灵活性,使用者可以定义各种标记来描述文件中任何元素数 据,从而突破了h t m l 固定标记集合的约束,使文件内容更加丰富。x m l 文档 需要遵循一定的语法规则: 1 ) x m l 文档可以包含一个或多个元素,而且必须且只有一个根元素,它不 能出现在其他任何元素的内容中。 2 ) 每个元素必须有其开始和结束标签。开始标签和结束标签可以是大写或 者是小写,但是它们必须互相匹配。 3 ) 元素必须正确地嵌套。开始标签和结束标签必须在同一元素的内容中。 4 ) x m l 文档可以包含属性,但是必须用引号将属性值括起来。 使用x m l 文档的场合: 1 ) 普通文档。 2 ) 结构化记录,比如约会记录或订单。 3 、i n t e m e t i n t r a n e t 等w e b 应用程序。 4 ) 数据记录,比如查询的结果集。 5 ) w e b 站点的元内容,如“信道定义格式”( c d f ) 。 6 ) 图形显示,如应用程序的用户界面。 7 ) w e b 上信息与人的链接。 8 ) 配置文件。 x m l 是w 3 c 推出的标准,已经获得了广泛的行业支持,x m l 在采用简单、 易于使用的格式标准以及在应用程序之间交换数据方面是一个革命性的进步,被 广泛地应用于高级数据库搜索、网上银行、医药、法律、电子商务和其他领域。 下面我们来看一个x m l 文档的例子。 北京工业大学工学硕士学位论文 例2 - 1 一个标准的x m l 文档示例:b i b x m l t c p i pi l l u s t r a t e d s t e v e n s w a d d i s o n - w e s l e y 6 5 9 5 d a t ao nt h ew 曲 a b i t e b o u l s e r g e b u n e m a n p e t e r s u c i u d a n m o r g a nk a u f m a n np u b l i s h e r s 7 9 例2 - 2 一个x m l 文档示例:m e m o x m l p a u lv b i r o n a s h o km a l h o t r a 8 - 第2 苹相关技术和背景知识 l a t e s td r a f t w en e e dt od i s c u s st h el a t e s td r a f t i m m e d i a t e l y e i t h e re m a i lm ea t m a i l t o :p a u l v b i r o n k p o r t o r c a l l 5 5 5 - 9 8 7 6 通过上面两个x m l 文档例子的对比,可以看出前一个x m l 文档的结构和内 容相对来说比较规范和整齐;后一个x m l 文档结构就显得杂乱无章。原因在于 前一个x m l 文档符合x m ls c h e m a 合法性检查的约束。x m ls c h e m a 是w 3 c 提出 的对x m l 文档进行合法性检查的规范,其作用在于约束x m l 文档的组织形式和 内容,并确定x m l 文档中出现的标记元素和各元素在文档中的层次位置。接下 来,我们将主要介绍验证x m l 文档的两种方法:d t d 和x m ls c h e m a 。 2 2d t d 和x m ls c h e m a 随着x m l 技术及其应用的推广,对其数据规范性的要求也变得越来越高, 起初,主要采用d t d 来验证x m l 文档,但是,随后人们就意识至i d t d 存在的缺 陷:( 1 ) d t d 本身缺乏对x m l 文档的内容及其语义的约束机制;( 2 ) 它不支持 强数据类型,也不能进行扩展;( 3 ) 只能根据元素的顺序和出现频率进行非常有 限的检验;( 4 ) 由于d t d 是用不同于x m l 的语言写成的,因此需要不同解析器 来分别处理d t d 和x m l 文档;( 5 ) d t d 的语法相对来说复杂和古怪,不大易用。 随后,w 3 c 又提出了另一种模式描述语言x 1 ls c h e m a ,并将其作为 d t d 的替代品。引入x m l s c h e m a 目的是为了弥补d t d 存在缺点。x m l s c h e m a 符合x m l 自描述语言规范,实际上可以将其看作是一个x m l 文档,因此它的解 析过程与x m l 文档十分相似,能够使用d o m 和s a x 等x m la p i 来解析x m l s c h e m a ,从而实现了) ( 】l 文档与其描述模式处理方式的一致性,有利于数据的 传输和交换。与d t d 相比,x m ls c h e m a 具有以下优点:( 1 ) x m ls c h e m a 是基 于x m l 的,其采用了和x m l 相同的语法结构;( 2 ) x m ls c h e m a 实际上也是x m l 文件,所以能够像其它的x m l 文件一样解析和处理; ( 3 ) x m ls c h e m a 支持一 系列的数据类型,包括i n t 、f l o a t 、b o o l e a n ,s t r i n g 和d a t e 等; ( 4 ) x m ls c h e m a 提供了可扩充的数据模型,允许用户自定义数据类型;( 5 ) x m ls c h e m a 支持命 北京1 二业大学工学硕上学位论文 名空间;( 6 ) x m l s c h e m a 支持属性组。其中,x m l s c h e m a 最大的优点是数据 类型比较丰富,其数据类型的灵活性来自于对用户自定义类型的支持,x m l s c h e m a 提供了两种方式来实现对数据类型的定义:一种是简单类型定义;一种 是复合类型的定义。 见例2 - 1 中的b i b x m l 所提到的关于书目信息,其所对应的d t d 文件如下 所示,我们可以规定:首先出现的是书籍的出版年份,其次是书籍的名称,然后 是作者姓名等等。 例2 3b i b x m l 文档的d t d 从上述的例子我们可以看出,d t d 对数据的定义和关系数据库中对数据表 格的定义比较类似。对同一类x m l 文档结构的定义,用d t d 进行描述要比用 x m ls c h e m a 精炼,但是x m ls c h e m a 可以表达对文档结构和数据类型更为明确 的约束。在下面,我们使用一个比较简短的x m ls c h e m a :p e r s o n a l x s d 来描述员 工信息。 例2 4 一个x m ls c h e m a 示例:p e r s o n a l x s d 第2 章相关技术和背景知识 例2 - 5 与p e r s o n a l x s d 等价的d t d :p e r s o n a l d t d 通过上述的两个例子,我们可以发现,与d t d 相比,x m ls c h e m a 语义更 加地复杂和繁琐。之所以会出现这两种验证x m l 文档格式的模式文件,是因为 它们的适用范围是不相同,其中,d t d 主要面向文档,而x m ls c h e m a 主要面 向数据。目前大多数面向x m l 应用,都对d t d 做了很好的支持,d t d 的工具比 如:x m l 嘶t e r ,o x y g e nx m le d i t o t ,s y t l u ss t u d i o 等也相对来说较为成熟。一般 情况下,这些应用和工具并不会选择以x m ls c h e m a 替换d t d 的方式进行升级, 更多的选择是对二者都支持。尽管x m ls c h e m a 的语法远比d t d 要复杂,但是 其优越的数据描述能力极大地满足了各个领域应用的需要。所以,x m ls c h e m a 必然会取代d t d 。 2 3x q u e r y 语言 x q u e r y ,即x m lq u e r y 是w 3 c 所制定的标准,用来对x m l 数据进行查询。 x q u e r y 是构建在x p a t h 表达式之上,它对x m l 作用类似于s q l 对数据库的作用, 不同的是s q l 的查询对象是关系数据库,返回的查询结果是关系表;而x q u e r y 的查询对象是x m l 文档,返回的查询结果也是x m l 文档;并且,随着x m l 技术 及其应用的推广,x q u e r y 被越来越多的数据库引擎i b m 、o r a c l e 和m i c r o s o f t 所支 持。 x q u e r y 是一种函数式语言,主要采用表达式的方式来描述查询请求、查询 条件和数据构造。x q u e r y 表达式主要有以下几个组成部分: 1 ) 路径表达式( x p a t h ) :其语法结构主要是基于x p a t h i 0 ,是为了寻址x m l 文档而提供的一种查询语言。x p a t h 是x q u e r y 的一个子集,起到了导航的 作用,它通过路径表达式在x m l 文档中进行节点定位来查询用户感兴趣的 北京t 业大学工学硕士学位论文 x m l 数据。 2 )f l w o r 表达式:它是由f o r 、l e t 、w h e r e 、o r d e rb y 和r e t u r n 等子句以特定顺序组合而成。一个f l w o r 表达式可以包含多个f o r 或l e t 子句,w h e r e 子句主要用来进行条件筛选,o r d e rb y 子句可以对查询 结果进行排序,最终满足检索条件的结点数据才会包含于r e t u r n 子句 中。 3 ) 算术表达式:包括加、减、乘、除和取余运算等操作; 4 1 元素构造表达式; 5 ) 函数表达式; 6 ) 条件表达式和量词表达式; 7 ) 数据类型的测试和转换表达式; 8 ) 逻辑表达式:该表达式由“a n d 或者是“o r 组成,逻辑表达式的运算结果是 t r u e 或f a l s e ; 在上述所提及的x q u e r y 表达式中,f l w o r 表达式最接近于s q l 表达式。 在f l w o r 表达式中,我们可以使用f o r 和l e t 子句将数据绑定到变量上,然 后在后续的查询步中使用该变量。例如下面的x q u e r y 查询: f o r $ b o o ki nd o c u m e n t ( ”b i b x m l ”) b o o k l e t $ t i t l e := $
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中西医结合耳鼻咽喉科学知到智慧树答案
- 基于WPF的教育数据分析与可视化系统-洞察及研究
- 2025年度铁路货运代理货物装车及卸车服务合同
- 2025年酒店行业客房服务员派遣服务合同
- 2025车库使用权转让及车位配套维修合同
- 2025版跨境电商商业采购合同
- 2025版建筑垃圾清运及处置劳务分包合同范本
- 2025年大数据中心采购合同签订与数据安全协议
- 2025版企业文化墙定制墙体彩绘合同
- 2025版水泥运输服务标准合同样本
- 科目二考试成绩单
- 电子商务师国家职业资格培训教程ppt
- 严重过敏反应急救指南共37张课件
- 微电网的总体结构
- DB53-T 1119-2022石林彝族(撒尼)刺绣技法-(高清最新)
- 辽宁省盘锦市各县区乡镇行政村村庄村名居民村民委员会明细
- 喷砂检验报告
- 原材料来料检验报告
- PCB板来料检验规范
- 诺如病毒感染暴发调查和预防控制技术指南(2023版)
- 教师入职审批登记表
评论
0/150
提交评论