已阅读5页,还剩68页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml的存储系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理t 大学硕士学位论文 摘要 随着计算机系统性能的不断提高、存储数据量急剧增加以及信息越来越复 杂,用户如何高效组织和管理信息成为信息技术的重要课题。文件系统作为操 作系统中存储和管理信息的主要构件,在面对海量的复杂的结构化与半结构化 信息时暴露出了缺陷。 另一方面,随着计算机网络和硬件的迅速发展,计算机之间的数据交换越 来越频繁,需要统一的标准来规范数据的传输和交换。在这种背景下出现了可 扩展标志性语言x m l ,它具有良好的自描述和跨平台性,因此大量的信息以 x m l 的形式出现。 为了对x m l 文档进行有效的管理,有必要将x m l 文档存储到数据库中存 储机制已成为x m l 数据管理领域研究的一个重要课题。 由于将x m l 文档映射为关系表,存储到传统的r d b m s 中,会破坏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 文档;存储策略;索引技术 武汉理工人学硕+ 学位论文 a b s t r a c t w i t ht h ec o m p u t e rs y s t e mf u n c t i o ni m p r o v i n g ,t h ea n a o u n to fs t o r i n gd a t aa r e r a s i n ga n dt h ei m f o r m a t i o na r em o r ea n dm o r ec o m p l i c a t e d ,c o n s u m e rh o wt o o r g a n i z ea n da d m i n i s t r ei n f o r m a t i o ne f f e c t l yb e c o m eai m p o r t a n ti tp r o b l e m t h e d o c u m e n ts y s t e mh a sr e v e a l e do u tad e f e c ta sam a i np a r ti no sf o rm e o m e r y i n ga n d m a n a g i n gt h ei n f o r m a t i o n ,i nf a c i n gt h eg r e a tc a p a c i t ys t r u c t u r e r i z a t i o na n dh a l f s t r u c t u r e r i z a t i o ni n f o r m a t i o n o nt h eo t h e rh a n d ,w i t ht h ed e v e l o p m e n to fc o m p u t e rn e t w o r ka n dh a r d w a r e , d a t ae x c h a n g eb e t w e e nt h ec o m p u t e rm o r ef r e q u e n t l y , t r a n s m i s s i o na n de x c h a n g e r e q u i r et h eu n i f i e ds t a n d a r d t on o r mt h ed a t a l a n g u a g eh a v i n ga p p e a r e db u t e x p a n d i n gs i g nl a n g u a g eu n d e rt h i sb a c k g r o u n d ( x m l ) ,x m l h a ss e l fd e s c r i b e sa n d s t r i d e so v e rap l a t f o r m t h e r e f o r eal a r g ea m o u n to fi n f o r m a t i o nf o r mw i t hx m l a p p e a r s i ti sn e c e s s a r yt os t o r et h e s ed o c u m e n t si n t oad a t a b a s ei no r d e rt oc a r r yo u t e f f e c t i v ea d m i n i s t r a t i o no nx m ld o c u m e n t s t o r a g es c h e m e sh a v eb e c o m ea n i m p o r t a n tr e s e a r c ht o p i ci nt h ex m l d a t am a n a g e m e n tf i e l d m a p p i n gx m l d o c u m e n t st or e l a t i o n a lt a b l e sa n ds t o r i n gt h e mi n t oat r a d i t i o n a l r d b m sw i l lb r e a kd o w nt h et r e es t r u c t u r eo fx m ld a t aa n dc a u s ead e c l i n ei n q u e r ye f f i c i e n c y t h e r e f o r es t u d yo n e k i n do fm e m o r ys y s t e mt os t o r et h ex m ld a t a w i t ho n ek i n do fn a t u r a lw a yi sar e a l i t yb u tm e a n i n g f u lt h i n g i nr e c e n ty e a r s ,t h ed a t ab a s es t o r i n gx m li n f o r m a t i o nh a sg r a d u a l l ya p p e a r e d , b u tt h ex m ld a t ab a s et e c h n o l o g yi sn o ts om a t u r e ,i ts t i l lh a sm a n yd e f e c t s b i n ga i m e da tt h e s ed e f e c t so ft h ee x i s t e dm e m o r ys y s t e m ,t h i sp a p e rp r e s e n t sa n o v e ls t o r a g es c h e m ef o rn a t i v ex m ld a t a b a s e s a n dh a v er e a l i z e dt h es i m p l e i n q u i r yf u n c t i o nh e r eo nt h eb a s i so ft h em e m o r ys c h e m e b a s e do nt h ei n d e xs t r u c t u r e ,t h i ss c h e m ed i r e c t l ys t o r e sx m ln o d e sa sr e c o r d s i n t oap a g e df i l et ob u i l du pt h ep e r s i s t e n td o c u m e n to b j e c tm o d e l ,t h u sr e t a i n i n gt h e o r i g i n a lt r e es t r u c t u r eo fx m ld a t a t h i ss c h e m em a k eu s eo fs y m b o lt a b l ea n d c o m p r e s s i o nt e c h n o l o g y , w h i c hn o to n l yr e d u c e st h es t o r a g es p a c eo v e r h e a do fx m l l l 武汉理j f 大学硕士学位论文 d o c u m e n t s ,b u ta l s oi m p l e m e n t st h ef a s ts e r i a l i z a t i o na n da c c e s so fx m l n o d e s a sag e n e r a lp u r p o s en a t i v ex m ls t o r a g es c h e m e ,t h i ss t o r a g em e t h o d s s u p p o r t st h ec r e a t i o no f v a r i o u ss e c o n d a r yi n d e x e st oi m p r o v et h ee f f i c i e n c yo fx m l q u e r yp r o c e s s i n g b yc o m p a r i n gt h es t o r a g es p a c e ,s t o r a g et i m e ,s e r i a l i z a t i o nt i m e a n dn o d ea c c e s st i m e t h ee x p e r i m e n t a lr e s u l t ss h o wt h a tt h i ss t o r a g em e t h o di sa h i g hp e r f o r m a n c es t o r a g es c h e m ef o rn a t i v ex m l d a t a b a s e s k e yw o r d s :x m ld o c u m e n t ;s t o r a g es c h e m e ;i n d e x 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的砚究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他入已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学和其它教育机构的学位和证书而使用过的材料。与我一 同工作的同志对本研究所作的任何贡献均已在论文中作了明确的说 明并表示了感谢。 签名:呈垄鱼日期: 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留交向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理王大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) :曼婚 导师( 签日期 武汉理工大学硕士学位论文 1 1 研究背景与意义 第1 章引言 当今信息的复杂性与关系型数据库理论产生的时代已经不能同日而语,信 息的结构日益复杂,随着个性化服务等需求的增长,信息的多样性和差异性都 大大增加了,而关系型理论在管理信息复杂性方面的不足日益明显。 e r 模型本质上是一个二维的模型,通过一系n - 维关系的组合来描述复 杂实体对象,每个表所代表的所有实体在建模设计时没有差异性,即使只有一 个实体拥有某种属性,也必须为其建立一个字段。因而在很多系统中,我们经 常可以看到一张表有数百个字段,而对于每条记录,大多数字段都是空的。 这种个体间的差异性不是仅仅表现在属性上,而且涉及结构和关系,则需 要为有差异的实体建立不同的表和对应关系。因而今天的许多业务系统往往需 要几千张表,甚至数万张表。数据库的结构变得十分复杂,数据库中的信息变 得难以理解。然而,今天越来越多的系统需要相互协作、共享信息。信息的可 读性、能否易于理解变得日益重要。关系型数据库在此方面存在较大不足,表 中的数据不能自我描述,表与表之间的关系在数据中不能直接清晰地体现。从 而使很多系统即使开放表结构,其他应用依然难以理解数据的关系和含义。 随着i t 系统进入社会生活的各个方面,信息不仅日益复杂,而且其需求内 容和结构随着时间的推移也在不断地产生变化现实世界要求信息技术具有越 来越高的灵活性和适应性关系型数据理论所采用的是一种固定的建模方式,任 何关系和属性一旦定义,就是固定的,难以随着需求的变化进行灵活的调整。 以上信息的复杂、信息难以理解、信息越来越灵活与关系数据的固定的矛 盾等问题随着x m l 的出现得到了解决。 x m l 作为一种数据格式在上世纪9 0 年代中期出现,一开始其主要目的是 应用于系统间数据的交换。为便于数据交换,其设计包含了几个主要的特点, 首先是采用自描述的标签式数据描述方式,数据本身描述自己的含义,从而使 数据的可读性大大提高,十分易于人或程序理解。 另外,x m l 采用层次型( 8 3 型) 的方式组织数据,通过层次关系体现出数 据与数据之间的关系。层次模型能够比较清晰地描述复杂对象,并易于扩展。 武汉理工大学硕士学位论文 经过近l o 年的发展,x m l 已经成为数据交换的事实标准,国际上形成了很多 行业性的x m l 技术标准,对信息技术产生了很大的影响。 由于大量x m l 文档的出现,为了进行有效的管理,有必要将x m l 文档存 储到数据库中,存储方案已成为x m l 数据管理领域研究的一个重要课题。 由于将x m l 文档映射为关系表,存储到传统的r d b m s 中,会破坏x m l 数据的树形结构,造成查询效率的下降,所以研究一种以一种自然的方式来存 放x m l 数据的存储系统是一项有着十分重要意义的研究课题。 1 2 国内外研究现状 了解国内外研究现状,既能帮助深入了解基本概念,了解研究发展趋势, 更有助于确定自己的研究方向或研究范围。 1 2 1 国内n x d 研究发展概况 o r i e n t x o r i e n t x t l 】【2 】【3 】【4 胴是中国人民大学最近几年开发的一个纯x m l 数据库管理 系统,是国内第一个n a t i v ex m l 数据库系统,在国内x m l 数据库研究与开发 一直处于领先地位,并在国际上有一定的影响力。 物理存储 o r i e n t x 存储系统建立在操作系统的文件系统上,申请若干定长的文件( 如 8 m b ) ,这些文件属于特定的数据集,数据集用s e t l d 来标志;在文件上划分 逻辑物理块,物理块定长,是操作系统物理块的整数倍( 如8 k b ) ,物理块用 l p n o 来标志;给定一对( s e t l d ,l p n o ) 就能够马上找到对应文件相应的偏移 量。 存储管理以记录为单位,不同的存储粒度记录的物理含义是不同的,可能 是一棵子树,也可能是一个节点。虽然o r i e n t x 采用了d e b ( 基于元素的深度 优先方法) ,c e b ( 基于元素的同类聚集方法) ,d s b ( 基于子树的深度优先) 和c s b ( 基于子树的同类聚集) 四种不同的存储方法,但对上层查询提供的接 口都是一样的,这样可以提高数据的独立性。一个x m l 文档包含若干条记录, 多个满足同一个模式定义( d t d 或者x m l s c h e m a ) 的x m l 文档存放在一个 数据集罩。但模式信息对o r i e n t x 来说不是必需的,有的存储方法一定需要模 2 武汉理t 大学硕士学位论文 式信息,有的存储方法不需要模式信息。 索引管理 o r i e n t x 的s u p e x 索引利用了在实际应用中经常存在的x m l 数据的模式 信息枷d 。从d t d 出发构建索引结构,总结了符合d t d 的x m l 数据可能 出现的路径结构,其结构包括三个部分:结构图、元素映射表和索引记录。结 构图是路径索引的主体,它是从d t d 中构造出来的,描述了符合d t d 的文档 中可能出现的路径。元素映射表是为了便于找到结构图中用同名元素名标记的 节点而建立的入口索引。而索引记录是若干个元素记录的集合。 通过结合x m l 数据的编码,该索引可以支持多种查询方式,包括绝对路 径查询、父子关系和祖先一后代关系的基本结构关系、相对路径查询等,从而 能够有效地支持路径表达式的计算。x m l 数据编码的引入使得查询结果可以进 一步用于路径表达式的计算。 查询处理 o r i e n t x 将由x q u e r y 表达的查询转换为由x m l 代数运算构成的操作树, 采用基于代价估计的查询优化策略,具体的代价估计方法是基于直方图的方法。 数据更新是与数据查询相结合的,没有专门的数据更新语言。 1 2 2 国外n x d 研究发展概况 1 ) t a m i n o t a m i n o 6 】【7 】是s o t t w a r e a g 于1 9 9 9 年发布的n a t i v e x m l 服务器的第一个版 本,其中包括n a t i v e x m l 数据库。t a m i n o 可以处理面向数据的文档( 有正规 的结构,元素顺序无关紧要,不会出现混合内容) 和面向文档的文档( 几乎没 有正规的结构,元素顺序非常重要,会出现混合内容) ,也可以存储其他类型 的数据,如图像、h t m i ,文件等。t a m i n o 是一个完整的数据库管理系统,支 持事务,提供安全保证和多用户访问,可扩展性好。t a m i n o 可以运行在w i n d o w s 和u n i x 操作系统上。 x m l 存储 x m l 文档可以有模式信息,如d t d 或w 3 c 的x m ls c h e m a ,但它们对 t a m i n o 来说都不是必需的。d t d 缺乏数据类型的信息,而它们是正常索引所 必需的信息,因此d t d 作为x m l 数据库模式是不够格的。2 0 0 1 年,w 3 c 发 布了x m l s c h e m a 的推荐标准,它是一个模式定义语言,覆盖了d t d 的所有功 3 武汉理工大学硕士学位论文 能并已扩展了很多新的概念。它与d t d 的最大区别就是增加了它苦心经营的类 型系统,使得x m l s c h e m a 比较适合描述数据库模式。与关系数据库中模式与 数据是紧耦合的不一样,t a m i n o 中模式与数据是松耦合的,而且有可能模式只 描述文档的一部分。 t a m i n o 数据库由很多所谓的数据集组成,数据集仅仅是一组文档的包装器, 每个文档只能存储在一个集罩。每个集均由相关的w 3 c 的x m l s c h e m a 描述, 在模式里,d o c t y p e 是个特殊的概念,它标志了在x m l s c h e m a 中作为根元素声 明的所有元素中的一个。在集晕,每个文档都只能作为一个d o c t y p e 的成员被 存储。 文档的根元素标志了d o c t y p e ,因此,在一个集罩d o c t y p e 和根元素类型是 1 :1 的关系。如果文档存储在一个集里,而没有d o c t y p e 和文档的根元素对应, 这时就会动态地创建一个d o c t y p e 。在这种情况下,就没有相关的用户定义的 模式。万一集旱有一个相关的用户定义的模式存在,t a m i n o 就对照这个模式验 证输入文档。t a m i n o 的元数据也以x m l 文档的形式存储在系统集里的系统 d o c t y p e s 中。 索引管理 在数据库系统中,索引是绝对不可缺少的,否则就无法以满意的方式查询 大量的数据。t a m i n o 支持三种类型的索引。 ( 1 ) 标准索引是基于值的索引,用于快速查找具有特定值的元素或属性。 ( 2 ) 文本索引是进行高效文本检索的先决条件。在文本索引中,包含在元 素或属性中的单词被索引,这样可以加速对该词的搜索。 ( 3 ) 结构索引是x m l 特有的索引类型,俗称路径索引。精简的结构索引 保存了在特定d o c t y p e 的任何实例中可能出现的所有路径信息。如果没有这样 的索引,拼写错误就可能导致对一个d o c t y p e 的所有文档的顺序扫描。全结构 索引不仅记录了一个d o c t y p e 中路径的存在,而且记录了路径所出现的文档。 物理组织 t a m i n o 数据库由两部分空间组成:数据空间,包含所有的文档和对象, 以簇集的方式组织d o c t y p e s ,以便加速顺序扫描。基于文档的大小,t a m i n o 选 择了相应的压缩技术;索引空间,包含索引数据。 上述两个空间都可以分布在多个不同的外部存储上,以便t a m i n o 可以存储 t b 级的数据;t a m i n o 还可以根据需要自动扩展存储空间。对于事务同志, 4 武汉理工大学硕士学位论文 t a m i n o 有一个日志空间,它是一个固定大小的容器,可以循环保存所有必要的 日志,以便回滚事务或在系统崩溃后重做事务。 查询处理 支持x p a t h x q u e r y ,且在两个方面对x p a t h 进行了扩展。 2 ) t i m b e r t i m b e r 8 】是密歇根大学于1 9 9 9 年开始开发的一个n x d b m s ,系统基于操 作树的块( b u l k ) 代数,主要贡献在于一次一集合的查询处理能力。这个系统 参照标准r d b m s 的设计与实现,r d b m s 的很多组件都不需要改动就可以用 于n x d b m s ,如事务管理器。利用块代数可以操作树集合,代数中的每一个运 箅都以一个或多个树集合作为输入,而产生一个新的树集合作为输出。 数据存储 t i m b e r 基于非常流行的后端存储系统s h o r e 【9 】,s h o r e 负责磁盘存储器管理、 缓冲和并发控制。t i m b e r 中的节点是广义节点,将所有的属性集成为一个子节 点,将元素的文本内容单独作为一个子节点。文档树中的节点采用区域编码规 则进行前序编码,但这种编码模式的更新永远是一个问题。x m l 元素的物理存 储顺序也是影响数据访问代价的重要因素。t i m b e r 将与元素相关的子元素簇集 在一起,即按照文档的顺序( 或者是深度优先的前序遍历顺序) 簇集存储节点, 实际上就是d e b 的存储方法。 索引存储 t i m b e r 目前只实现了单节点索引,索引可以在属性值上或者元素内容上( 当 元素内容可以识别为一个数时) 构造。当然,当元素内容为大文本时,也可以 构造基于关键字的倒排索引,还可以在标记名上建立索引( 到相应元素的映射) 。 所有的索引都采用b 树结构。在r d b m s 中索引返回一系列r i d ,而在n x d b m s 中索引返回一系列( d ,s :e ,l ) 节点标志。 元数据存储 在x m l 数据库管理系统中,很多时候,元数据不是很显眼。元数据信息 包括属性类型、数据集大小和索引结构等,而用于代价估计目的的直方图则是 新的元数据。模式在传统的数据库中扮演着一个非常关键的角色。但是t i m b e r 的核心设计对模式没有任何依赖性,虽然模式对数据布局、索引选择和查询优 化有非常重要的影响。 5 武汉理工大学硕十学位论文 查询处理 支持x q u e r y 查询语言,查询分析器将x q u e r y 转换成代数操作树,t i m b e r 使用的是树代数。t i m b e r 的查询优化器识别这棵树,基于一系列规则和元数据 信息,并且执行将逻辑操作映射为物理操作的任务。查询计算器执行结果的查 询计划树,像管道一样一次执行一个操作。 t i m b e r 采用基于子树的查询代数,在查询处理中吸收了流水线计算方法的 思想,利用堆栈方法处理结构连接。t i m b e r 支持基于代价估计的优化,但是其 代价估计只是基于位置直方图,在估计带谓词的表达式的代价时有局限性。 此外,还有像n a t i x 10 1 ,l o r e 1u 和嵌入式x m l 数据库管理系统b e r k e l e yd b x m l 等类似的系统。 1 3 研究内容 本文是针对x m l 数据库及相关网络应用技术,根据x m l 数据的特性,研 究一个统一数据存储算法,将x m l 文件内容进行统一编码进行存储。课题研 究内容包括: 1 ) 课题相关理论知识的研究。包括对基础x m l 相关技术的学习和对纯 x m l 相关技术的深入研究,在此基础上提出了基于x m l 的存储系统的存储架 构。 2 ) 基于索引结构将x m l 节点作为记录存储到分页数据文件中,建立起持 久化文档对象模型,保持了x m l 数据原有的树形结构和文档顺序。 3 ) 利用符号表和压缩技术,降低了x m l 文档的存储空间开销。 4 ) 实现了x m l 节点的快速串行化输出。 5 ) 在此存储框架的基础上实现简单的x p a t h x q u e r y 功能。 6 ) 使用传统的客户端程序访问服务端,客户端与服务端之间的访问协议定 义为x m l r p c 的方式,以x m l 为载体以h 1 v r p 协议进行数据包的发送和反馈, 来进行通信访问。 1 4 文章组织结构 本文共分五章,结构安排如下: 第1 章,引言主要分析了课题的研究背景及意义,国内外n x d 的研究现 6 武汉理t 大学硕士学位论文 状和课题研究的主要内容。 第2 章,本课题内容相关技术简介。x m l 相关技术有:x m l 定义、x m l 文档结构组成、x m l 解析工具、x m l 文档显示等。 第3 章,x m l 数据库及相关概念。n x d 与x e d 是当前x m l 数据库技术 的两个分支,本章分析了两者在管理x m l 数据方面的优缺点。并对纯x m l 数 据库的系统结构、特性进行分析,深入研究了纯x m l 数据库的存储结构、编 码方案和索引技术等关键技术。 第4 章,首先分析现有的x m l 数据库的缺点,针对这些缺点,给予改进, 提出新的存储策略。 第5 章,运行系统及对本存储方案在文档存储、节点访问性能和串行化性 能三个方面进行分析。 第6 章,结论与展望。总结了研究结论和成果,并指出进一步研究的问题。 7 武汉理工人学硕+ 学位论文 第2 章x m l 相关技术简介 2 1x m l 定义 国际标准化组织在1 9 8 6 年正式发布了标准通用标记语言s g m l ( s t a n d a r d g e n e r a lm a r k u pl a n g u a g e ) 1 2 】。s g m l 用于描述文档的结构与内容,实现文件 信息的交换和共享。s g m l 的主要问题是太复杂,以至于没有软件能够完全实 现其功能,而实现或依赖s g m l 不同子集的程序彼此常常是不兼容的。在互联 网络的应用背景下,很难使用s g m l 完成多平台的信息交互。 s g m l 最成功的应用是定义了超文本标记语言h t m l ( h y p e rt e x tm a r k u p l a n g u a g e ) 【1 3 】,后者对超文本的结构、内容和外观进行了标记,并在h t t p 协 议的支持下成为互联网络交换和显示超文本的主要方法。然而,h t m l 是为了 如何完全从视觉的角度表现网页而设计的,显示效果与文档结构混合的标记方 法,在其它应用程序中起不到作用。 可扩展标记语言x m l ( e x t e n s i l e m a r k u p l a n g u a g e ) 是一种文本文档的元标 记语言( m e t am a r k u pl a n g u a g e ) ,即可以用来创建某个领域自身标记的标记语 言。x m l 与s g m l 兼容,但又删减掉s g m l 许多复杂却无用的特性,让使用 者可以很容易地定义和使用属于自己的文档类型。同时,x m l 弥补了h t m l 的不足,分离数据内容与显示形式,使得在互联网络上可以传输、处理和共享 各种结构复杂的文档。 1 9 9 8 年2 月,万维网联盟( w 3 c ) 推出了x m l l 0 ,并很快获得成功。从 总体上来说,x m l 有两个最显著的特点,即自描述性和可移植性。 自描述性是指x m l 文档中的标记描述了文档的结构与语义,使我们 了解各个元素之间的关联,有利于信息数据的精确提取和集成处理。 可移植性指x m l 使真正的跨平台数据格式成为可能,x m l 允许文档 和数据从一个系统移动到另一个系统,并且接收方可以明白文档和数 据的含义,并可对其接收的内容进行验证。 2 2x m l 文档的结构组成 一段完整的x m l 称为文档。不管是用于标记文本的x m l ,或者是从服务 8 武汉理t 大学硕士学位论文 器端请求回来的信息,再或是从数据库返回的记录,所有这些都是文档。 每个x m l 文档都分为两个部分:序言( p r o l o g ) 和文档元素( 或称根元素) 。 序言出现在x m l 文档的顶部,其中包含关于该文档的一些信息。 比如x m l 文档e x a m p l e s x m l s i m p l ef u l l t e x tq u e r yo ns h a k e s p e a r ep l a y s f u l l t e x tq u e r yu s i n gn e a r 在e x a m p l e s x m l 文档中,序言包含了一个x m l 声明和一个注释。它也可 以包含其他的元素,如处理指令或是d t d ( 文档类型定义) 。 合式的x m l 文档必须有一个文档元素用以包含可能有的其他内容。x m l 文档中的所有内容都应该出现在文档元素或根元素的内部。在上面x m l 文档 示例中,文档元素就是 ,它包含了所有其他元素。 下面图2 1 显示了x m l 文档的结构。 9 武汉理工大学硕士学位论文 图2 1x m l 文档结构 x m l 文档序言 x m l 文档的序言罩面包含了关于文档本身的元信息,而不是文档的内容。 它可能包含x m l 声明、处理指令、注释以及嵌入式的d t d 或者模式。 1 ) x m l 声明 x m l 文档通常都以一个x m l 声明开始,虽然这并不是必须的: 在x m l 文档中,包含一个声明是好的做法,因为它可以告诉应用程序或 人随后的是一段x m l 内容。它还能向处理程序提供关于该文档的额外信息, 比如它的字符编码类型。 如果在x m l 中包含声明,就必须将它置于文档的第一行。任何内容都不 能放在x m l 声明前面,空格也不行。如果你不小心在声明前面放了一个空格, x m l 处理程序就将无法正确解析文档的内容,并且会产生错误消息。 l o 武汉理t 大学硕士学位论文 x m l 声明中还可以包含一些属性,这些属性提供关于版本、编码以及文档 是否独立的信息: 声明中的e n c o d i n g 属性描述的是x m l 文档的字符集。如果没有包含 e n c o d i n g 属性,则文档会被认为使用u t f 8 编码。 声明中的s t a n d a l o n e 属性的值只能为y e s 或n o 。这个值表示要正确处理当 前的文档是否还需要外部文件。 x m l 声明中的每个属性都是可选的,但是它们的顺序很重要 2 ) 处理指令 序言中还可包含处理指令( p r o c e s s i n gi n s t r u c t i o n ,p i ) ,它们将关于x m l 文档的信息传递给其他应用程序。x m l 处理程序并不处理p i ,而是将它们原封 不动地传递给应用程序。 p i 以 结束。它们通常会在序言中出现,虽然它们也可出现在 x m l 文档内的其他地方。 x m l 声明也以 ”,“”,“等字符而非标记时,c d a t a 会非常有 武汉理工大学硕士学位论文 用。例如: 以“ ”结束。注意,在c d a t a 段中不要出现结束定 界符“1 1 ”。 2 ) 实体 字符实体是表示单一字符的符号。 在x m l 文档中,可以用字符实体替代保留字符。因为所有的标签都以左尖 括号开始,所以在一个元素的文本中是无法包含这个字符的: 1 0 s u n 9 0 0 0 19 0 0 这段x m l 编码是完全符合语法格式且格式良好的x m l 文件,但 元素出现了两次,使提供的数据既不明确,也不符合逻辑,对其的操作更是毫 无意义。为避免这种情况,w 3 c 组织规定x m l 文档除了结构良好之外还必须 有效,而d t d s c h e m a t l 5 1 是目前进行合法性检查不可或缺的工具。 1 ) d t d ( 文档类型定义) d t d 实际上是“元标记 这个概念的产物,它描述了一个置标语言的语法 1 3 武汉理t 大学硕士学位论文 和词汇表,也就是定义了文件的整体结构以及文件的语法。简而言之,d t d 规 定了语法分析器为解释一个“有效”x m l 文件需要知道的所有规则的细节。这些 规则可以非常简单,仅仅列出所有有效的元素,如元素、标记、属性、实体; 也可以非常复杂,不但列出有效元素,还指出这些元素之间的内在联系。 d t d 采用非x m l 的语法规则、不支持多种多样的数据类型、扩展机制复 杂且功能不强等是其不足之处;但广泛的工具支持和应用以及技术较为成熟是 其优势所在。 2 ) x m ls c h e m a s c h e m a 和d t d 的作用异曲同工,它的明显优势是在一致性、扩展性、规 范性等方面有所提高,s c h e m a 本身也是x m l 文档,文档中存在两种限制:一 种是内容模式限制,用来规定文件中元素的顺序;另一种是数据类型限制,用 来限制数据元素的合法性。 下面给出一个s c h e m a ,对上述x m l 文件进行合法性检查: 1 ) 2 ) 3 ) 4 ) 5 ) 6 ) 7 ) 8 ) 9 ) 10 ) 11 ) 由该例可以看出,s c h e m a 本身也是一个x m l 文档,也须遵守x m l 规范, 其内容非常简洁明了:文件的第1 行为所有x m l 文档都必须有的声明;第2 行给出了名称空间声明,指明该文件将通过名称空间前缀d t 引用既定义的类型 说明。 第3 至5 行定义了几个独立的元素,其中元素 的数据类型声明为 “f i x e d 1 4 4 ,此数据类型是数值类型,同“n u m b e r ”类似,但精度上小数点前 1 4 武汉理工大学硕士学位论文 不超过1 4 位,小数点后不超过4 位。第6 至9 行定义了元素 ,声明该 元素由 、 和 - - - 个子元素组成,并指明每个 元素中 有且仅有一个 元素、至少有一个 元素、最多有一个 元素。 根据该s c h e m a ,上述x m l 文档就不能通过合法性检查,因为在一个 元素中出现了两个 元素。对一个x m l 文件是通过使用名称空间来指明 用于检查合法性的s c h e m a 。 2 3 3x m l 数据处理 x m l 文档处理基本上都是通过x m l 解析器完成的,x m l 解析器的主要 功能是检查x m l 文档是否存在结构和语法上的错误,然后剥离x m l 文档中的 标记,读出正确的内容,以交给下一步的应用程序处理。解析过程从读入一串 x m l 数据开始,经过处理,产生一棵结构树。 图2 2x m l 处理流程图 w 3 c 推荐d o m ( d o c u m e n to b j e c tm o d e l ) i ”】模型作为一组应用于x m l 的 编程接口。d o m 定义了文档的逻辑结构以及文档的访问和修改方法,被用来管 理x m l 文档所表现的信息或数据。d o m 把所有数据元素作为对象进行进一步 的处理,或者把数据移交给另外的应用软件或对象进行相关的处理。其处理流 程如图2 2 所示。由于d o m 采用树型的数据结构表现x m l 数据,这使得基于 d o m 查询的实现方法一般就是对树的遍历。由于x m l 数据的嵌套结构和模式 信息不全的特点,使得其结构非常复杂,对它的查询和更新处理也比较困难。 1 5 武汉理t 大学硕士学位论文 传统的单纯基于树的遍历的方法不能满足复杂的处理要求,这对索引、查询和 更新x m l 数据的技术提出了新的挑战。 s a x a p i ( s i m p l e a p if o r x m l ,s a x ) 1 1 6 】是处理x m l 内容的另一种方式。 s a x 是一个用于处理x m l 的事件驱动的“推”模型。s a x 解析器不象d o m 那 样建立一个整个文档的树型表示,而是在读取文档时激活一系列的事件。这些 事件被推给事件处理器,而事件处理器则提供对文档内容的访问。s a x 模型最 大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使s a x 解析 器可以解析大于系统内存的文档。另外,你无需象在d o m 中那样为所有节点 创建对象。s a x 的缺点是你必须实现处理所有到来的事件的事件处理程序。加 上单遍解析的特点,这就意味着s a x 不支持随机访问,除非该数据是由当前事 件提供的,或者该数据已经解析出来并且保存在变量中。同时,在s a x 的事件 处理中不包含元素位置关系指示,如d o m 的父子支持,这为处理树型结构的 x m l 文档带来很大的不便。 2 3 4x m l 文档显示 x m l 文档本身并不决定如何显示信息,但h t m l 却是一个理想的显示语 言。现以网上书店的例子简要说明:网上书店的店员可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老服务中心老年人社交活动策划方案
- 建筑防水工程的施工队伍管理与培训方案
- 经济适用房设计方案优化
- 合肥市人民医院放射性肠炎治疗考核
- IQC检验员考核测试题答案
- 水库水质在线监测与自动报警系统方案
- 南平市中医院小儿推拿技术专项技能考核
- 火电厂项目管理组织方案
- 无锡市中医院影像会诊能力考核
- 济南市中医院血液净化专科医师上岗资格认证标准题库
- DBJ51T 140-2020 四川省不透水土层地下室排水卸压抗浮技术标准
- 《陆地水体及其相互关系》教学设计【高中地理(新课标)选必修1】
- 交通事故责任认定书复议申请书
- 鲁迅-资料完整版本
- 上海市二级甲等综合医院评审标准(2024版)
- 国际经济与贸易专业生涯发展展示
- 2024年天津市部分区高二年级上期中--历史(含答案)
- 浙江省稽阳联谊学校2024~2025学年高三上学期11月联考历史试题
- 脑健康中心建设指南(2024年版)
- 反诈宣讲培训课件
- 安全保卫工作方案及突发事件应急预案安全保卫应急预案
评论
0/150
提交评论