




已阅读5页,还剩60页未读, 继续免费阅读
(计算机软件与理论专业论文)基于关系数据库的xml存储查询系统设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于关系数据库的x m l 存储查询系统设计 摘要 互联网的出现及其发展扩展了人们的生活空间,影响了人们的生活习 惯。网页越来越成为人们获取、发布、交换信息的平台。在1 9 9 8 年,w 3 c 提 出了可扩展标记语言( x m l ) 。在可预见的将来它将成为h t m l 标准的代替 者。x m l 是w e b 和数据库之间的桥梁,x m l 格式的w e b 信息很容易存入数 据库。从数据库的观点来看这是x m l 数据库的技术,它主要集中在下面的论 题:数据模型,存储管理,模式管理,查询过程。 论文以设计一个基于关系数据库的x m l 存储查询系统( 下面简称x r d b 系统) 来研究上面的论题,x r d b 是一个以关系数据库为底层的x m l 存储和 查询系统。x r d b 系统的主要特色有: 用关系字典保存x m l 元素的父子关系,元素的属性,内容以及它们 对应的关系数据库表名,列名; 对x m l 模式的d o m 树进行修剪,使x m l 模式整洁,从而使映射得 到的关系的更合理; 关系字典保存了每个元素的绝对路径,可以快速地把路径查询重写为 结构化查询: x r d b 的查询结果是原来x m l 文档的文档片段。 关键诃:x m l ,x m ls c h e m a ,d o m 树,关系,字典,模式映射,路径表达 式,查询重写。 as t o r ea n d q u e r ys y s t e md e s i g n o fx m lb a s e d o nr e l a t i o nd a t a b a s e a b s t a “ t h e a p p e a r a n c ea n dd e v e l o p m e n t o fi n t e r n e ta n dw e bh a v ew i d e n e dt h ei i v i n g s p a c eo f h u m a nb e i n g ,i n f l u e n c e dt h el i f e s t y l eg r e a t l y ,a n dw e b i sb e c o m i n ga 辩m ev e h i c l ef o rg e t t i n g , d i s s e m i n a t i n g a n d e x c h a n g i n gi n f o r m a t i o n 。w 髓氇e e x p l o s i o no fi n f o r m a t i o n o i lt h ew e b 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 ) ,w h i c h i s a p p r o v e db yw 3 cf w o r l dw i d ew e bc o n s o r t i u m ) i n1 9 9 8 撕| lb e u s e da s s u b s t i t u t ef o rh t m ls t a n d a r di nt h en e a rf u t u r e x m li st h eb r i d g eb e t w e e nw e b a n dd a t a b a s e w e bi n f o r m a t i o ne 赫b et u r n e di n t oad a t a b a s eb y t h ef o r m a to f x m l t h et h e s i sr e s e a r c h e ss o m et e c h n i q u e so fx m ld a t a b a s e s f r o mt h ed a t a b a s e v i e w p o i n t 。i tc o n c e n t r a t e s o nt h ef o l l o w i n gi s s u e s :d a t am o d e l s ,s t o r a g em a n a g e m e n t , s c h e m a m a n a g e m e n t ,q u e r yp r o c e s s i n g i nt h i st h e s i s ,ax r d b s y s t e m w a sd e s i g nf o rs t u d yt h ei s s u e s ,x r d bs y s t e mi s ax m l s t o r a g ea n dq u e r ys y s t e ma n dr e l a t i o nd a t a b a s ea s i t s p h y s i c a l s t o r e s t t l e t u r e t h ef e a t u r eo fx r d bs y s t e mi sf o l l o w : t h er e l a t i o no fx m le l e m e n ta n di t s s o ni sk e e p e db yr e l a t i o n d i e t i o n a r y ,a st h es a m e t i m et h er e l a t i o n - d i c t i o n a r yk e e p e dt h ee l e m e n t a t t r i b u t e s ,c o n t e n ta n d t h e i rc o r r e s p o n d i n gi nr e l a t i o nd a t a b a s e 。 i no r d e rt og e tt h em o r e e f f i c i e n c yr e l a t i o nt a b l e ,t h ed o m t r e eo f x m ls c h e m ai st r i m e df o rg e t t i n go r d e r l i n e s sx m l s c h e m a f o r e f f i c i e n c y r e w r i t e d p a t he x p r e s s i o n i n t o s q l ,t h e r e l a t i o n d i c t i o n a r yk e e p se v e r yx m l e l e m e n t sa b s o l u t ep a t h 。 1 1 1 e q u a r y s r e s u l to ft h ex r d bi st h ef o r m e rx m ld o c u m e n t s e g m e n t 。 k e y w o r d s :x m l ,x m 毛s 馥锶氛d o m t r e e ,r e l a t i o n , d i c t i o n a r y ,t r a n s l a t es c h e m a , p a t he x p r e s s i o n ,r e w r i t eq u e r y 独创性声明 本人声鞠鼹里交豹学整论文是本入在导j | | l 攒导下遴簿豹研究工作及取褥瓣疆究簸象。据 我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的 耕究威栗,也不包含为获得金l l 三貔盍堂藏其谴教育机构的学位或落书而使翔过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文季# 者签字:签字西籀;馨月 墨 学位论文版权使用授权书 本学位论文作者完全了解盒目l 玉些盔堂有关保瞬、使用学位论文的规定,帮权保留 并翔国家有关帮门袋机构送交论文的簸印件和磁盘,允诲论文被凌阂或借阕。本入授权垒 g 受王些盔堂可以将学位论文的全部戚部分论文内容编入有关数据库进行梭索,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密鸵学位论文在解密后适用零援投警) 学位论文者签名: 蟹l | | i 签名 签字嚣期;年是嚣签字基款: 年胃瑟 学位论文作者毕业殿去向 工作单檀: 通讯地址: 电港: 邮编; 致谢 首先,衷心感谢我的导师是国风副教授在我三年的研究生期间在学 习,工馋和生淫上所绘予的悉洛关陵秘指导。吴老爆渊博的躲识。敏锐 的洞察力。严谨的治学态度和创新精神使我深受教益,也是我学习的楷 模。值此走出校园走遴享会之际,谨向敬爱的导师致以最诚挚的谢意。 阍时,我还要感谢所有我2 0 多年的求学过程曾经帮助过我的同学,老 师和朋发。无以为报,只有自殴在毕业后走上社会为自己,为家人,为 函家社会更加努力地学习和工作。敲个对社会和国家有用之入。以不 搴负2 0 多年来家人的养育之酱和老师们的培养之劳。 稼者;刘建华 2 0 0 4 年5 月1 7 日 1 1 x r o b 简介 第一章引言 x r d b ( x m l r e l a t i o n d a t a b a s e ) 是一个基于关系数据库的x m l 文档存储 和查询系统。它能把x m l 文档自动存储入关系数据库中,并且用x m l 查询 语言查询。查询结果为符合查询条件的x m l 文档片段。 1 2 x m l 的诞生与变革 自从x m l 诞生的那一天起,它就引起了许多学者的关注,学者们都期望 x m l 带来w e b 的变革,并为之奋斗。 1 2 1x m l 的诞生 今天,任何人都可以在i n t e r n e t 网上轻易她发布和获取信息。w e b 己 经变成了信息发布、加工和处理的主要平台。由于h t m l 固有的种种缺陷, 万维网协会( w 3 c ) 1 9 9 6 年开始设计一种可扩展的标记语言,使其能够将 s g m l 的灵活性和强大功能与已经被广泛采用的h t m l 结合起来。这就是众 望所归的新一代i n t e m e t 上数据交换标准x m l 语言。1 9 9 8 年2 月x m l l 0 成为w 3 c 的推荐标准【1 2 1 1 1 9 1 。 x m l 诞生受到了各界的广泛关注,各计算机厂商竞相推出支持x m l 的 产品。工业界和商业界则忙于制定自己行业的x m l 词汇标准。 1 2 2x m l 的变革 x m l 的兴起的主要原因是x l d l 引起了诸多变革。在x m l 变革中,数据库技 术将扮演关键的角色。从数据处理的角度来说,传统的w e b 信息处理主要采用 的是信息检索( i r ) 技术。搜索引擎的主要方式是关键字搜索,关键字搜索极 不准确,搜索的结果将返回包含关键字的整个文档,网络传输量大。x m l 使得 我们可以采用数据库技术来存储、搜索、分析、加工和处理w e b 信息。具体地 说: 1 ) 使用类似于数据库的查询语言的方式来检索x m l 文档,搜索引擎的功 能将变的更加强大而准确。如:通过x m l 搜索引擎,我们可以进行诸如“搜索 魔侩低予4 0 0 懿缀癌名”匏搜索。l 邈钋,粪询续暴壤只邀嚣与查谗廷配豹 1 分 而非整个文档,大大降低了网络传输量。 2 ) 剥赐x m l 躲与平螽无关姨,使数掇售惑收集,交换,发鸯更趣容易。 3 ) 传统w e b 信息管理主要处理的是静态的w e b 页谳,而利用数据滕中的 成熟的技术可以动态更薪的w e b 页甄保证数据一致性。 4 ) 利用数据席技术可以及时、有效地分析和加工在线的x m l 数据,从中发 现鸯用的知识,辅助企业决策。 随着x m l 的兴起,随着i n t e r n e t 上的x m l 网页急刺增加。研究和设计一 个x m l 有效的存储和查询系统照褥格外紧追和重要。我们研究和设计的x r d b 系统就是这样的个系统。 1 3 ) 强也存褚查询系统磷究骝沃 国内外关予x m l 存储查询系统跑较密名豹有:s t a n d f o r d 大学的l o r e p j 1 6 【2 5 系统,m a r k g r a v e s 撮出独立于文档的关系存储【2 】复且大学的v x m l r 系 绕瓯 1 l o r e 系统 簸整福大学l o r e 系统本身怒专题爨寒警蓬拳结蓰纭羧撂黪d b m s ,疆若 x m l 的必起,加上x m l 与半结构化数据先天的相似性,很快l o r e 系统就完 全支拷对x m l 数摆茨存键,查询,更鼗,素g l ,重槐等一系到d b m s 功楚。 l o r e 系统的数据对象模型采用o e m t 6 】【4 0 1 4 3 l ( o b j e c te x c h a n g em o d e l ) 。l o r e 系 绕叁身繁蠢查询谖吉l o r e l l 6 1 , 支持路径表达式( p a t he x p r e s s i o n ) 和索引掇s t j ( d a t a g u i d e ) 等等。但怒目前l o r e 系统查询处理效率低下,没有有效的事物处理机 制。 2 m a r k g r a v e s 系统 m a r k g r a v e s 1 8 】提出的独立于文档的关系存储模式把x m l 存储到关系表 中。独立于文档的关系存储的最蔟本思想是文档中每种缩构类型都有自己的关 系表:元索,属快和字符数据区域,还肖一个文档表和元素与它们的组成部分 f 予元素或字符数据) 之间豹父亲孩子关系表。m a r k g r a v e s 系统的缺点怒所有 内容,属性混合存储,存储结构不直观。 3 v x f t , r 系统 复旦大学的v x m l r 系统把x m l 文档存储到关系数据库中。v x m l r 系 统先把x m l 模蕊浃莉为关系模式。然骺把数爨x m l 文撞存入关系数援疼 中。查询时,先把x m l 查询语言重写为s q l 语句,最后把查询结果煎构为 x m l 文穗。v x m l r 慕蔫$ 素靛获蘩舞法,髑表錾终键表示元素戆父子关 系。v x m l r 系统豹愚隈建存馕袈太多,惫诲垂麓复杂,奎询效零羝下,奎迢 结果不是原文档的片段。 1 4 论文的工作 论文的工作是设计一个高效的x m l 存储蠢询系统一一x r d b 系统, x r d b 系统静基本构架怒:把x m l 模式映射为关系模式。然恁把数据x m l 文档存入关系数捺库中。查询时,先把x m l 查询语言黛写为s q l 语句,最 飚把查询结果重构为x m l 文档。这与v x m l r 系统相同。 但是x r d b 对v x m l r 系统进行了麓大的改进: 1 x r d b 膈关系字典保存元素的父子关系。从一个元素必须对应个关 系表的束缚中解放出来, 2 x r d b 系统采用方法是谯映射前先以整体观点修剪x m ls c h e m a 的 d o m 祷。使x m l 结 驽变得熬齐,这样映鸯| 可以产生较好酌表结构;蔼 v x m l r 的x m l 模式映射为关系模式时采用的是一种局部的结构对应的方 式。它愚叛x m l 结构为牵心静沃射方式。这静浚射方式产圭大藿只有两嗣 的关系表。 3 。焱诲重鼍瓣,x r d b 锿羧翡是糁赘秘浚瓣薅整簌关系字魏中夔镣惠: 而v x m l r 依赖的是d t d 图和关系表名称。 4 套询结鬃霪掏x r d b 采攥为每令袭生成一令d o m 撼,出壅询结震麴簧 脊d o m 树合并为一个d o m 树。最后由该d o m 树擞成查询结果x m l 文 翘: 1 。5 论文酶组织 第一肇弓l 言键单介绍了论文靛内容,x r d b 敕设计背景,以及国内钋的硬 究现状和x r d b 的总体设计思路。第二章x m l 及其相关技术,主要介绍一些后 磷章节里器用到的x m l 基本知识。第三露x r d 8 的存储与跌射技术,在这一章 聚我们主簧通过对比的方法选择x r d b 的存储方式和映射的方法。第四章x r d b 的查询重霹及查询重构技术,主骚介绍了几种x m l 查询谖言得出它们的本质。 然后介绍怎样把窕们转捩为s o l 语旬,接着介绍了用d o i d 重构奁询结采。第五 章x r d b 的总体设计及实现,我们在这里把x r b d 作为一个整体加予设计,画出 觚x m l 文档进入荧系数攒痒蜀查询褥虱x m l 文档静流程。 第二章x 札及其相关技术 由于x r d b 系统的处理对象是x m l 文档。我们熟悉一下x m l 及熟相关 按寒。在零章分绥x i v l l 熬骜景翔鼍廷、x i v l l 豹穗荧概念、鼓本愚憋秘一焦技术 体系。 2 1x m l 文档结构及x m l 语法 x m l 文档结构和语法是x m l i 0 规范的元语言标准。它是x m l 技术的 基础。 2 1 。1x i d l 文档结构 一个格式正规躲x m l 文档f 1 1 0 2 1 1 1 9 1 由三个部分组成( 如图2 。1 ) 。 ( 1 ) 一个可选的序言( p r o l o g ) 。 ( 2 ) 文档的圭体( b o d y ) :有个或多个元素缎成,其形式为一个可能包含 字符数据( c h a r a c t e rd a t a ) 静联次树。 ( 3 ) 可选的尾声( e p i l o g ) :其内容包括注释,处理指( p r o c e s s i n gi n s t r u c t i o n ,p i ) 稻綮鼹褥嚣面静空臼。 2 。1 2 语法穰要 1 x m l 文稿静序言维减h l : ( 1 1 一个可选的x m l 声明。 下覆翡绸子是一个x m l 黟鞠。 其中v e r s i o n = ”l 。表示文挡遵疆x m l l ,0 规范:e n c o d i n g 。,u 糕一8 ”表 示文档用u t f 8 的字符编码;s t a n d a l o n e - - - y e s ”表示所有必需的实体的 声骥都包食在文档孛。 f 2 1x m l 声明后面可能是几个注释、处理指令、空自字符。 f 3 1 一个可选的文档类型声明: 。 ( 4 1 文档类型声明后面可能是几个注释、处理指令、空白字符。 2 文档的主体 4 文档的主体由元素构成。格式正规的x m l 文档的定义形式是一个简单的 层次树,每个文档都有一个而且只有一个根节点,它被称为文档实体 ( d o c u m e n te n t i t y ) 或文档根( d o c u m e n tr o o t ) 。这个节点可能包含p i 和注释, 而且总是包含子元素树,子元素树的根称作文档元素( d o c u m e n te l e m e m l 。由 于文档根和文档元素并不是一回事,所以最好不要把文档元素看作是“根元 素”( 即使它是子元素树的根) 。 图2 - 1x m l 文档的组成部分样例 图2 - 2 文档根与文档元素区别 图2 - 3 几种不同的元素类型 元素 元素是x m l 标记的基本组成部分。它们可以包含其他的元素、字符数据 、字符引用、实体引用、p i 、注释和c d a t a 部分;这些一起被称作元素内 容( e l e m e n tc o n t e n t ) 。所有的x m l 的内容都必须包容在它的元素中。元素使 用标记( t a g ) 进行分隔,有一对尖括号( “”) 围住元素类型名( 一个字符串) 。每 个元素都必须有一个起始标记和一个结束标记分隔开,这项规则唯一的例外是 6 没蠢l 壬霹内枣熬元素靼空元素薅辫略e l e m e n t ) ,它疆霉叛使用起始标 纛,结衷 标记对,也可以使用短小精悍的混合形式即空元素标记。图2 3 列举了几种元 豢。 注意:x m l 对元豢有一种非常重臻的要求即它们必须正确的嵌套。 3 可选的尾声( e p i l o g ) 文挡的尾声一般是空的。留给以后扩展用的。 2 2 】( m l 的特性 我们从x m l 产生的背景和原因可知煳l 一开始设计时就吸收了s g m l 和 h t m l 的侥点并撵赛了s g m l 和h 朔l 的缺纛。x m l 戮萁藏好酌数据存稽格式。 可扩展性高度结构化。便于网络传递等优势将在许多领域一显身手。便予软件 开发入受翻内容创作者瓷黼页上缀织信惑。不仅能满是不断增长静霹络应霜需 求。而且还能够确保在通过网络避彳亍交互台作时,具有良好的可靠性与甄操作 链。x m l 肖热下靛特往【1 】【2 】【7 】9 】: 1 可扩展性 龛诲舞l 户定义赣静拣签静沩能。h t m l 被定义裁一套罄窿熬檬签集是 h t m l 最大的弱点。h t m l 不允许用户根据在w e b 上表达一些特殊需要去定 义专爱静标签或簇娃,遮藏穰多圪较特黥葳专门楱式豹文髂采用瑗骞款瓣l 语言是无法处理的。例如音乐承谱。化学方程式,数学公式,财务报表以及工 程瘦嗣等等。它们都毒葵专门款表达方式。测览器厂囊为了弥 标准h t m l 的不足而定义了一些自己的专用标签。但是各个厂商定义的专用标签是瓦不兼 容必然带来混乱的局蠹。嚣x m l 最重要的特性就是可扩展性,即允谗用户定 义自己的标签以及这些标签携带相关参数的属性和值。潮此运用x m l 可以满 足h t m l 无法处耀的特殊的资料表达需要。 2 缩构纯 h t m l 不支持表达数据库结构或蕊向对象的分级结构所需要的深层结 檎,x m l 至少怒结构纯豹。在结构证债惠的组成要素巾d t d ( d o c u m e n tt y p e d e f i n i t i o n 文件类型定义) 或x m ls c h e m a 是一个很重簧的组成部分。它规定 了瓷料的格式擒范并且溺这种裁范来对资辩进行解释。x m l 崮带一个x m l 语法分析器。语法分析器使用d t d 或s c h e m a 来确定一个文件是否是肖效的 裁缩构他的。结孛奄纯信意静饶煮是定诲不溺格式静资辩搿激相互交换。怒孺户 可以使用结构化x m l 文件作为一种中介体实现两种数据库之间进行灵活的转 换。 3 自描述性 x m l 熬另一个重要熬特蛙裁楚龛诲鑫撼述信怒。尽管并不要袋x m l 文静必 须是自描述的( 只要求结构化的) 。但带柯自描述信息可以增强w e b 的梭索功 能。这些搓述被称为”元资料”,它识霹激包拯毒关一个文 孛懿售患安全( 谁 可以阅读它,阅读的范围) ,文件内容,文件使用什么语宙写的,作者是谁以及 关于这个文l 牛的焚它任俘售怠。x 瓢语蠢已经创建了很多秘不露魄元资料牾式 包括r d f ( r e s e u r c ed e s c r i p t i o nf o r m a t 资源描述格式) ,c d f ( c h a n n e ld a t a f e r m a t 依息资料格式) ,p i e s ( p l a t f o r mf o ri n t e r n e tc o n t e n ts e l e c t i o n , i n t e r n e t 内容选择平台) ,w i d l ( w e bi n t e r f a c ed e f i n i t i o nl a n g u a g e ,w 曲 接口定义语言) 等游。 4 交互性 据w 3 c 的x m l 工作组的主席j o nb o s a k 称:用户需要同w e b 上的应用 交互搡 窜,以及这种通过h t m l 很难实现静交甄就是为什么x m l 需要存在 的重要的原因。x m l 支持交互悭,用户可以自园制订和设计应用x m l 的文 传格式,丽不必须在捷掰霞定豹h t m l 格式,麓得到魄h t m l 趸丰富静语法 和更多的功能。 5 滏义狴强 x m l 可以自行设计有意义的标记便于异构系统之间的数据交换和信息检 索。实袋凝器菝诗器之瓣豹痿惑变换。 6 纯文本 足乎任穗王鬟郯毒以载建嚣编李霉x m l ,使愆程序可黻受麓攀读写宅。跌 而提供了从小配鬣文件刘企业级数据仓库的可扩展性。 7 。可楱式他 可扩展样式语言x s l 可以指定如何显示数据。数据和显示分离。可以为 阉一数撰指定不翳的样式表用予不同输出。 8 很强的连接能力 x l i n k 可以定义双向逐接,多目标连接,扩疑连接和蕊个文档之闻遂接。 9 与平台纛关 x m l 对格式的定义严格,舆有层次结构而鼠与厂商无关。与平台无关: x m l 文稍可无须任何更改直接移植到其他平台上。 2 3 正筑文裆与有效文稻 一个x m l 文档豹考两层约柬:x m l l 0 鬣藏的元诺言标准,和文稻中的 x m l 模式。根据符合不同的约束把x m l 文档分为正规文档和有效文档。 2 。3 1 垂髋文整 掰骞遵守x m l 语法浚范静数器文档郡是格式歪麓匏x m l 文档。一个格 式正规的x m l 文档包含一个或多个元索,它们相互之间正确的嵌套。其中有 令元素瓣文整嚣素,宅寇含了文档孛冀健溪有翡元素。矮有数元素穆畿一令 简单的层次树,所有元素之间唯一的关系就是父予关系。总之数据对象如果满 懋下列条磐藏是掺式正娥逮文挡l l 剐: 1 语法合乎x m l 规范。 2 元素构成一个层次挝,只寄一个投节点。 3 没有对外部实体的引用,除非提供了d t d 2 3 2 有效文档 有效地文档文档不仅遵循x m l 的语法规翔,而且受到文档的诵汇表 ( 模式) 规则的约束。即有效文档不仅格式正规文档还必须遵守该文档的 d t d 或x m ls c h e m a 所定义的模式规范。 x r d b 处理的是带有x m ls c h e m a 定义模式x m l 有效文档。当x m l 没 脊模式是的正蕊文档时,爨殒麓模式抽取工其先| 由取模式。如栗x m l 文档的 模式是用d t d 定义的可以用d t d 与x m l s c h e m a 转换工具转换。 2 4 文档测x m l 岛数据库x m 乙文档 按照x m l 文件的结构可以将其分为数据型的x m l 文档和文档型的x m l 文档雕7 删下瑟麓肇进行对魄; 数据蛩豹x m l 文戡文档型戆x m l 文挡 数据型的x m l 文档由非常规文档型的x m l 文档具肖不规 则的结构,它的特点是规则则的结构,两且数据的粒度 文档结稳戆结构箨溥酝豹斑容 氇魄较大。特意篷包含了不 规则的结构,大量的原始数 据和太量的混合内容。 元素之润墨次魄较重要,矮元乘之闽豹颓序往往棼翥重 元素顺序同一层次间的顺序关系并不要f 这点很妻子理解,因为一 重要。文糨为中心的x m l 文档是给 入澜读蕤) 对于x h t m l 片断的瓴括经常包撼 不毡搭或缀多氇菇 数据型的x m l 文档通常怒为 针对对蒙祝器设诗的,也就是说主要 是方便机器进行处理主要针对豹对象是人 常用采在数据瘁之闻转递数文榻型豹x m l 文档主臻稍予 据( 服务器) s e r v e r 币i ( 客服 i主要用途端) c l i e n t 之间传递数据 i用途攀例比如关于销售订单或者是镄具体的例子如书本,t 娃子邮 售发桑鹣x m l 文档舞,广告等等。 表2 - 1 比较数据型和文档型的x m l 文档 数据型x m l 文档的数据很苏关系数据库中的数据不用考虑它们的顺序。 我们的x r d b 系统主要处理的是数据型x m l 文档,所以我们不用考虑予元素 之间的顺序关系。如果娶处理文档型的x m l 文稍我们静x r d b 瘟做适巍的修 改。主要是增加信息以保存兄弟之间的顺序关系。 2 5x m l 模式语富 x m l 模式语言l j 】就是用来定义x m l 的词汇表和文档结构的语言。x m l 豹一系剜褥性懿:可扩矮往、结稳住帮螽箍述毪簿等都要嗣x m l 模式定义语 言来体现。x r d b 把x m l 文档本身可以猎作是数据库中的数据睡,x m ls c h e m a 霹豁看成是数据痒模式。x r d b 靛爨整x m l 文搂豹s c h e m a 骧射为关系 数据库中荚系模式。然后把x m 乙文档存储到关系数据瘁的表中。所以我们必 绥熬悉x m l 模式定义溪褰。x m l 模式定义语塞蠢:x m l d a t a 、文档凌褰撼 谶( d c d ) 、面向对象的x m l 模式( s o x ) 、文档类溅定义( d t d ) 、x m l 大纲( x m l 1 0 s c h e m a ) 黪等。嚣嚣秘模式定义遥言是w 3 c 掰推荐粒标准。它们也是我们簧食 缁的。 2 5 1 文耥类型定义( d t d ) 首先,文档粪型定义( d o c u m e n t t y p e d e f m i t i o nd t d ) t 8 1 伟9 】是从s g m l 继承 过来的,是w 3 c 委员会攘荐的x m l 模式定义送言之一。直到现在d t d 还是 用得最多豹x m l 模式定义语言。而其他的作为它的代替和扩展摄出来的。 x m l l 0 提供了一神帆制文档类泌定义( d o c u m e n tt y p ed e f i n i t i o n d t d ) 给你定义自己词汇表,并将d t d 作为规范的一部分。d t d 使用正规的语法义 x m l 文档的结构;5 允许傻。d t d 描述x m l 文档的结构,我们可以将d t d 看 率是x m l 数据静模式。d t d 滋上下文无关文法的方式擒述文秽中元素辩属性 间的嵌套关系。d t d 使用几个操作符;+ ( 表示0 个或个) ,+ ( 表示1 或多 个) ,? ( 表示0 个藏1 个) 耪;秘 示选择) 采捺述元豢藕子元豢瀚静关系。d t d 疆 述中的所有值均被假定为字符串,除非由关键字a n y 定义( 此时,值类型可以 楚任意静文档片羧) 。一个元素瑶骧由多令子元豢残羁猛来定义。其中,i 0 帮 i d r e f 是两种特殊的属性类型。一个元素至多只能有一个i d 属性,而一个i d 麟蝗难檬谖了一令元素,一令元素戆l 蛰嚣控溪骧被麓一文搂中的另一个元 素的i d r e f 属性引用。i d r e f 属性没有类型。d t d 描述中没有根的概念,符 台于一个d t d 攒述熬x m l 文档的摄终点霹以为d t d 中熬任意一个元豢。下 面用d t d 描述的一个简单的例子。 ! e l e m e n t l a b o r a t o r y ( 1 a b n a m e ,m e m b e r + ) ! e l e m e n t p r o j e c t ( p r o j n a m e ,( m e m b e r p u b l i c a t i o n ) 8 ) ! e l e m e n t m e m b e r ( n a m e ,e m a i l ? ,p u b l i c a t i o n * , p r o j e c t * ) ! a 订l i s tm e m b e ri dm e m b e r l d # r e q u l r e d ! e l e m e n tn a m ef 毕p c d a t a ) ! e l e m e n tt i t l e ( 撑p c d a t a p ie l e m e n t y e a r 搿p e d a t a ! e l e m e n tl a b n a m e ( # p c d a t a ) d t d 样例定义了个实验寝的文档类型。一个l a b o r a t o r y 元素有个子 元素l a b n a m e ;0 或多个予元素m e m b e r 。一个p 瓣i c o t 有一个子元p r o n a m e : o 藏多个m e m b e r ;0 或多个p u b l i c a t i o n 予元素。m e m b e r 由一个予元素n a l t l e ; o 或一个e m a i l ;0 或多个p u b l i c a t i o n :0 戏多个p r o j e c t 予元素和m e m b e r i d 属 褴构成。这里的m e m b e r l d 属性豳关键字# r e q u i r e d 描述,袭示每m e m b e r 必须有个m e m b e r l d 属性。p u b l i c a t i o n 又由0 或多个a u t h o r ,一个t i t l e 和一个 y e a r 子元索定义。其它元素都为源子元素,被定义为文本串# p c d a t a 。关于 x m l 和d t d 规范的详细描述见w 3 c 的相关标凇( h t t p :w w w ,3 c 。o r g x m l ) 。 2 5 2x m ls c h e m a x r d b 用的x m l 模式就是x m l s c h e m a 2 2 】c 3 7 】。w 3 cx m l 模式工作组在 1 9 9 9 年1 2 隽1 7 露约定了嚣聱分关于x m l 搂式兹王终孽寨【篮嬲l 。它销震x m l 语法写成,允许使用多个命名空间,它提供强大的内容分类。而且它们是 x m l l + 0d t d 珐戆夔超集。鹅嚣言之。哭是一令舂蔫途的元数摄成就。1 9 9 9 年1 2 月1 7 日的工作草案被分成两部分:结构和数据类烈。 1 。终梅部分 处理元素和属性的描述和声明。那里提供的材料允许x m l 设计者去指定 复杂的元索结构及设定邀些元素内容数馕驰约柬。这些接述部分可以“h t t p : w 3 o r g t r x m l s c h e m a 一1 ”上找到。 我们能用d t d 定义的每一件枣在x m l 模式的结构部分得到了解释。由于 x m l 模式是由x m l 语法写成。缩构是指我们能用来定义标记的x m l 命令。 当然。这意味着:x m l 模式实际上只魑x m l 的另一个应用( 一个为了定义 x m l 文秽类豹词汇表) 。并最正憝弼蔬,拥有了一个模式可以来精述它爨己。 于是规范的结构部分是定义模式的元素和属性出现的地方。更重要的是, 元素酾内容模壅在这里褥到了接述。内容模壅鹗确的捂逑了允许瀚元素内部结 构。结构是x m l 模式的核心。 2 。编写模式 一个模式由导言不定数最的定义和声明组成。下面几部分介绍这些定义。 ( i ) 譬富 在根元素模式可找到蹲言。邋一定至少包含鹪性的三部分信息: t a r g e t n s :它是正在使用斡模式懿念囊空闻和u r i 。 v e r s i o n :用_ ;| 毫指定模式的版本。 1 2 x m l n s :失x m l 摸式烂莲提珙念名空翊。 可选的f i n a l d e f a u l t 和e x a c t d e f a u l t ,为两种后面将要常涉及的扩展提 供缺袋僮。它可能包挺转出秘转入,镪括结梭。 f 2 ) 声明 x m ls c h e m a 舱声明出元索声明,属性和属性组声明,简单类型声明等等 缎成。我们不逐一介绍。我们用一个例子来说明。下面这个例子实际上2 5 1 中的d t d 定义的模式是笛价模式。 e l e m e n t n a m e = “p u r c h a s e o r d e r 4t y p e = 2 p u r c h a s e o r d e r t y p e ”b e l e m e n tn a m e = “c o m m e n t 二。”t y p e = “s t r i n g ”b c o m p l e x t y p en a m e = “p u r c h a s e o r d e r t y p e ” e l e m e n tn a m e = “i t e m s ”t y p e = “i t e m s ”胁 e l e m e n tn a l n e = “i t e m ”m i n o c c u r s = “0 ”m a x o c c u r s = “u n b o u n d e d e l e m e n t n a l n e 一“p r o d u c t n a m e ”t y p e = “s t r i n g ”岛 p a t t e rv a l u e = “d 3 1 一【a - z 】 2 ) ”胁 e l e m e n t n a m e = “c i t y t y p e = “s t r i n g ”b 至于d t d 和x m ls c h e m a 的各自的优缺点我们放在后面的章节中比较。 2 6 解析器及其a p i x r d b 中在d o m 树修剪和数据存入关系数据库及查询重构都要用x m l 解析器。x m l 解柝其主要分为s a x 和d o m 两种。在x r d b 两种解析器都用 到了。 1 4 2 6 1s a x l 0x m l 简易a p i s a x l o ( t h es i m p l ea p if o rx m l ) 日px m l 简单编程接口 2 i 15 1 。s a x 是一 个通用的,基于事件x m l 解析的标准编程接口。事件驱动的解析器有:e x p a t , x p ,a e l f r e d ,m s x m l ,l a r k 等。在数据x m l 文档存入关系表中用到了s a x 接口。 事件驱动的解析器原理是为每类x m l 数据执行到应用程序的回调:元素 ( 及属性) ,字符数据,处理指令,符号或注释。这等于是应用程序通过回调来 处理x m l 数据x m l 解析器在解析之后并不维护元素的树结构,或者任 何数据。事件驱动的办法对系统资源的需求非常小而且是与文档的大小关系不 大。即使对于非常大的文档也是如此;正是得益于这种简单地对x m l 数据结 构的低层次的访问。x m l 应用程序在处理数据是具有相当大的灵活性。下面 我们来看x m l 事件: 1 事件 首先,有一对方法标记文档处理的开始与结束,它们是文档开始回调函数和 文档结束回调函数: s t a r t d o c u m e n t ( ) ; e n d d o c u m e n t o ; 2 素事件 与文档事件一样,有一对可调用的方法用来标记文档中每个元素的开始和 结束标签,它们是元素开始回调函数和元素结束回调函数: s t a r t e l e m e m t ( s t r i n gn a m e ,a t t r i b u t e l i s ta t t l i s t ) ; e n d e l e m e n t ( s t r i n gn a m e ) ; 其中n a r l e 是指在元素开始和结束标签中出现的名称;在开始标签里出现 的属性捆绑在一起成为a t t r i b u t e l i s t 对象。 g e t v a l u e ( s t r i n gn a m e ) ; 该方法在属性存在时以字符形式返回命名属性的值,否则返回空。 3 字符数据 x m l 文档中出现的子符数据一般通过下面的方法报告给应用程序: c h a r a c t e r s ( c h a r 】c h a r s ,i n ts t a r t ,i n tl e n ) ; 4 处理指令 解析器还报告处理指令的元素。 p r o c e s s i n g i n s t r u c t i o n ( s t r i n gn a n l e ,s t r i n gd a t a ) ; 图2 - 4s a x 基本原理 图2 4 描述了应用程序与s a x 解析器互相作用的过程。图2 , 4 中应用程序 是主程序:你编写的用来开始整个处理过程的代码。文档处理器是你编写的用 来处理文档的内容的代码。解析器是符合s a x 标准的x m l 解析器。 2 6 2w 3 cd o m 程序访问x m l 文档的另一种方法是通过文档对象模型( d o c u m e n to b j e c t m o d e l ,d o m ) w 3 cd o m 【6 】唧是一种独立于语言和平台的定义。即它定义了构 成d o m 的不同对象的定义,却没有提供特定的实现。实际上,它能够用任何 编程语言实现。利用d o m 中的对象,开发人员可以对文档进行读取,搜索, 修改,漆糖翻嬲辕等搽馋。d o m 雄文搂筹簸璇禳撵痒x m l 文攫敢内察糊缕 构提供了标准函数。 d o m 是一耱狱娃子平台,语言斡接霞,窀蕊够对鬻鳝梭静文碴避舒摄 乍。另一方面,d o m 树在文档髂够被操作之前辨需在肉存中生成所以高 i 黢能的熊拟内存支挎对于大型文档浓说楚 鬻必缀的。一垦树被生成,成髑程 序就可以通过相美黪a p i 谤闽d o m 。 当蠡馒愆d o m 瓣x 鹾毛交本避行撩俸辩,它藩先麓辑文释,浆文舞分瓣为猛 立的元豢,属性和没释等。然后,它以节点穗的形式( 在内存中) 刨x m l 文件 的表示。此后,开发人员可以通过繁点树访问文档的内容,并根搬需要修淑文 搂;事实上,d o m 攮嚣了更避参靛攮佟,它漶文当中豹每个疆器卷佟节 点元索,属憔,注释,处理措令,甚至丰句成爝性的文零。西此,对于下面 静x m l 文档钢予,d o m 实际上会将文稿表示为鬻2 ,5 l 粼嚣嚣嚣mp r o d u c t = “p l u t o n i u m ” u n i t s = “l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全科医学慢性病管理知识检测模拟试题答案及解析
- 驾驶客车考试题及答案
- 家长教师培训考试题及答案
- 2025年放射科影像学报告解读能力测验试卷答案及解析
- 农发行延安市吴起县2025秋招笔试创新题型专练及答案
- 梧州市2025广西梧州苍梧县供销合作社联合社招聘基层供销社工作人员1人笔试历年参考题库附带答案详解
- Web服务创新发展计划总结
- 办公自动化风险管控规范
- 清洁酒店餐饮厨房规范
- 医疗机构执业许可证延续申请表
- 农业现代化种植技术培训课件
- 中城汽车(山东)有限公司审计报告
- 大学博士竞赛试题及答案
- 钢结构彩钢瓦施工工艺与技术交底
- 2025版煤矿安全规程宣贯培训课件
- 梁启超家教家风课件
- 第5课 我们说方言教学设计-2025-2026学年小学地方、校本课程浙教版(2024)人·自然·社会
- (2025秋新版)青岛版科学三年级上册全册教案
- 顾客联络服务 人工与智能客户服务协同要求 编制说明
- DB31∕T 1545-2025 卫生健康数据分类分级要求
- 大学生创新创业基础(创新创业课程)完整全套教学课件
评论
0/150
提交评论