




已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml数据库的数据查询优化技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 x m l 是w 3 c 于1 9 9 8 年推出的一种标记语言。由于其独特的技术优势,x m l 推出 后很快就成为网络中数据表示及交换的标准。因此,要构建基于x m l 的各种应用,准 确并高效的从x m l 数据源中查询并获取数据就成为其中关键的一步。论文以自动机技 术作为研究基础,对x m l 文档查询优化技术进行了理论探讨。 本文首先对自动机技术在x p a t h 查询中的应用进行了研究。针对基于自动机的x m l 查询优化技术,介绍了自动机技术用于x m l 文件查询中的主要思想,对几种基于自动 机技术的查询优化方法进行了分析与比较,在对原有模型算法改进的基础上提出了基于 树自动机技术的x p a t h 查询模型。给出了单个和多个x p a t h 表达式的模型构造方法,同 时给出了基于树自动机的查询模型在x m l 文档上的运行实例。最后给出了相应的构造 算法和运行算法。 然后,本文针对目前x m l 文档查询优化技术研究中存在的不足之处,提出了一种 基于视图的高效查询优化方法。此方法包含了两个关键技术:一是链树索引结构;二是 基于视图的查询优化技术。我们将这两个技术结合起来,同时将自动机技术也应用于有 效视图的选择上,即利用索引结构和自动机技术来从大量的给定的视图中快速有效地查 找有效视图。这大大提高了查询的速度,更完善地实现了x m l 文档的查询优化。 最后设计并实现了一个x m l 文档处理系统。根据前面提出的查询优化技术的基本 思想,分析和设计了此系统的体系结构。本系统首先对用户提交的x p a t h 表达式进行有 效视图验证,然后通过本文所提出的查询优化技术实现x m l 文档的查询优化处理,并 执行得到查询结果。另外,还设计了两组测试方案对本系统进行测试,并通过实验结果 分析,来验证本文所提出的查询优化技术的可行性和有效性。 关键词:x m l ;查询优化;自动机;视图 大连交通人学t 学硕十学位论文 i i i a b s t r a c t x m li sr e l e a s e da sam a r k u pl a n g u a g eb yw 3 ci n19 9 8 a sar e s u l to fi t su n i q u e t e c h n i q u ea d v a n t a g e ,x m lr a p i d l yb e c o m e st h es t a n d a r do fd a t ar e p r e s e n t a t i o na n de x c h a n g e o nt h ew e b t h e r e f o r e ,f o rb u i l d i n gu pv a r i o u sa p p l i c a t i o n sb a s e do nx m l ,i ti s i n i t i a l l y i m p o r t a n tt oa c c u r a t e l ya n de f f e c t i v e l yq u e r y c a p t u r ed a t af r o mx m ld a t as o u r c e o nt h eb a s i s o ft h ea u t o m a t at e c h n i q u e ,t h i sp a p e rd i s c u s s e st h et e c h n i q u eo fx m ld o c u m e n tq u e r y o p t i m i z a t i o nb yt h e o r y t h i sp a p e rf i r s th a sc o n d u c t e dt h er e s e a r c ht ot h ea u t o m a t o nt e c h n o l o g yi nt h ex p a t h i n q u i r y sa p p l i c a t i o n w i t ht h ef o c u so nx m li n q u i r yo p t i m i z a t i o nt e c h n i q u e sb a s e do n a u t o m a t o n , i ti n t r o d u c et h em a i ni d e ao ft h ea u t o m a t o nt e c h n o l o g yu s e si nt h ex m l d o c u m e n ti n q u i r y ,i ta n a l y z e sa n dc o m p a r e st os e v e r a lk i n d sb a s e do nt h ea u t o m a t o n t e c h n o l o g y si n q u i r yo p t i m i z a t i o nm e t h o d ,i tp r o p o s e dx p a t hi n q u i r ym o d e lb a s e do nt h et r e e a u t o m a t o nt e c h n o l o g y s ,w h i c hp r o p o s e st h ei m p r o v e m e n ta l g o r i t h mt ot h eo r i g i n a lm o d e l i t i n t r o d u c ec o n s t r u c t i o nm e t h o do fs i n g l ea n dm a n yx p a t he x p r e s s i o nm o d e l ,i ts i m u l t a n e o u s l y i n t r o d u c em o v e m e n te x a m p l eb a s e do nt h et r e ea u t o m a t o n s i n q u i r ym o d e li nx m l d o c u m e n t s f i n a l l yi t i n t r o d u c et h ec o r r e s p o n d i n gs t r u c t u r ea l g o r i t h ma n dt h em o v e m e n t a l g o r i t h m t h e n ,w i t ht h ef o c u so nt h ed e f i c i e n c yw h i c he x i s t st h ep r e s e n tx m ld o c u m e n t si n q u i r y o p t i m i z a t i o nt e c h n i q u e sr e s e a r c h ,t h i sp a p e rp r o p o s eo n ek i n do fh i g h l ye f f e c t i v ei n q u i r y o p t i m i z a t i o nm e t h o db a s e do nt h ev i e w t h i sm e t h o di n c l u d et w ok e yt e c h n o l o g i e s :f i r s t , c h a i nt r e ei n d e xs t r u c t u r e ;s e c o n d ,i n q u i r yo p t i m i z a t i o nt e c h n i q u e sb a s e do nv i e w i tu n i o n t h e s et w ot e c h n o l o g i e s ,i ts i m u l t a n e o u s l ya l s oa p p l i e st h ea u t o m a t o nt e c h n o l o g yt ot h ec h o i c e o fe f f e c t i v ev i e w ,i tc o m e st os e a r c ht h ee f f e c t i v ev i e we f f e c t i v e l ya n df a s tu s i n gt h ei n d e x s t r u c t u r ea n dt h ea u t o m a t o nt e c h n o l o g yf r o mt h em a s s i v ev i e ww h i c ha s s i g n s i ti m p r o v et h e i n q u i r ys p e e dg r e a t l y ,i tr e a l i z e st h ex m l d o c u m e n t si n q u i r yo p t i m i z a t i o np e r f e c t l y a tl a s t ,w ed e s i g na n dr e a l i z ea l lx m ld o c u m e n tp r o c e s s i n gs y s t e m a c c o r d i n gt ot h e e s s e n t i a li d e ao fx m l q u e r yo p t i m i z a t i o nt e c h n i q u ep r e s e n t e da b o v e ,w ea n a l y z ea n dd e s i g n t h e a r c h i t e c t u r eo ft h es y s t e m t h es y s t e mf i r s tp r o c e s s e se f f e c t i v ev i e w sv a l i d a t i o nt ot h e x p a t hq u e r yt h a tu s e rs u b m i t s t h e ni m p l e m e n t st h eo p t i m i z a t i o np r o e e s s i n gw i t l lt h eq u e r y o p t i m i z a t i o ni nt h i sp a p e r ,f i n a l l yc a r r i e si t o u ta n dg e t sr e s u l t s m o r e o v e r , t h ep a p e ra l s o p r e s e n t st w os c e n a r i o st ot e s tt h es y s t e m i t sv e r i f i e df r o mt h ee x p e r i m e n tr e s u l t st h a tt h en e w q u e r yo p t i m i z a t i o nm e t h o dp r e s e n t e di n t h i sp a p e rc a nh i g h l yi m p r o v et h ex m lq u e r y e f f i c i e n c y k e yw o r d s :x m l ;q u e r yo p t i m i z a t i o n ;a u t o m a t a ;v i e w 大连交通大学学位论文版权使用授权书 本学位论文作者完全了解太蔓銮通太堂有关保护知识产权及保 留、使用学位论文的规定,即:研究生在校攻读学位期间论文工作的 知识产权单位属太蔓塞通太堂,本人保证毕业离校后,发表或使用 论文工作成果时署名单位仍然为太整塞通太堂。学校有权保留并向 国家有关部门或机构送交论文的复印件及其电子文档,允许论文被查 阅和借阅。 本人授权太整塞通太堂可以将学位论文的全部或部分内容编入 中国科学技术信息研究所中国学位论文全文数据库等相关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后应遵守此规定) 学位论文作者签名:起茛 日期:2 0 口矽年12 - 月13 日 学位论文作者毕业后去向: 工作单位: 通讯地址: 电子信箱: 导师签名:舜( 祥义 日期:2 o 。髀7 乙月岁日 电话: 邮编: 大连交通大学学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢及参考 文献的地方外,论文中不包含他人或集体已经发表或撰写过的研究成 果,也不包含为获得太董銮通太堂或其他教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在 论文串作了明确的说明并表示谢:誊。 本人完全意识到本声明的法律效力,申请学位论文与资料若有不 实之处,由本人承担一切相关责任。 学位论文作者签名:赶友 e t 期: 2 为孑年11 月f 3 日 绪论 绪论 一、研究背景和意义 随着因特网技术的飞速发展,素有难以扩展、交互性差、语义模糊等缺点的h t 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 3 c 组织正式推出它的短短的几年里, 迅速成为个在因特网上数据表示和数据交换的新标准,并受到越来越多的关注。x m l 有别于一般传统资料表示方法,它提供了跨平台机制,不但可以用来交换不同平台的资 料,还可以用以管理资料和存储资料,解决了以往不同平台间,为了达到资料交换共享, 所需支付的高额的成本。目前x m l 技术得到了极为广泛的应用,像目前最流行的电子 商务、企业不同平台之间信息的交换和分享、p d a 以及移动电话w a p 等,如今x m l 已渐渐的成为因特网上共通的语言与沟通的媒介。 随着x m l 应用领域的不断扩展,越来越多的数据使用x m l 的标准进行表示和存 储。从数据库的角度来看,在这些大量的x m l 文档中所包含的数据应该可以进行抽取 和分析。如何对这些文档的内容进行检索变得越来越重要。由于w e b 的数据特性,x m l 文档中所描述的数据必然是不规范和不完整的,也就是所谓的“半结构化数据”。它不 同于我们常用的关系数据模型或是面向对象数据模型。如何对x m l 文档进行有效的查 询是一个热点研究问题。 大多的x m l 查询语言都是基于正则路径表达式的查询语言。正则路径表达式是一 种利用正则表达式来表示x m l 路径结构的方法。利用正则路径表达式查询x m l 文件, 将有助于增加语法的弹性能力,并满足x m l 文件的结构特性。 目前主要有两种处理基于正则路径表达式的x m l 查询的方法。第一种方法利用传 统的数据库,如关系数据库或者面向对象数据库来存储和查询x m l 文件。在这种情况 下半结构化查询语言将转化为相关的数据库的查询语言,并且可以使用传统数据库系统 的一些查询技术。第二种方法,由于x m l 文件可以被看成一种图状的半结构化数据模 型,所以可以使用对于半结构化数据的特殊的查询机制。 在x m l 的查询语言与存储机制的研究日趋成熟状况下,查询时的效率就交得十分 的重要。近几年来提出了很多对x m l 查询进行优化的方法,主要分为三大类:第一类 是利用一些索引、编码等方法,来提高x m l 查询检索的效率。第二类是利用自动机技 术实现x m l 数据的流查询。由于x m l 数据在交换时常常是以数据流的方式来表达, 而x p a t h 的出现给x m l 文档的查询提供了规范,也使得x m l 流查询的重点转移到对 x p a t h 表达式的处理,而任意一个x p a t h 路径表达都可以用形式语言表示,每个形式语 大连交通大学t 学硕十学位论文 言都存在一个接受该语言的自动机。因此人们自然将自动机技术运用到x p a t h 查询处理 中,对x p a t h 表达式建模。所以怎样在处理x m l 数据流的同时实现数据的查询也是当 前研究的热点。第三类是利用已有的视图资源对x m l 查询进行重写,来优化x m l 查 询。目前存在着大量的对于如何利用视图进行查询重写的研究,但传统的研究都是关于 关系查询和面向对象查询的,如何对x m l 的查询特别是基于正则路径表达式的x m l 查询进行重写的研究还不够成熟,需要进一步的完善。 二、相关研究工作的现状 目前,x m l 数据流的查询处理已经取得一定的成果,如x f i l t e r f ,y f i l t e r 2 1 ,x t r i e 【引, i n d e x f i l t e r 【4 】,x p u s h l 5 1 等。 x f i l t e r 将有限状态机模型引入x m l 流的过滤处理,通过建立x p a t h 的确定状态机, 实现简单x p a t h 路径表达式的处理。但是x f i l t e r 没有考虑相似查询的冗余处理。 y f i l t e r 是对x f i l t e r 的扩展,y f i l t e r 将多个x p a t h 查询表达式合并成为一个单独的 非确定有限状态自动机( n f a ,n o n d e t e r m i n i s t i cf i n i t e a u t o m a t o n ) ,实现多个x p a t h 的高 效查询处理;在解析x m l 时缓存所有的候选结果和谓词匹配的节点;在解析结束后通 过后续处理得到最终的查询结果。y f i l t e r 不支持在解析x m l 时立即计算谓词并输出结 果,不适合实时性要求高的应用场合。 d a ns u c i u 在文酬6 】中提出首先根据x p a t h 构造n f a ,然后在n f a 上执行确定化操 作。这样,系统在运行的任意时刻,始终只有一个状态,系统的处理效率有了较大的提 高。但是,当由x p a t h 构造的n f a 状态数目较多时,确定化操作所需空间呈指数级增 长。另外,这种方法也没有解决对带谓词的x p a t h 查询的支持。 x t r i e 提出了只包含父子关系的子路径表达式的索引机制,并使用索引机制提取多 个查询的公共子路径,实现包含谓词逻辑的x p a t h 处理。x t r i e 是对基于n f a 自动机的 查询处理的一种扩展,n f a 自动机每接受一个元素事件,都查找相关的转换,但是x t r i e 在接受元素事件序列之后,才选择相关的处理器进行响应。一般而言,响应元素序列的 x p a t h 处理机比响应单一元素的x p a t h 处理机要少得多。通过这种方式,x t r i e 减少了 接受元素输入序列的查询处理机的数量,从而提高了运行时刻的处理效率。x p u s h 解决 了n f a 自动机的表达能力问题。这一扩展主要利用了支持表达路径之间a n d o r 关系 的a f a ( a l t e m a t i n gf i n i t ea u t o m a t o n ) 自动机,a f a 自动机利用扩展的状态来保存不同路 径的执行情况。x p u s h 执行器也是基于确定化自动机,提高了系统的查询效率,但是自 动机的确定化操作同样也面临指数级别空间代价的问题。 北京大学信息科学技术学院的高军等提出了基于树自动机的x p a t h 在x m l 数据流 上的高效执行算法x e b t l 7 。他们的工作主要体现在:采用树自动机作为x e b t 的基础, 2 绪论 树自动机能利用d t d ( d o c u m e n tt y p ed e f i n i t i o n ) 完成x e b t 的进一步优化;提出了局部 的x e b t 的优化策略,以有限空间为代价,减少x e b t 中同时运行的状态,从而提高效 率;提出了自上而下和自下而上相结合的x e b t 的优化策略,在查询满足判定的代价不 增加的情况下,减少查询集合中的重复操作。另外,一些数据流处理原型系统有:( 1 ) 布朗大学的大型流监控系统a u r o r a ,该系统是面向工作流的系统,用户可以通过组合查 询操作符及操作符间的数据流创建查询计划。( 2 ) 斯坦福大学的通用流系统s t r e a m 是 基于关系的流系统,该系统强调内存管理和近似查询。( 3 ) 纽约大学的高速时间序列数 据流在线统计系统s a t s t r e a m 是用于计算跨越多个数据流的在线统计监控系统。( 4 ) o p e n c q 是监控w e b 内容流的连续查询系统,该系统注重可伸缩的事件驱动查询处理, 并使用了一种基于增量视图保持技术的查询处理算法。 利用己有视图对查询进行重写也是提高查询效率的一种重要的方法同时也是本文 研究的重点。文献【8 】中论述了关系数据库查询重写的问题,而文献1 9 】中则论述了面向 对象数据的查询重写的问题,它们主要对通过视图的定义、视图的维护、以及算法复杂 度的分析和研究,提出了利用视图进行查询重写的一些方法。在半结构化数据模式中, 同时也进行了大量的研究。在文献i lo j 中描述了对于基于正则路径表达式的半结构化查询 q 以及视图v = v l ,v 2 ,v n ) ,如何利用这些视图重写查询q ,得到一个新的查询 q 的方法。此方法主要解决了利用视图对查询进行完全重写的问题。文献j 中研究了 半结构化的查询重写方法,通过完全遍历候选重写方案空间来得到正确的查询重写方 案。在假定半结构化数据中不存在路径依赖的情况下,可以证明上述方法是完备和正确 的。然而,算法没有对指数空间的查询重写候选方案进行裁减,算法具体执行效率低。 三、本文的研究设想和预期结果 在对前人基于自动机技术的查询优化方法进行分析与比较的基础上,对可以改进的 方面进行仔细分析,借鉴己经成熟的技术,形成新的查询解决方案。即根据前人将自动 机技术用于x m l 数据查询中的主要思想,提出对原有模型及算法的改进方案,设计一 个新的基于自动机的查询模型,并给出相应的构造算法和运行算法。 目前在x m l 文档查询优化技术研究中基于视图的查询优化技术仍没有得到广泛的 应用,这主要是因为这一技术在半结构化数据的查询上仍不是很成熟。本文在研究前人 工作的基础上,设想将自动机技术、索引技术与视图技术结合起来,以期望提出了一种 高效的查询优化方法,提高查询的效率,更完善地实现了x m l 文档的查询优化。 最后我们要设计一个x m l 文档处理系统。根据前面提出的查询优化技术的基本思 想,分析和设计此系统的体系结构。本系统首先要对用户提交的x p a t h 表达式进行有效 视图验证,然后通过本文所提出的查询优化技术实现x m l 文档的查询优化处理,并执 大连交通人学t 学硕十学位论文 行得到查询结果。然后设计测试方案对本系统进行测试,并通过实验结果分析,来说明 本文所提出的查询优化技术的可行性和有效性。 四、论文的组织 本文共分五章。 第一章介绍论文中要用到的与x m l 有关的基础知识。主要内容包括x m l ,d t d , x m ls c h e m a ,用来处理x m l 数据的解析模型d o m 和s a x 以及自动机理论知识。 第二章完整的整理并描述基于正则路径表达式的x m l 查询优化技术的研究现状及 主要的查询语言,列举了x m l 查询优化的几种方式。将x m l 查询技术分为几大研究 方向并对其相应的技术方法进行研究和分析。 第三章首先在分析树自动机实现原理的基础上,提出一个x p a t h 查询模型x t a , 详细描述x t a 的构造及运行过程,而后分别给出单个和多个x p a t h 查询的示例,最后 给出实现的关键算法及实验结果。 第四章首先提出了目前对于x m l 查询使用查询重写技术进行优化处理存在的一些 问题。针对这些问题,提出了视图索引技术,并给出相关的数据结构和算法描述来构建 链树索引。接下来分析了如何选出有效视图在x m l 数据上进行查询的计算过程,并给 出相应的算法。 第五章根据前面提到的x m l 文档处理的两方面技术的基本思想,分析和设计了 x m l 文档查询优化处理系统;然后对此系统进行了具体地实现;最后通过两组实验对 系统进行了测试,并对实验结果进行了分析,结果显示我们所设计的系统对提高x m l 文档的查询处理效率有着十分显著的效果。 4 第一章x m l 相关知识及理论 第一章x m l 相关知识及理论 这章介绍论文中要用到的与x m l 有关的基础知识。主要内容包括x m l ,d t d , x m ls c h e m a , 用来处理x m l 数据的解析模型d o m 和s a x 以及自动机理论知识。 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 3 c ( w o r l dw i d ew e bc o n s o r t i u m ) 组织提出的 w e b 上数据表示和数据交换的标准【l2 1 ,是万维网联盟( w 3 c ) 仓q 建的一组规范,用于在 w e b 上组织、发布各种信息。x m l 主要有两类作用:一是作为元标记语言,定义各种 实例标记语言的标准;二是作为标准交换语言,担负其描述交换数据的作用。在信息世 界中,x m l 担任着“国际语言 的重要角色,是互联网上和企业间交换和发布数据的 主要互操作标准。它不仅可以满足迅速增长的网络应用的需求,还能够确保在通过网络 进行交互操作时,具有良好的可靠性与互操作性。x m l 以其数据和表现相分离的特性 和强大的数据表达能力,己成为互联网和数据库的桥梁【l 引。 1 9 9 8 年2 月,w 3 c 给出了其正式的x m l l 0 版本,并正式推荐x m l 成为下一代 互联网标准。x m l l 1 也于2 0 0 4 年2 月4 日发布,从提出到现在不过只有几年时间, 但是x m l 作为一种跨产品、跨界面、跨平台的互联网的世界语言,具有极大的应 用前景,正引起政府、企业和各大软件厂商的极大兴趣。x m l 技术的深入研究具有重 要的理论意义和应用价值。 关于x m l ,实际上有一系列标准,包括x h t m l ( w 3 c 使用x m l 语法重写了h t m l 就是x h t m l ) ,x l i n k ( 用于描述将超链接加入x m l 文档的方法的标准) ,x p o i n t e r ( 关 于x m l 文档中特定部分的定位的标准) ,x s l ( e x t e n s i b l es y t l e s h e e tl a n g u a g e ,有关x m l 文档的显示样式的标准) ,x s l t ( x s l t r a n s f o r m a t i o n ,使用x m l 语法描述的一种转换机 制) ,s a x ( s i m p l ea p i f o rx m l ,x m l 简单a p i ) ,d o m ( d o c u m e n t o b j e c tm o d u l e ,供应 用程序处理x m l 文档的对象模型及接口标准的定义) ,x m ln a m e s p a c e s ( 关于如何将 x m l 文档中的元素标识、属性与u r l 相关联的标准) ,x m ls c h e m a ( 供应用开发者精 确地定义基于x m l 的类型) ,x p a t h 和x m lq u e r y ( 关于x m l 数据的查询标准) 等,有 些标准尚在制定中。 x m l 由于其良好的可伸缩性和灵活性,不仅提供对资源内容的表示,同时也提供 资源所具有的结构信息,因而被广泛接受。x m l 作为一种性能卓越的标记语言,有许 多特点: 火连交通人学t 学硕十学位论文 ( 1 ) 使用有语义的标记。标记( t a g ) 是标记语言中用来标注内容的组件。传统的h t m l 的标记只能传递字体、换行和表格等编排信息给浏览器,而x m l 使用的标记则有语义, 可清楚地向计算机和用户传达数据的语义,并有助于保存文档的结构。 ( 2 ) 数据语义与显示方式分离。x m l 是一个描述数据内容的语言,其本身并不决定 数据该如何显示,显示样式从数据文档中分离出来,放在样式单文件中,从而增强了显 示的灵活性,数据的显示有相应的标准和技术支持。 ( 3 ) 较好的可扩展性。x m l 支持复用文档片断,可由用户根据需要添加标记,也可 与他人共享。不同产业亦可在彼此协议的基础上,自由地制定适用的标记。各专业机构、 产业界、学术界和金融界均可发展各自的文件格式,并定义标准化的方式来显示及交换 专业文件,如m a t h m l ,f p m l ,e b x m l 等。 ( 4 ) 严格的语法控制。x m l 对语法有严格的要求,所有的x m l 文件都要经过严格 的验证才算完成。x m l 提供了一个独立的运用程序的方法来共享数据,使用d t d ,不 同组中的人就能够使用共同的d t d 来交换数据。 ( 5 ) 标准国际化。x m l 支持世界上大多数文字,这源于依靠它的统一代码的新的编 码标准,这种编码标准支持世界上所有以主要语言编写的混合文本。能阅读x m l 语言 的软件就能顺利处理这些不同语言字符的任意组合。因此,x m l 不仅能在不同的计算 机系统之间交换信息,而且能跨国界和超越不同文化疆界交换信息。 x m l 的诸多特点和优点,使它适合表现许多复杂的数据关系,有利于不同系统间 的信息交流,因而可以充当网际语言,成为数据和文档交换的标准机制。 1 2x m l 数据模式 模式是关于标记的语法规则,它详细描述了x m l 文档的结构,从而确定了文档的 框架。一个模式文件严格地规定了以它为标准的所有x m l 文档的树状层次结构的全部 细节。当某一x m l 文档引用该模式文件时,它必须通过有效性检验。x m l 文档的模式 有d t d 、x m l s c h e m a 、x d r ( x m ld a t ar e d u c e d ,简化x m l 数据) 和s o x ( s c h e m a f o r o b j e c t o r i e n t e dx m l ,面向对象x m l 语言的模式) 等。本节只讨论使用得最广泛的d t d 和x m ls c h e m a 模式。 x m l 的一个重要特性就是其可扩展性,x m l 文档的作者可任意定义文档数据的结 构以及元素的名称和属性。虽然这种可扩展性给文档的制作提供了很大的灵活性,但同 时它也使得不同组织的应用程序间的数据交换变得难以实现,原因是不同组织的应用程 序对同样的标记名称可能有不同的理解。另外,对于一个将不断发展的文档模型,x m l s c h e m a 或d t d 可指导此发展过程。 6 第一章x m l 相关知识及理论 1 2 1d i d d t d 源于s g m l 规范,它描述了一个x m l 文档的结构。一个d t d 通过指定一个 元素的属性以及子元素的名称来规定其结构。所有的值都是字符型的,可以用特殊属性 i d 来唯一指定一个元素。下面给出了x m l 文档的d t d 描述的例子。 d t d 通常用来定义x m l 文档的结构,使用d t d 可以使x m l 文档的格式统一化 和标准化。d t d 可以分为内部d t d 和外部d t d 两类,一个内部d t d 是在x m l 文件 的开头处声明的,外部d t d 单独存在于一个文件中,该文件中包含x m l 文档组织结构 的所有规则,文件以扩展名d t d 存储。d t d 中的声明分为四类,它们分别是:元素类型 声明、属性列表声明、实体声明、记号声明。d t d 指定了文档结构的一系列规定,并 且将文件的结构和文件的内容完全分开。通过定义d t d 可以控制在x m l 文档中可以使 用哪些标记符号,应该按什么次序出现,哪些标记符号有属性等。但d t d 只支持功能 相对较弱的字符类型的定义和约束,一旦需要对更丰富的类型进行描述时就会遇到困 难。表1 1 显示了与d t d 中的四种标记声明相关的关键字及其含义。 表1 1d t d 中的关键字及其含义 t a b l e1 1k e y w o r d si nd t da n dt h e i rm e a n i n g s d t d 关键字含义 e l e m e n t x m l 元素类型声明 a t t l l s t 元素类型可设置的属性及属性的允许值声明 e n t i t y 可重用的内容卢明 n o t a t l o n 不需要解析的外部内容的格式声明 7 大连交通大学t 学硕十学位论文 d t d 中的元素类型是通过e l e m e n t 标记声明的。x m l 元素可以是空元素,用关 键字e m p t y 来表示,可以有属性。x m l 元素可以具有任意的内容,用关键字a n y 来 表示。x m l 元素可以是纯文本,也可以包含若干个子元素。 x m l 元素声明的语法格式如下。 元素定义由元素内容模型来描述,元素内容模型是圆括号包含的若干子元素名称、 运算符和# p c d a t a 关键字的组合。运算符如表1 2 所示。 表1 2 运算符及其含义 t a b l e1 2o p e r a t o r sa n dt h e i rm e a n i n g s 符号含义 表示严格顺序 l 表不选样 9 表示可选,不出现或出现一次 表示零个或多个 + 表示一个或多个 d t d 中属性类型是对元素的补充和修饰,它能够将一些简单的特性与元素相关联。 通过属性,可以给元素绑定大量信息。属性在x m ld t d 中使用a t t l i s t 标记声明。 对于含属性的元素,至少要通过一个a t t l i s t 标记声明其属性列表。a t t l i s t 声明由 以下部分构成:a t t l i s t 关键字、属性修饰的元素名称以及零个或多个属性定义。 x m l 属性声明的语法格式如下。 元素名是属性所属的元素的名字,属性类型则用来指定该属性是属于哪种类型,缺 省值说明在x m l 文件中,如果没有特别说明属性的取值,语法分析器默认它具有的取 值。a t t l i s t 是一个属性的列表,它可以包含很多属性。 属性的缺省值有三种,其e f t # r e q u i r e d 表示元素的每个实例必须包含该属性, # i m p l i e d 表示元素可以选择是否包含该属性,# f i x e d 加上缺省值表示属性的值永远 固定为缺省值。属性的类型如表1 3 所示。 表1 3 属性的类型及其含义 t a b l e1 3t y p e so fa t t r i b u t ea n dt h e i rm e a n i n g s 8 第一章x m l 相关知识及理论 属性类型含义 c d a t a 字符数据( 字符串) i d 特定文档中唯一的名称 i d r e f 对具有i d 属性的元素的引用 i d r e f s 若干以空格分隔的i d r e f e n t i t y 已定义的外部实体的名称 e n t i t i e s 若干以空格分隔的e n t i t y 名称 n m t o k e n 名称 n m t o k e n s 若干以空格分隔的n m t o k e n n o t a t l o n 接受d t d 中声明的用于指示表示类犁的名称 e n u m e r a t e d 接受用户显式定义的属性可选值中的一个值 x m l 文档由声明和根元素组成,根元素包含其他所有子元素。实际应用中,x m l 文档的真实数据可以来自多个文件。包含x m l 文档,文档的d t d 以及其他引用的各种 文件都称为实体。 x m l 中有很多实体类型,可以根据三个标准进行分类:常规实体和参数实体、内 部实体和外部实体、已解析实体和未解析实体。常规实体能够声明与某个名称相关联的 可解析的文本块,可以通过该名称引用相应的文本。这类实体声明包含关键字e n t i t y 、 实体名称和替换值。实体引用是一种合法的x m l 名字,前面带有一个符号& ,后面跟 着一个分号( ;) 。有五个实体被定义为x m l 的固有部分,它们通常用作x m l 标记分隔 符号的转义序列。内部实体的值是在d t d 中给出的,是实体定义的一部分。外部实体 可以采用关键在s y s t e m 或者p u b l i c 关键字来定义,通过外部实体可以使用多个独 立的文件建立单个x m l 文档。已解析的实体( p a r s e de n t i t y ) 是由x m l 标记所组成的实体。 外部常规实体中可以含有非x m l 的内容,例如图片、声音、视频等,均被称为未解析 实体。各种实体如表1 4 所示。 表1 4 实体及其用途 t a b l e1 4e n t i t ya n di t sp u r p o s e 实体用途 & a m p通常用来替换字符& & l t 通常用来替换字符小于号( ) & a p o s 可用来替换字符串中的单引号( ) 9 大连交通人学1 :学硕十学位论文 除了上述五个实体,所有实体都必须在文档使用前予以定义。参数实体只能出现在 d t d 中,通过参数实体能够简便地引用或修改d t d 中常用的结构,参数实体声明和常 规实体类似,但要在名字前加上百分号( ) 。参数实体声明由以下几部分组成:e n t i t y 关键字、百分号、名称和替换值。在d t d 中,所有参数实体必须在引用之前进行声明。 引用参数实体时,需要在实体名称之前增加百分号( ) ,在其后增加分号( ;) 。 1 2 2x m ls c h e m a x m ls c h e m a 是w 3 c 于2 0 0 1 年5 月正式发布的标准,它一确定下来,立刻成为全 球公认的首选x m l 环境下的建模工具,己经基本取代了d t d 在x m l 刚刚成为w 3 c 推荐标准时的地位。x m ls c h e m a 文档本身也是x m l 文档,是一种描述信息结构的模 型,是一种描述相关内容的机制。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 l t l 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 c u r s 和m a x o c c u 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 f i o n 甜”,还是 r e q u i r e d ”,分别表示该属性有一个确定的默认值、该属 性可以有默认值和该属性必须在元素中出现。 1 0 第一章x m l 相关知识及理论 ( 5 ) g r o u p 。g r o u p 元素用于将x m l 文档中的元素分组。通过元素s q e 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 l s c h e m a 中将 包括的一系列元素成为 一个系列,系列中的每个成员在对应实例中出现的顺序与其在系列定义中的顺序相同。 ( 8 ) a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园中班数学《认识数字6》课件
- 安全培训班自我鉴定课件
- 购房质押担保借款合同4篇
- 安全培训班感谢话课件
- 2024年济南市章丘区殡仪馆工作人员招考真题有完整答案详解
- 木工安全培训课件
- 《Hadoop大数据原理与应用》课件4.课件-第7章分布式数据库HBase(2020春)
- XX行业2025年目标用户需求消费升级报告
- 安全培训特色课件
- XX企业航空航天2025年数字化转型策略规划报告
- 80年血火淬炼此刻亮剑正当时:纪念中国人民抗日战争暨世界反法西斯战争胜利80周年阅兵仪式对初中生的启示-2025-2026学年初中主题班会
- 2025-2026学年西师大版(2024)小学数学一年级上册(全册)教学设计(附目录P227)
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 全球热泵产业发展报告2025
- 辅警考试真题(含答案)
- 商业地产项目数字化运营与客户体验提升策略研究报告
- 基于多元线性回归的国内旅游收入影响分析-以江西省为例
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 水厂化验室知识培训课件
评论
0/150
提交评论