(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf_第1页
(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf_第2页
(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf_第3页
(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf_第4页
(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机软件与理论专业论文)基于xml的数据交换与数据访问技术及其应用研究.pdf.pdf 免费下载

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

文档简介

两北工业大学硕十论文 摘要 i n t e r n e t 的高速发展使得全球的数据、资源紧密的联系在一起,网络这个巨大的资源 库包含着大量不同平台、不同格式的数据,如何对这些数据进行有效的数据交换、访问及查 询等是急需解决的问题。x m l 是软什行业对这些问题提出的解决方案,随着x m l 的标准 化莉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 数据访问控制面临的一个问题。 本文就如何有效的进行基于x m l 的数据交换提出了一个支持在压缩数据上查询的 x m l 压缩方案,支持x p a t h 查询( x p a t h q u e r y f r i e n d l y ) ,采用l z w 与h u f f m a n 编码结 合的方式在元素内容和属性值的粒度上进行压缩,并将x m l 文档的结构与数据分开单独进 行压缩。论文描述了该方案的架构,设计的原则以及采用的主要技术,给出了与已有的压缩 工具的压缩效果的比较。 在基于x m l 的数据访问控制方面,本文提出了一个利用用户、用户组数据和扩展后的 x p a t h 进行访问对象描述的x m l 数据访问控制方案,对该方案的架构,访问控制的主体、 对象、授权规则和规则级别等进行了详细的介绍,并给出了应用示例。 最后,论文总结了完成的工作,并提出了方案中需要进一步研究的问题。 关键词:x m l 数据交换数据访问控制q z i p x m l g r d 西北工业大学硕士论文 a b s t r a c t d a t ar e s o n r c e sa r ec l o s e l yi n t e r c o n n e c t e dw i t ht h ep o p u l a r i t yo ft h ei n t e r n e tw e b h a sb e c o m et h e b i g g e s t i n f o r m a t i o nr e s o u r c ew h i c hc o n t a i n sd a t ao fv a r i o u sp l a t f o r m so r f o r m a t s h o wt oe f f i c i e n t l ye x c h a n g e ,a c c e s so rq u e r yt h ed a t ai so n eo ft h es e r i o u s p r o b l e m se m e r g et h e s ey e a r s x m li sr e g a r d e da st h es o l u t i o nt ot h i sp r o b l e mb yt h e s o f t w a r ei n d u s t r y a n dw i t ht h es t a n d a r d i z a t i o na n dw i d e l ya p p l c a f i o no fx n 几,m a i n v e n d o r sh a v eb e e ni n t e g r a t i n gx m li n t om a n yp r o d u c t ss u c ha sd a t a b a s e e n g i n e s , d e v e l o p m e n tt o o l s , i n t e m e tb r o w s e r s a n d o p e r a t i n gs y s t e m se t c m a n yx m l b a s e d t e c h n o l c g i e sh a s b e e ni n v e n t e da n d d e v e l o p e d x m li sas e l f d e s c r i b i n gm a r k u pl a n g u a g ew i t he m b e d d e dd o c u m e n ts t r u c t u r e w h i c hm a k e st h ex m ld o c u m e n ti sm o r ev e r b o s et h a no t h e rd o c u m e n t sc o n t a i nt h es a m e d a t a t h es i z eo ft h ex m ld o c u m e n tw i l lh a v ea n i m p a c to n t h ee f f i c i e n c ya n d s c a l a b i l i t y o ft h e a p p l i c a t i o n g e n e r a lc o m p r e s s i n gt e c h n o l o g i e s a r en o t p r o p e r i ns o l n e c i r c u m s t a n c e sf o rt h er e c e i v e r sa r ea l w a y s r e q u i r e dt od e c o m p r e s s t h ed a t a c o m p l e t e l yt o m a n u p u l a t e t h e o r i g i n a ld a t a ( q u e r y i n g ,v a l i d a t i n ge t c ) t h ee m b e d d e dd o c u m e n t s t r u c t u r eo fx m la l s om a k e si td i f f i c u l tt op e r f o r ma c c e s sc o n t o lb e c a u s et h et r a d i t i o n a l f i l el e v e la c c e s sc o n t r o ls y s t e m sc o u l dn o tf u l f i l lt h er e q u i r e m e n to fe l e m e n to ra t t r i b u t e l e v e la c c e s sc o n t r o l , i nt h ep a p e rw ef i r s tp r e s e n tas c h e m ef o rx m l b a s e dd a t ae x c h a n g ew h i c hi sa n x p a t h - q u e r y - f r i e n d l yc o m p r e s s o r f o rx m li tl e v e r a g e st h el z w a l g o r i t h ma n d h u f h r t a n e n c o d i n g ,c o m p r e s s i n gt h ex m l d a t ao ne l e m e n ta n da t t r i b u t el e v e la n d s e p a r a t i n gt h e s t r u c t u r eo ft h ed o c u m e n tf t o mt h ec o n t e n t w ed e s c r i b et h ea r c h i t e c t u r eo ft h es y s t e m , t h e d e s i g np r i n c i p l e sa n d t h e t e c h n o l o g i e su s e d ,a n dw e a l s op r e s e n tt h e c o m p r e s s r e s u l 乜 i nc o n t r a s tw i t ho t h e r c o m p r e s s o r s t h e nw ep r o p o s ea nx m ld a t aa c c e s sc o n t r o ls y s t e mw h i c hu s e se x t e n d e dx p a t h a n du s e ro ru s e r g r o u p i n f o r m a t i o nt od e f i n et h ea c c e s s o b j e c t w e d e s c r i b et h e a r c h i t e c t u r e , t h es u b j e c t , o b j e c t , a c c e s sr u l e sa n dt h ed i f f e r e n tl e v e l so ft h er u l e s a n dw e a l s oi l l u s t r a t et h ea c c e s sc o n t r o lp r o c e s sw i t ha ne x a r n p l e f i n a l l yw e c o n d u d et h et h e s i sa n d1 i s tf u t u r ew o r k k e y w o r d s :x m l ,d a t ae x c h a n g e ,a c c e s sc o n t r o l ,q z i p ,x m l g r d 西北t 业人学硕士论文 1 1 选题背景和意义 第1 章绪论 1 1 1 i n t e r n e t 的发展对数据交换与数据访问的新要求 i n t e r n e t 提供了全球范围的网络互连与通信功能,其丰富的信息资源给人们的学习雨i 生 活带来了极大的便利。w e b 已经成为最大的信息资源库。然而。电子商务、电子出版、远 程教育等基于w e b 的新兴领域的全面兴起使得传统的w e b 资源更加复杂化、多样化。同时 人们对w e b 服务功能的需求也达到更高的标准比如:用户需要对w e b 进行智能化的语义 搜索和对数据按照不同的需求进行多样化显示等个性化服务;公司和企业耍为客户刨建和 分发大量有价值的文档信息,以降低生产成本,以及对不同平台、不同格式的数据源进行有 效的数据交换和数据转化、查询等等,这些需求越来越广泛和迫切。 1 1 2 h t m l 的不足与x m l 的优势 h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ,超文本标记语言) ,以简单易学、灵活通用的 特性,使人们发布、检索、交流信息都变得非常简单。h t m l 也有其缺点:作为一种简单 的表示性语言,它只能显示内容而无法表达数据内容,缺乏对数据结构的描述,对于应用程 序理解文档内容、抽取语义信息都有诸多不便。而这点恰恰是电子商务、智能搜索引擎 等所必需的。 x m l ( e x t e n s i b l em a r k u p l a n g u a g e ,可扩展标记语言) 是由w 3 c 于1 9 9 8 年2 月发 布的一种标准。与h t m l 一样,x m l 也是s g m l 的一个简化子集,它将s g m l 的丰富功 能与h t m l 的易用性结合到w e b 的应用中。以种开放的自我描述方式定义了数据结构, 在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关系。这样所组织的数 据对于应用程序和用户都是友好的、可操作的。 x m l 的自我描述性质能够很好地表现许多复杂的数据关系,使得基于x m l 的应用程 序可以在x m l 文件中准确高效地搜索相关的数据内容,忽略其他不相关部分。x m l 还有 其他许多优点,比如它有利于不同系统之闻的信息交流,葑t 有希望成为数据和文档交换的标 准机制。这在w e b 服务等领域已经得到应用:另外,x m l 较严格的结构也有利于传统的关 系数据库对其进行支持( 即x m l e n a b l e dd a t a b a s e ) ,当然这也有利于原生x m l 数据库 f n a t i v ex m l d a t a b a s e ) 的实现, 1 1 3 基于x m l 的数据交换与数据访河面临的几个问题 x m l 文档因为其固有的描述性特性而趋向于变得冗长。文档会由于被描述的数据增多 而变得很长,而这种很大的文档会在进行数据交换时出现问题。和其他文档( 比如文本文件 ( f l a t f i l e ) 或者e l e c t r o n i c d a t a i n t e r c h a n g e ( e d i ) ) 比起来x m l 文档就显得过大。 阿北工业大学硕: 论文 这是冈为x m l 是一种元数据语言( m e t a d a t a l a n g u a g e ) ( 它包含了许多优点比如支持 解析、验证、转换等等) ,决定了x m l 文档会比另一些同类文档大很多。由于x m l 被j 泛 地作为一种数据交换的方法来使崩,被交换的文档如果过火就会降低应用程序的性能承i 可扩 展性。 有很多方法来使x m l 文档最小化。如简化内容( 通过缩写,简写等方法) ,切分x m l 文档等技术。但是,这儿种方法并没有有效的解决x i y f l 本身的冗余问题,而且会带来迸一 步的问题一如缩写的歧义、切分文档的重组等。 目前,减小x m l 文档大小的一种有效的方法就是压缩,人们已经实现了一些有效的 x m l 压缩丁具和压缩方案,如x a i l l 、m i l l a u 和w 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 文档的层次 结构进行访问,w 3 c 制定了用于在x m l 文档中定1 1 i ) = 的语言x p a t h 。 x m l 的数据访问控制中访问控制的对象是x m l 文档的元素、属性,由于x m l 的层次 结构很适合用x p a t h 定位其内容节点,所以现有的x m l 数据访问控制技术很多都采_ ;| 了 x p a t h 来描述访问对象。x m l 的数据访问控制中有很多需要研究的问题,如:如何有效的 利用用户信息以提供灵活的访问控制:怎样定义不同用户的权限:如何定义授权规则的级别 等。 对上面几个问题的研究和提出解决方法的过程构成了本论文的主要内容。 1 2 国内外研究现状 1 2 1 标准化 几个本课题相关标准的标准化情况: x m l l 0 ( 第三舨) w 3 c 推荐标准,于2 0 0 4 年2 月4 日通过,x m l l 1 ( 增加u n i c o d e4 支持) 还 处于候选建议书阶段。 x p a t h l ,0 x m lp a t hl a n g u a g e ,w 3 c 推荐标准,描述了一种用于对x m l 文档元素、属性 寻址,从x m l 文档中选择或者过滤信息的语言2 0 处于工作草案阶段。 d o m d o c u m e n t o b j e c t m o d e l ( d o m ) l e v e l l ,l e v e l2 c o r es p e c i f i c a t i o n ( 1 , 0 版) , d o m 3 目前是工作草塞,d o m 的目的是提供一神平台、语言无关的接口以供程序 或者脚本对文档内容或者结构进行修改、访问。 s a x s a x 不是w 3 c 的推荐标准,而是由h t t p :w w w s a x p r o j e c t o r g 开发、维护的 个x m l 文档解析的事实标准,目前版本是2 0 1 。符合s a x 规范的解析器顺序的 处理文档,通过在处理过稗中报告相关的事件来得到x m l 文档的信息。 d t d 与s c h e m a d t d 与s c h e m a 是用来描述x m l 结构、约束等因素的语言,用_ 丁验证x m l 文 西:i l - i :业大学硕七论文 档的有效性,均随x m l l0 推荐标准发布。 x s l t ( x s lt r a n s f o r m a t i o n ) x s l l 是一种基于x m l 的语言,瑙于描述扶x m - l 文档到任意基于文本的格式( 可 以是x m l 文档,也可以是其他类型的文档) 的转换。 1 2 2 技术与产品 本课题相关的一些技术与相应产品主要有以f 几种: x m l 查询语言 基于皿。的查询语言很多,如:x q u e r y , x q l ,) ( p a t h , x m l - q l ,y a t l 以及 x s q l 等,我们这里主要关心在数据交换、数据访问中应用广泛的x p a t h 。支持x p a t h 的产品很多,如m s x m l 3 - x ,x a l a n l 7 等,另外x m l 在数据库领域的应用也促使 很多数据库厂商对x p a t h 提供了支持。 ) i l 分析器 x m l 分析是对) m l 进行处理的基础,分析器的效率很重要。目前有商业化的产品, 如m s x m l 3 x ,i b m x m l 4 c 等分析器;开源的产品如j a m e s c l a r k 的e x p a t ,x e r c e s c + + 2 5 等分析器。由于x m l 结构较严格,分析技术都已经相当成熟和高效了。很 多x m l 产品都直接使用这些分析器,而不再重复开发自己专有的分析器了。 x m i l l x m i l l 是一个高效的x m l 压缩工具,比g z i p 压缩率提高两倍左右。采用的技术包 括:文档与数据分离;意义相近的数据集中压缩:同一个容器中的数据进行必要的 语义压缩。 x g r i n d x g r i n d 是一个支持压缩数据上进行查询的x m l 压缩工具。采用了元素内容、属性 值粒度上的h u f f m a n 编码。采州了与x m i l l 类似的技术,如:文档与数据分离; 意义相近的数据集中压缩。x g r i n d 一个重要特点就是压缩后的x m l 文档中保留了 原来x m l 文档的结构,从而能够支持x m l q l 查询。 x m l a c x m l a c 是一个专门针对x m l 文档的访问控制系统。利用x p a t h 提供了元素、属 性级别的访问控制规则描述。 x a c m l x a c m l 是o a s i s 制定的标准。提供了一种基于) 几的标准化的访问控制工具。 x a c m l 可以用来决定是否允许一个请求使用一项资源,比如它是否能使用整个文 件,多个文件,还是某个文件的一部分。 当然还有其他一些x m l 数据交换、数据访问的技术。我们会在第三章以及第四章中迸 行具体介绍。 1 3 课题研究内容与本人所作的工作 本课题研究的主要内容以及我所作的: 作有以下几个方面: 1 提出基于x m l 的数据交换与数据访问控制中的几个问题 这部分内容主要是对目前已有的应川于x m l 数据交换中的数据压缩方案以及x m l 数 据访阎控制方案进行考察了解其采用自q 相关技术以及优缺点。 3 两北i 业大学硕士论文 对丁:下面几个问题的同答构成了本论文的主要部分: 1 ) 如何在有效压缩) m l 文档的同时支持在压缩数据上的查询; 2 1 如何对x m l 的元素、属睦进行访问控制: 3 ) 如何在授权规则中利用用户信息进行灵活的访问控制。 2 提出一种支持在压缩数据上进行查由的x m l 数据压缩技术 这种压缩技术采用l z w 与h u f f m a n 编码结合的方式。x m l 文档的结构( 元素、属i 生 标记) 与数据( 元素、属性值) 分开单独压缩,文档结构中可以索引到数据。这样在压缩的 文档结构上可以进行一定的查询操作,查询只在必要时( 如执行x p a t h 函数,返同最终结 果等) 进行解压,但这里的解压只是对单个元素、属性值解压以进行必需的匹配等操作。 设计按照下面,l 个原则进行: 文档结构与数据分离; 在元素、属性级别上进行压缩: 语义相关的数据尽可能集中在一起: 充分利用已有的无损压缩以及x m l 压缩技术。 3 提出一个x m l 数据访问控制方案 这个) f l 数据访问控制方案中访问对象是x m l 文档的元素或者属性,访问控制的主 体是片j 户组( u s e r g r o u p ) ,每一个访问者( u s e r ) 通过提供帐户、口令来对x m l 文档进 行访问。系统将每个登录的访问者划归到某个u s e r g r o u p ,之后,u s e r g r o u p 根据其上配 置的规贝f l ( r u l e s ) 来对x m l 文档中的元素、属性进行标记( 允许访问、拒绝访问) ,标记完 成后,将标记为允许的元素、属性经过x s l t 转换后返回给访问者。 该方案中通过提供用户以及用户组的数据,与扩展后的x p a t h 结合可以描述复杂的授 权规则。并加入了规则级另0 以及u s e r g r o u p 的优先级,能够有效的进行x m l 文档的数据 访问控制。 4 实现上述两个方案的原型 在2 ,3 提出的方案的基础上实现了q z i p 以及x m l g r d 两个原型,分别用于x m l 数 据压缩羽i 数据访问控制。 1 4 论文组织 论文主要分为基于x m l 的数据交换和数据压缩两部分,各章内容如下: 第二章x m l 技术概述,主要介绍了论文相关的一些x m l 技术包括d t d 与s c h e m a , x p a t h ,x s l t 等并对标准的接口d o m 和s a x 傲了简单说明。 第三章基于x m l 的数据交换,具体描述了基于x m l 的数据交换面临的几个问题之 后介绍了支持在压缩数据上查询的( q u e r y - f r i e n d l v ) x m l 文档压缩工具q z i p ,并对目前 的通用压缩技术和针对x m l 的压缩技术做了简单同顾。在3 4 节中详细介绍了q z i p 压缩 的基础l z w 算法:3 5 中详细介绍了q z i p 的设计原则、实现等。 第四章x m l 的数据访问控制,首先说明了访问控制的几个基本概念,并介绍了几个已 有的x m l 数据访问控制方案。之后详细说明了一个x m l 数据访问控制系统- - x m l g r d , 介绍了其访问控制的主体、对象以及授权方式等。讨论了原型实现中的几个问题,并给出了 示例。 第五章结束语,对论文进行了总结,并提出进一步要做的工作。 西北工业大学硕士论文 第2 章x m l 技术概述 本章介绍了论文相关的几项重要的) 几技术。首先对x m l 进行了简单的说明,之后 介绍了格式良好的x m l 与有效的x m l 的概念,说明了验证x m l 文档有效性的d t d 以及 s c h e m a 技术,并对用于在x m l 文档中定位的x p a t h 以及转换x m l 文档的x s l t 技术进 行了介绍。是后介绍了x m l 的编程接口d o m 和s a x 。 2 1 x m l 简介 x m l 是可扩展标记语言( e x t e n s i b l em a r k u p l a n g u a g e ) 的缩写,它基于一种成熟的 标记语言一标准通用标记语言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 p l a n g u a g e ) ,并且是 它的子集。1 9 9 6 年w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ) 开始刨建x m l ,试图让x m l 结合s g m l 的灵活性并像h t m l 那样被广泛接收。 x m l l 0 的标准是w 3 c 在1 9 9 8 年的推荐标准中定义的,目前是第三版 ( h t l p :w w w w 3 o r g f t r 2 0 0 4 l r e c - x m l - 2 0 0 4 ( y 2 0 4 ) 。而x m l l 1 也于2 0 0 4 年二月发布, 主要是支持u n i c o d e 标准的升级以及不同平台上行结柬符的定义,详细内容可以参考 h t l p w w w w 3 o r g f r r 2 0 0 4 r e c - x m l l l - 2 0 0 4 0 2 0 4 # s e c - x m l l l 一。 w 3 c 为x m l 制定了十个设计目标: x m l 可以在i n t e r n e t 上直接使用; x m l 应该广泛的支持不同的应用: x m l 要保持和s g m l 兼容: 处理x m l 文档的程序应当容易编写; x m l 的可选特征应当保持最少; x m l 文档要清晰、易读; ) 几的设计应该快速: x m l 的设计应当正规、简洁: x m l 文档要易于创建: x m l 文档本身的简练是不重要的。 这几个设计目标使得x m l 在与s g m l 保持兼容的情况下更加简单、可扩充、语义与 表现形式分离并且与网络紧密结合。r 面讨论其中的几点: 1 可扩充性 x m l 提供了一些基本语法但没有定义确切的标记,所以标记可以由用户根据自己的 目的进行扩充。 2 内容和表现形式的分离 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 s l 样式表对x m l 数据的表现形式进行描述。 x m l 可以使崩d t d 或者s c h e m a 米对x m l 文档的有效性进行验证。 3 x m l 琅li n t e r n e t x m l 基于简单的u n i c o d e 文本格式,这就排除了一些需要考虑的有关在不同的硬件和 操作系统间进行的二进制数据格式的不同解释的问题。x m l 尽量使用已有的i n t e r n e t 协议、 软件和规范,如u r i ,h t t p 等,以充分利用已有的技术对x m l 进行操作和传输。x m l 在i n t e r n e t 上的另一个优势就是在数据搜索方面的廊用,因为x m l 标记、属性可以比h t m l 更为有效的表达语义信息,从而搜索引擎等应用可以有效的这些信息来对文档内容进行处 坤。 2 2 d t d 与s c h e m a 应用x m l 技术的一个主要目标是为了方便信息交换。很显然,只有x m l 文档的格式 或是结构得到交互各方的致认可,这个目标才有可能实现。x m ls c h e m a 和d t d ( d o c u m e n t t y p e d e f i n a t i o n ) 就是描述信息结构的模型,可以用来对x m l 文档内容的合 法性进行验证。s c h e m a 和d t d 规定了在文档中能够使用的元素和属性,以及这些对象与 文本内容的可能组合形式。作为对文档验证的标准,s c h e m a 和d t d 不仅应该能被人们理 解,对应用程序来说也应当是易于理解的。 x m l 文档可以是格式良好的( w e l l f o r m e d ) ,也可以用d t d 或者s c h e m a 来验证,符 合关联的d t d 或者s c h e m a 的x m l 文档称为有效的( v a l i d ) x m l 文档。 2 2 1 格式良好的x m l 所有符合基本x m l 规范的数据对象( 文档) 都叫做格式良好的x m l 数据( 或者称为 格式正规的x m l 数据) 。一个格式良好的x m l 文档包含了恰当的互相嵌套的一个或者多个 元素( 由开始和结束标记隔开) 。有一个元素包括了文档中所有其他元素。所有元素组成了 一棵层次树,所以元素间的惟一直接关系是父子关系,其他关系( 如兄弟关系) 可以由这种 关系推理得到。 不需要d t d 或者s c h e m a 的x m l 文档易于创建,但是不能对其内容的格式、默认值 等做进一步的规定,所以就有了验证x m l 文档的需要。 2 2 2 有效的x m l 任何x m l 数据对象,如果它是格式良好的,符合进一步的由s c h e m a 或者d t d 描述 的有效性约束,就可以被视为有效的( v a l i d ) x m l 数据。有效的x m l 文档的有效性体现 在几个方面: 文档结构的有效性; 限制元素的内容; 限制属性的类型和值,提供默认值。 断北1 二业大学硕二e 论文 2 2 ,2 1 d t d x m ld 1 d 起源于s g m l 的d t d ,使用一个正式的文法来描述x m l 文档的结构和语 法,包括文档内容的允许值、基数等。一个支持有效性验证的x m l 解析器和d t d 结合能 确保所有必要的元素利属性在文档中出现,并且文档中没有未经授权的元素祁属性,确保了 数据在被移交给应用程序之前就具有有效的结构。 d i d 通过一种非x m l 格式的形式来定义元素、属性、元素的排列方式、元素能够包 含盼内容等,具体描述可以参考w 3 cx m l 推荐标准的第3 、4 节。 但由下d t d 是源于s g m l 的,有一些固有的局限性,主要有: 非x m l 形式的语法; 这使得d i d 需要专门的解析器。从而x m l 的有效性验证解析器需要两个解析器, 一个用于x m l ,另一个用于d t d 。 只有内置数据类型; d t d 提供的数据类型只有c d a t a 、e n u m e r a t e d 、n m t o k e n 、n m t o k e n s 等十种内置( b u i l t - i n ) 数据类型。这样少的数据类型通常无法满足文档的可理解性平u 数据交换的需耍。 缺乏对名字空间的支持。 为了解决d i d 的诸多局限,w 3 c 提出了x m ls c h e m a 作为另一种x m l 文档验证方 案。 2 2 2 2 s c h e m a x m l s c h e m a 是用一套预先规定的x m l 元素和属性创建的,这些元素和属性定义了文 档的结构和内容模式。 与d i d 相比较x m l s c h e m a 最大的优势就在丁对数据类型的支持。除了更为丰富的内 置数据类型( d o u b l ed e c i m a l ,d a y t i m e 等) 外,s c h e m a 还允许用户通过扩展或者组合已 有的简单类型或者复杂类型来定义自己的数据类型。这种丰富的类型有助于减小使用x m l 标记文档和数据间的差异,例如。我们可以直接使用日期类型,而不需要应用程序做进一步 的检查。 另外,s c h e m a 提供了比d i d 更强的内容模型,可以验证混合内容( 文本和子元素混 合) 的有效性,指定元素出现的确切次数,还可以用来为元素组命名等。 在h t t p :w w w w 3 o r g x m l s c h e m a # d e v 可以找到x m ls c h e m a 的进一步信息。 2 3 x p a t h x p a t h 的主要的目是用于对x m l 文档元素或者属性寻址,从x m l 文档中选择或者过 滤信息。在支持这个主要目的的同时,它也为字符串,数字和布尔的操作提供了基本手段。 x p a t h 使用简明的、非x m l 句法以便于在u r i 和x m l 属性值以内使用。 x p a t h 在x m l 文档的抽象的、逻辑的绵构而非文档上进行操作。x p a t h 将个x m l 文档建模成为一棵节点树,有不同类型的节点,包括元素节点,属性节点和正文节点。通过 轴、节点测试和判定来在节点树上导航,另外x p a t h 通过表达式和函数提供了丰富的处理 功能。 x p a t h 的w 3 c 推荐标准是1 0 版,可以在h t t p :w w w w 3 o r g f f r x p a t h 找到进一步 阳北l :业大学硬士论文 的说明。 2 4 x s l t x s l t ( x s lt r a n s f o r r n a t i o n ) 是一种基于x m l 的语言,用丁描述从x m l 文档到任意 基于文本的格式( 可以是x m l 文档,也可以是其他类型的文档) 的转换。x s l t 假定使j 丰j 三个文档:源文档、x s l t 样式表和结果文档。源文档是一个格式良好的x m l 文档,提供 转换的输入:样式表文档是一个使用x s l t 词汇表达转换规则的x m l 文档;结果文档是通 过x s l t 样式表建立的转换应用到源文档上所产生的文本文档通过x s l t 可以有效的为同 一一份x m l 数据提供不同的视图。 x s l t 样式表是一个x m l 文档,包含一个或多个x s l t 模板。模扳是直接量结果元索 ( 1 i t e r a lr e s u l t e l e m e n t ) 和x s l t 指令的集合。x s l t 指令包含了类似传统编程语言的很多 结构,如变量、函数、条件以及循环等。 x s l t l 0 的w 3 c 推荐标准请参考h t t p :w y c w w 3 o r g t r j x s l t 。 2 5 编程:d o m 和8 a x x m l i n f o s e t ( h t t p :h w w w w 3 , o r g f f r 2 0 0 4 r e c - x m l - i n l o s e r - 2 0 0 4 0 2 0 4 ) 是x m l 文档 的抽象数据模型的定义。d o m ( d o c u m e n t o b j e c t m o d e l ) 和s a x ( s i m 口i e a p if o r x m l ) 是两种用于将i n f o r s e t 的抽象信息映射到一个对象模型上的技术, d o m 定义了一组遍历接口,用于将x m l 文档的i n f o s e t 拆分为对象或者节点的层次树, d o m 适用于那些需要将x m l 文档保留在内存中进行遍历或者需要进行查询等操作的应崩 程序。符台s a x 规范的解析器顺序的处理文档,通过在处理过程中报告相关的事件来得剑 x m l 文档的信息。 使用d o m 或者s a x 需要根据应崩的具体任务来选择,通常对于大型文档的处理、从 文档中检索一个特定的值、片断或者需要创建大文档的一个子集时采用s a x 比较合适,而 如果需要对文档内容进行修改或者需要执行某些查询就需要选择d o m 。 s a x 井不是w 3 c 的推荐标准,目前的版本是2 0 1 ,可以在h t t p :f f w w w s a x p r o j e c t :o r g l 找到关于s a x 的进一步的信息。d o m 是w 3 c 的推荐标准,进一步介绍请参考 2 6 小结 本章介绍了论文相关的一些x m l 技术。说明了x m l 的几个基本特点,介绍了格式良 好的x m l 与有效的x m l 的概念,并对d t d 以及x m ls c h e m a 做了对比。) ( p a t h 用于在 x m l 文档中进行定位,在数据交换与数据访问中的应用将在后面两章介绍。x s l t 用于将 一个格式良好的x m l 支档变换成另一种文本格式。能够灵活的表现、转换x m l 数据,我 们将在第四章介绍其在数据访问中的应用。最后在2 5 节介绍了d o m 和s a x 编程接 i 。 西北t 业火学硕士论文 第3 章基于x m l 的数据交换 本章首先描述了基于x m l 的数据交换面临的几个问题。之后介绍了支持在压缩数据上 杏向的( q u e r y f r i e n d l y ) x m l 文档压缩 具q z i p ,并对目前的通用压缩技术和针对x m l 的压缩技术做了简单回顾。在3 4 中详细介纠了q z i p 压缩的基础l z w 算法:3 5 中详细介 绍了q z i p 的设计原则、实现等。 3 1 基于x m l 的数据交换面临的问题 尽管x m l 出现之前,已经有了很多数据交换格式,但x m l 有成为数据交换标准的趋 势。x m l 的广泛应用不仅由于其与w e b 的紧密结合而且由于主流软件厂商的支持。企业 之间的数据交换是x m l 的着眼点之一。因此,各公司的定义如果不进行规范化就无法通用。 目前,以微软为主的标准化团体“b i z t a l k o r g ”和民间团体“r o s e t t a n e t ”等都希望能针对 各行业和领域制定“可以广泛利用的标志”,以减少数据交换中的不致。现在x m l 已经 在许多行业中得到应用,如保险、医疗、银行、通信等。 正如2 0 0 2 年6 月1 2 日w 3 c 在发布x m l 基准测试包时指出的:“x m l 标准非常有用, 如果应用软件不能符合这一标准,那么数据交换将变得复杂而麻烦,而一旦所有的应用软件 都达到这一标准。那么今后利用互联网、蜂窝电话以及其他无线设各进行数据交换将是件 非常方便的事情。” 但使用x m l 描述数据就要面i 临一些问题: x m l 文档是自描述的,这个特点使得x m l 具有很高的灵活性。x m l 可以描述很多种 数据,如不规则的数据、扁平类型或者嵌套类型的数据、树或者图等。但是也正是这个特点 使得x m l 文档与专有格式的文档相比较很冗长,从而不能高效的存储和交换。所以,很多 应用程序考虑到效率的问题,采用了专有格式来传输诸如w e b l o g 、定单、库存数据等。 采用通用的压缩技术可以有效的减小x m l 文档的大小,有效的利用网络带宽。但是, 通用压缩技术都不支持对压缩后的x m l 的操作,也就是说,只能通过将压缩后的文档完全 解压,才能够对x m l 文档进行操作。 支持对压缩的x m l 文档进行操作对于很多应用来说是很重要的。比如对于内存资源有 限的手持设备( 如p d a ,手机等) ,其上的x m l 文档就需要压缩存储。但是,如果只是希 望对x m l 的一部分进行操作,而需要解压赘个x m l 文档很多时候是不合适甚至是不可能 的。例如,对于一个p d a 上的x m l 格式的电子书,其中必定有大量字体、颜色等元素标 记和属性等,可以通过压缩存储。而读者通常只对正在读的一章感兴趣,这样每次阅读器都 要对压缩文档完全解压,显然是不合适的。当然拆分x m l 文档再压缩是种选择但是这 又带来了管理的代价,并且不是通用的技术。 又如,对于p d a 上的一个基丁x m l 的客户信息管理程序,使用者需要经常查询客户 的定单状态、发货日期、确认定单等信息或者连接到服务器更新数据。对于每次查询都解压 整个客户信息的x m l 文档,不仅效率低,而且随着x m l 压缩文档的增大,极端情况下甚 至不能进行解压一因为系统的内存不能容纳解压后的x m l 文档了。 对丁二一些网络应用,需要对接收到的数据进行一些操作才能进行进一步的动作。比如欧 洲生物信息学研究所( e u r o p e “b i o i n f o r m a t i c si n s t i t u t e , e b i ) 的注册用户可以向其基因数 9 两北f :业人学硕士论文 据库提交新的基因数据。这种规模比较大但义有其自己很强的规律性的数据很适合压缩后提 交。提交的数据被检查有效性( 检奇是否符合d t d 或者s c h e m a 等,不与己提交数据重复 等) 后归档进数据库。但对丁提交的数据,再解压进行检奁而解压后只是对几个标记、属 性的内容进行检查,这样大量的

温馨提示

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

评论

0/150

提交评论