(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf_第1页
(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf_第2页
(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf_第3页
(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf_第4页
(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于安全视图的xml查询及更新问题的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着越来越多的数据采用x m l 来表示和传输,x m l 正逐渐成为新的 w e b 语言,x m l 文档的安全性交得非常重要。为了防止用户根据发布的 信息来推断x m l 文档中的敏感信息,本文采用基于安全视图的访问控制 机制来防止敏感信息的泄露。同时,为了满足用户更新的需求,提出了安 全视图更新系统。 首先,本文分析了x m l 文档中的语义约束,说明了如何利用这些语 义约束来推断数据。为了防止敏感信息的泄露,提出了x m l 安全视图定 义语言s s x 来定义安全视图,利用s s x 语句序列来构建安全视图注释模 型s a s ,通过s a s 可以把用户对安全视图的x p a t h 查询转换为对数据源的 x q u e r y 查询,从而避免了视图物化的巨大代价。安全视图提供给授权用户 时,用户能对安全视图构建查询,然而,x m l 原始文档和文档中的语义约 束对用户透明,从而有效的保护了数据源中的敏感数据。 其次,为了进一步提高改写后的x q u e r y 查询的执行效率,采用g t p 来表示x q u e r y 查询,利用x m l 文档的d t d 中的语义约束来对g t p 进行 优化,从而提高查询效率。 再次,针对x m l 安全视图的更新问题,提出了x m l 安全视图更新系 统。对x q u e r y 语言进行了扩展,使其能够支持对x m l 文档的更新。安全 视图更新系统可以把用户对安全视图的更新转换为对数据源的更新。为了 保证更新的有效性,根据d t d 提出了更新规则。 最后,基于上述研究成果,通过实验结果验证了本文所提出方法的可 行性和有效性。 关键词x m l 安全;安全视图;查询重写;查询优化;安全视图更新 燕山大学工学硕士学位论文 a b s t r a c t w i t hm o r ea n dm o r ed a t aa r er e p r e s e n t e da n dt r a n s f e r db yx m l ,x m li s b e c o m i n gan e ww e bl a n g u a g e ,t h es e c u r i t yo fx m l d o c u m e n t sh a sb e c o m e v e r yi m p o r t a n t i no r d e rt op r e v e n tu s e r # o mi r t f e r r i n gs e n s i c i v ed a t ai nx m l d o c u m e n t sb yu s i n gp u b l i s h e dd a t a ,s e c u r i t yv i e ww h i c hi sb a s e do na c c e s s c o n t r o lm e c h a n i s mi su s e dt op r e v e n ts e n s k i v ed a t ad i s c l o s u r e i nt h em e a n t i m e , i no r d e rt os a t i s f yu s e r sn e e df o ru p d a t i n g ,s e c u r i t yv i e wu p d a t i n gs y s t e mi s p r o p o s e d f i r s l :l y , t h i sp a p e ra n a l y s e ss e m a t i cc o n s t r a i n t si nx m l d o c u m e n t sa n d i l l u s t r a t e sh o wt oi n f e rd a t ab yu s i n gt h e s ec o n s t r a i n t s t op r e v e n ts e n s e n t i v e d a t ad i s c l o s u r e ,i tp r o p o s e sx m ls e c u r i t yv i e wd e f i n i t i o nl a n g u a g es s x s e c u r i t ya n n o t a t e ds c h e m as a sc a nb ec o n s t r u c t e dt h r o u g hs e n t e n c e sw r i t t e n b ys s x ,i tc a nb eu s e dt ot r a n s f o r mu s e r sx p a t ho v e rs e c u r i t yv i e wi n t o x q u e r yo v e rd a t a9 d u r c e ,s ot h ec o s tb yv i e wm a t e r i a l i z a t i o n i sa v o i d e d s e c u r i t yv i e wi sp r o v i e dt oa u t h o r i z e du s e r , u s e rc a nf o r m u l a t ea n dp o s e q u e r i e so ns e c u r i t yv i e w , h o w e v e r , x m lo r i g i n a l d o c u m e n t sa n ds e m a t i c c o n s t r a i n t si nx m ld o c u m e n t sa r ei n v i s i b l et ou s e r , s os e u s e n t i v ed a t ai nd a t a s o u r c ea r ee f f i c i e n t l yp r o t e c t e d s e c o n d l y , t of u r t h e ri m p r o v et h ee f f i c i e n c yo f r e w r i t e dx q u e r y , t h i sp a p e r u s c sg t pt or e p r e s e n tx q u e r y , i tu s e ss e m a n t i cc o n s t r a i n t si nd t do fx m l d o c u m e n t st oo p t i m i z eg t p , s ot h ee f f i c i e n c yo f q u e r yi si m p r o v e d t h i r d l y , t h i sp a p e rp r o p o s e sx m ls e c u r i t yv i e wu p d a t i n gs y s t e mt os o l v e t h eu p d a t i n gp r o b l e m ,i te x p a n d sx q u e r ys ot h a tx q u e r yc a ns u p p o r tu p d a t 堍 o nx m ld o c u m e n t s s e c u r i t yv i e wu p d a t i n gs y s t e mc a nt r a n s f o r mh e r s u p d a t i n go v e rs e c u r i t yv i e wi n t ou p d a t i n go v e rd a t as o u r c e t og u a r a n t e et h e v a l i d i t yo f u p d a t i n g ,i tp r o p o s e sc h e c k i n gr u l e sb a s e d o i ld t d a b s t r a c t f i n a l l y , b a s e d o nr e s e a r c hr e s u l t sa b o v e ,t h i sp a p e ra p p r o v e st h ef e a s i b i l i t y , e f f e c t i v e n e s so f t h e s ea p p r o a c h e st h r o u g he x p e r i m e n t s k e y w o r d sx m ls e c u r i t y ;s e c u r i t yv i e w ;q u e r yr e w r i t i n g ;q u e r yo p t i m i z a t i o n ; s e c u r i t yv i e wu p d a t i n g 燕山大学硕士学位论文原创性声明 本人郑重声明:此处所提交的硕士学位论文基于安全视图的x m l 查 询及更新问题的研究,是本人在导师指导下,在燕山大学攻读硕士学位期 间独立进行研究工作所取得的成果。据本人所知,论文中除已注明部分外 不包含他人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献 的个人和集体,均已在文中以明确方式注明。本声明的法律结果将完全由 本人承担。 作者签字 缘谤 日期: d 6 年f f 月;d 日 燕山大学硕士学位论文使用授权书 基于安全视图的x m l 查询及更新问题的研究系本人在燕山大学攻 读硕士学位期间在导师指导下完成的硕士学位论文。本论文的研究成果归 燕山大学所有,本人如需发表将署名燕山大学为第一完成单位及相关人员。 本人完全了解燕山大学关于保存、使用学位论文的规定,同意学校保留并 向有关部门送交论文的复印件和电子版本,允许论文被查阅和借阅。本人 授权燕山大学,可以采用影印、缩印或其他复制手段保存论文,可以公布 论文的全部或部分内容。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密口。 ( 请在以上相应方框内打“4 ”) 作者签名:珠办涔 日期:口年- 1 月;a e l 导师魏疹1 1l 坼 吼胁啷泪 第1 章绪论 1 1 研究背景 第1 章绪论 随着w e b 的广泛应用,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 的标记越来越多,使其变为一种 极为复杂的语言,h t m l 主要用来表示内容的格式化,两不是内容的结构。 为了克服h t m l 的缺点,1 9 9 8 年2 月,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 ( e x t e n s i b l em a r k u pl a n g u a g e ) ”j 。x m l 是一种 数据描述语言,是标准通用标记语言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 ) 的一个子集,x m l 使得在w e b 上能以超文本标记语言h t m l 的使 用方式提供、接收和处理s g m l 。x m l 的设计既考虑了实现的方便性,同 时也考虑了与s g m l 和h t m l 的互操作性。 在x m l 驱动下的w e b 体系结构中,客户端将一个x m l 文档作为请求发 送给服务器。同传统的w e b 应用程序一样,它包含了指定参数,但是,与 传统的客户端不同,请求的结构会根据在运行时从服务器上得到的标准化 机制来正式指定,这一机制会保证服务器所期望的结构,并允许客户端在 传输前验证请求的正确性。服务器也能够在接收时执行有效性验证,一旦 请求到达,服务器可能继续传统w e b 应用程序的处理流程,也可能做出某 些改动。由于x m l 是层次结构的,所以它很容易就可以对非关系型的数据 源进行编码。由于大多数服务器上维护的数据是关系型的,因此人们对关 系型数据与x m l 数据匹配进行了大量研究,使x m l 成为在服务器与服务器 应用程序之间交换数据的最佳媒介。采用x m l 来进行数据交换时,编程人 员可以很快地得到或编制组件和实用程序以便操作数据。 采用x m l 驱动的w e b 体系结构具有如下的优点。第一,不再局限于基 于浏览器的客户端。x m l 本身就是数据,而且可以由程序任意地控制。同 样的数据,既可以设定其样式化以便在浏览器中显示,也可以交给一个代 燕山大学工学硕士学位论文 理进行后台处理。第二,x m l 文档无需假设数据的最终用途。如果得知客 户端需要h t m l ,由数据驱动的转换过程就会使用x m l 文档生成h t m l 页 面,而生成x m l 的底层应用程序不需要任何修改。第三,服务器端的应用 程序与客户端的耦合程度要松散的多。 随着越来越多的公司、企业等机构通过网络用x m l 来传输结构化的数 据,x m l 已发展为不同平台、不同应用系统、不同语言之间数据交换的标 准,成为新一代w e b 语言1 2 1 ,x m l 文档的安全问题也越来越重要。x m l 安 全技术比较复杂,进行数据传送时,应该通过数据的完整性( 数据在传送中 未被改动) 、可认证性( 文档确实来自所声明的发送方) 和不可否认性( 发送方 不能否认是他们发送的,也不能否认数据的内容) 来保证x m l 文档的安全。 目前在这方面的技术主要有x m l 加密【3 】、x m l 签名1 4 1 、x k m s ( x m lk e y m a n a g e m e ms p e c i f i c a t i o n ) t s 等。相对于传统的安全技术,x m l j j 【i 密和x m l 签名可以对x m l 文档部分数据进行签名和加密,并且x m l 加密和签名可对 任何数据内容进行操作,包括整篇x m l 文档、x m l 元素、x m l 元素的内 容以及外部文件。x k m s 为访问和集成公钥基础设施拟出了一种容易的机 制,使得安全性基础设施易于管理。采用x m l 进行数据发布时,对于保存 在本地或服务器端的数据,数据所有者应该保证只有经过授权的用户能够 访问指定的数据信息,同时又要防止用户根据发布的信息推断出一些数据 源中的敏感信息,目前在这方面的技术主要是各种访问控制技术。 目前x m l 数据有以下几种管理方式。 ( 1 ) 基于文件系统的存储和管理方法管理x m l 数据的最简单直接的 方法就是直接将订l 文件存储于文件系统中,基于文件系统进行x m l 数据 的管理。 ( 2 ) 基于层次数据库的存储管理技术由于x m l 本身是层次结构的,所 以可以将x m l 数据存储在层次数据库中。在层次数据库中,可以利用一种 p s e u d oq u e r y 的语法来编写查询语句对数据进行查询【6 】。 ( 3 ) 基于关系数据库的存储和管理方法关系数据库是目前最成熟的 数据库技术,因此可以把x m l 数据映射到关系数据库r d b m s ( r e l a t i o n a l d a m b a s em a n a g e m e n ts y s t e m s ) q b 的关系表p ”j 。 2 第1 章绪论 ( 4 ) 基于对象数据库的存储和管理方法对象数据库的o d m g ( o b j e c t d a t a b a s em a n a g e m e n tg r o u p ) 标准为面向对象的数据库定义了对象定义语 言、对象操纵语言以及对象查询语言。面向对象数据库用自身的方法、关 系和语义来管理分层x m l 树,同时提供了强大的导航和链接的功能。文献 f 1 1 ,1 2 采用这种方法来管理x m l 数据。 ( 5 ) n a t i v ex m l 数据库的存储和管理方法x m l 数据的性质与关系数 据和对象数据都不相同,因此有必要专门为x m l 数据设计存储模型,这样 的管理系统被称为n a t i v ex m l 数据库系统( n a t i v ex m ld a t a b a s es y s t e m ) 。 x m l 数据库中x m l 数据文档以d o m ( d o e u m e n to b j e c tm o d e l ) 树结构作为 存储模型,d o m 树中的结点是随机的存放在物理页面上。文献 1 3 】对它作 了具体的介绍。 目前大多数系统还不支持针对x m l 视图的更新操作,x m l 视图的更新 操作比关系数据库视图的更新更加复杂,如何判断对x m l 视图的更新是否 满足数据源中的各种语义约束以及所作的更新是否会对数据源造成负面影 响。如果所作的更新经过判断可以执行的话,如何将对x m l 视图的更新转 换为等价的基于元组的s q l 更新或者x m l 文档的更新。 本文采用n a t i v ex m l 数据库系统管理x m l 数据,主要研究对数据库中 的数据进行发布时,采用安全视图防止敏感信息的泄漏以及通过安全视图 对数据源进行更新。 1 2 研究现状 采用x m l 进行数据发布时,为防止敏感信息的泄漏,可以对x m l 数 据的访问进行控制。x m l 访问控制旨在为x m l 数据提供一个精细的访问 控制模型和访问控制语言来控制x m l 文档的显示方式,以下是几种典型 的访问控制方法。 x a c l l l 4 i ( x m la c c e s sc o n t r o ll a n g u a g e ) 是一种基于临时授权1 1 5 1 7 1 模 型的访问控制语言,x a c i ,相对于已经存在的访问控制策略语言。提出了 临时行为的概念,在允许或拒绝之前或之后执行某些特定操作。x a c l 技 燕山大学工学硕士学位论文 术自公布以来,一直在不断地更新。为了标准化x m l 的安全访问控制技术, o a s i s 于2 0 0 1 年4 月组织技术委员会开始开发) 队c m l 【1 8 ( e x t e n s i b l ea c c e s s c o n t r o lm a r k u pl a n g u a g e ) 技术。x a c l 和x a c m l 通过决策程序来执行访问 策略,如果用户的查询包含敏感数据就被拒绝,该方法可能会拒绝某些正 常查询。 g e r o m em i k k m 和d a ns u e i u 提出采用加密技术来保证发布的数据的安 全性【1 9 】,该方法假定发布的数据对任何人都是可见的,但是仅有授权用户 通过密钥可以读懂发布的数据。此方法可以应用到为已发布的x m l 数据1 2 0 】 提供访问控制,不能应用到通过服务器保护x m l 查询。 m m u r a t a 等人提出采用静态分析的方法来指定安全控制【2 l 】,该方法检 查用户查询结果中的每一个元素,只返回给用户授权范围内的元素。文中 提出了检查用户查询是否安全的静态优化算法,然而对于不安全的查询的 检查会耗费大量的时间。 w e n f e i 等人提出了基于安全视图的访问控制模型【2 2 1 ,该模型针对每一 个访问策略,通过算法自动生成安全视图定义v ,用户可以根据安全视图 来构建查询,从而防止了敏感信息的泄漏,同时避免了物化和保存视图口3 啪】 所需要的巨大代价,然而该模型中的方法仅限于隐藏子树或结点的值。 x i a o c h u n 等人中对采用x m l 进行发布的信息泄露问题进行了分析和 探讨 2 7 1 ,文中分析了如何利用x m l 文档的语义约束来推断文档中的没有发 布的信息,提出了如何判断发布的信息没有造成信息泄露的具体算法。 李斓等人提出了面向x m l 文档的细粒度强制访问控制模型【2 引,该模型 中让系统根据安全信息来管理用户访问对象的权限,用户无法自由地把其 拥有对象的访问权限授予其他用户,保证系统中的信息始终处于系统的控 制之下。 刘云生等人采用了一种基于角色的访问控制方法 2 9 1 ,该方法所采用的 访问控制模型x a c m ( x m la c c e s sc o n t r o lm o d e l ) 是一个3 元组,包括:角 色( r o l e ) 、用户( u s e r ) 和策略( p o l i c y ) 。基于角色的访问控制 3 0 , 3 1 1 的基 本思想是通过将权限授予角色而不是直接授予主体,主体通过角色分派来 得到客体操作权限从而实现授权,在x a c m 模型中用户和操作没有直接的 4 第1 章绪论 联系,所有操作都是通过角色执行的。 s r i r a mm o h a n 等人提出了基于安全视图访问控制方法口2 1 ,采用语言 s s x ( s e c u r i t ys p e c i f i c a t i o nl a n g u a g ef o rx m l ) 来为用户指定约束条件,通过 源文档和约束条件来生成安全注释模型,通过安全注释模型可以把用户对 x m l 安全视图的x p a t h t ”1 查询转换成针对源文档的x q u e r y t 3 4 1 查询,防止敏 感信息的泄漏。但是,文中的安全视图仅限于建立在一个x m l 文档之上, 无法适用于安全视图建立在多个文档上的情况。 采用x m l 进行数据发布时,在保证敏感信息的不泄漏的同时要能满足 用户更新的需求。 i t a t a r i n o v 等人提出了修改x m l 文档内容和结构的原语【3 5 1 ,对x q u e r y 语言进行了扩展,使其能够支持对x m l 文档的更新操作,并分别对数据源 为x m l 数据库和关系数据库中时,为x m l 视图的更新提出了具体的算法。 l w a n g 等人对r x u ( r o u n d - t r i px m lv i e wu p d a t ep r o b l e m ) x m l 视图 的更新情况进行了研究【3 6 i ,文中采用关系数据库来存储、查询和更新x m l 文档,提出t r a i n f a l l 更新系统框架,该框架是对r a i n b o w 处理器的扩展, r a i n f a l l 能够把对x m l 虚拟视图t 的x q u e r y 更新转换为对关系数据库的s q l 更新。 v a n e s s ap b r a g a n h o l o 等人对通过x m l 视图来更新关系数据库的问题 进行了研究 3 7 1 ,采用查询树来构建x m l 视图,提出了如何把x m l 视图映 射为关系数据库视图的方法。对x m l 视图的更新操作采用沁,r e i ) 的三元 组形式,将其转换为对关系数据库的更新。 l w a n g 等人提出了x m l 视图的更新系统框架i ”】,主要解决x m l 视图 模型和数据源模型之间的匹配问题,处理各种复杂多变的x m l 视图更新以 及对顺序敏感的帆视图更新的情况。 1 3 研究的理论和实际意义 随着i n t e r n e t 的发展,x m l 逐渐成为数据表示和数据交换的标准格式。 一些公司和企业等组织为了提高效率而采用i n t e r n e t 来作为交易平台,因 燕山大学工学硕士学位论文 此出现了大量的与x m l 有关的程序和信息。目前大部分的研究工作主要 集中在如何有效的存储和管理x m l 数据,然而对于x m l 数据中的敏感信 息如何采用有效的机制来进行保护也是非常重要的问题。对于给定的x m l 文档可能有许多用户需要对此文档进行查询,每个用户组对该文档有不同 的访问权限,为控制用户只能能访问授其授权范围内的信息,本文采用安 全视图定义语言为每个用户组定义个安全视图,当用户进行查询时,只 返回给用户有权访问的信息,从而保证了信息的安全性。 e f c o d d 首先提出通过视图来更新数据库的问题【3 9 】,之后人们对该问题 进行了大量的研究。视图通常用来作为一种安全机制,也可以为知道数据 库模式的用户提供一种方便访问数据库的机制,然而,通过视图对数据源 进行更新时,可能带来意想不到的负面影响。s j h e g n e r 提出了公开的视 图更新策略和封闭的视图更新策略【钟】。公开的视图更新策略适用于视图仅 是为方便用户使用时,此时用户知道数据库的模式和更新后的结果。采用 封闭的视图更新策略时,用户对于数据库的模式信息一无所知,用户所做 的更新仅限于用户视图中所反映的数据库中的那一部分。采用x m l 进行 数据发布时,可以借鉴关系数据库中视图的理论和研究成果,使其满足用 户查询和更新的需求。 1 4 本文主要研究内容 根据上面所阐述的研究背景和研究现状,本文对x m l 安全视图的查 询和更新问题进行了研究。 本文的主要研究工作如下。 ( 1 ) x m l 安全视图访问机制对于给定的数据源,采用x m l 安全视图 访问机制,把用户的查询转换为对数据源的查询,防止敏感信息的泄漏。 ( 2 ) x m l 安全视图查询优化利用数据库中x m l 文档的模式信息对改 写后的查询进行优化,进一步提高查询的执行效率。 ( 3 ) x m l 安全视图更新通过x m l 安全视图对x m l 数据库进行更新, 从而满足用户更新的需求。 6 第1 章绪论 1 5 本文组织结构 本文共分6 章,文章其他部分的结构及主要内容组织如下。 第2 章主要介绍了x m l 的基础知识。介绍了x m l 的基础知识,x m l 的文档类型定义d t d l 4 1 - - 4 3 l ( d o c u m e n tt y p ed e f i n i t i o n ) ,x p a t h 和x q u e r y 查 询语言,为以后的研究奠定基础。 第3 章主要研究x m l 安全视图的访问控制技术。分析了x m l 文档中 的语义约束以及如何利用语义约束推断数据,提出了x m l 安全视图定义 语言、安全注释模型构建算法和查询重写算法。 第4 章主要研究x m l 查询优化问题。主要研究如何利用已知的模式 信息来对改写后的查询进行优化。 第5 章主要研究x m l 安全视图的更新问题。提出了x m l 更新原语和 x m l 安全视图更新系统,更新系统能自动将用户的对安全视图的更新重写 为对数据源的更新,并且提出了更新重写算法。 第6 章实验验证。主要分析了x m l 安全视图的查询、基于d t d 的查 询优化和x m l 安全视图更新系统。 最后总结了本文的研究工作,并对今后的研究做出了展望。 7 燕山大学工学硕士学位论文 第2 章x m l 基础知识 本章主要介绍和x m l 相关的基础知识,包括x m l 简介、文档类型定 义d t d 以及用于对x m l 文档进行查询的语言x p a t h 和x q u e r y 。 2 1 x m l 简介 x m l 是标准通用标记语言s g m l 的一种变体,从s g m l 中经过精心 修剪而来的,x m l 既保持了s g m l 的功能,又减少了s o m l 的复杂性。 开发人员可以创建描述数据的标记以及文档类型定义的规则集合。 x m l 作为一种扩展标记语言,它主要有以下一些特点。 ( 1 ) 自描述性x m l 是面向内容的标记语言,在x m l 中的语义标识一 方面限定了元素的层次结构,另一方面说明了元素的含义。在x m l 文档 中由标记就可以知道内容的含义,这使得标记更有意义。 ( 2 ) 独立性由于x m l 是自描述的,所以x m l 可以脱离具体应用来 描述保存在异构环境中的各种数据,其他应用系统能直接对这些自描述的 x m l 文件中的数据进行操作。由于x m l 的语义与数据独立性,它也成为 跨平台数据交换和操作的标准模式。 ( 3 ) 结构性x m l 的文件结构可以嵌套到任意程度,能用来表示面向 对象的等级层次。 ( 4 ) 可扩展性通过x m l 文件中命名空间的声明,x m l 可以通过互联 网被其他组织或个人使用,这样可以使用一种统一的数据查询和操作模式, 而不必关心数据所在的具体系统和应用环境。另一方面,x m l 可以在不破 坏现有结构和系统的情况下增加新的数据字段,利用x m l 对所有数据建 模,而不需要更改现有的对象。 ( 5 ) 显示的多样性x m l 把数据的显示格式与数据的表示分离。在 x m l 中,可以用格式文件x s l 来定义x m l 数据的显示格式,分离数据 3 第2 章x m l 基础知识 的表示和内容。这种分离可以实现不同数据源数据的无缝连接。各种数据 可以在中间件上转换成x m l 格式,使得数据可以很容易地进行在线交易 和传输。 ( 6 ) 灵活性x m l 提供了一种结构化的数据表现方式,从而使用户界 面与结构化数据相分离。这样用户既可以只关心数据的逻辑结构,也可以 通过样式表来格式化数据的表现,甚至可以定义自己的个人样式表来显示 各种不同的x m l 数据。 ( 7 ) 丰富的链接定义对应于h t m l 单一的单向单通道链接,x m l 提 供了各种不同的链接,如对多、多对一和双向链接。 2 2d 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 存储。 表2 1 显示了与d t d 中的四种标记声明相关的关键字及其含义。 表2 - 1d t d 中的关键字及其含义 t a b l e2 - ik e y w o r d si nd t da n d t h e rm e a n i n g s d 1 1 ) 关键字含义 e l e 匝n t x m l 元素类型声明 a t t l i s t 元素类型可设置的属性及属性的允许值声明 e n l l t y 可重用的内容声明 n o t 棚o n 不需要解析的外部内容的格式声明 2 2 1d t d 中的元素声明 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 元素可以是纯文本,也可以包含若 9 燕山大学工学硕士学位论文 干个子元素。 x m l 元素声明的语法格式如下。 元素定义由元素内容模型来描述,元素内容模型是圆括号包含的若干 子元素名称、运算符和# p c d a t a 关键字的组合。运算符如表2 2 所示。 表2 2 运算符及其含义 t a b l e2 - 2o p e r a t o r sa n dt h e i rm e a n i n g s 符号含义 表示严格顺序 表示选择 表示可选,不出现或出现一次 表示零个或多个 表示一个或多个 2 2 2d t d 中的属性声明 d t d 中属性是对元素的补充和修饰,它能够将一些简单的特性与元素 相关联。通过属性,可以给元素绑定大量信息。属性在x m ld t d 中使用 御,i s t 标记声明。对于含属性的元素,至少要通过一个a t t l i s t 标记 声明其属性列表。a t t l i s t 声明由以下部分构成:a t t l i s t 关键字、属性 修饰的元素名称以及零个或多个属性定义。 l 属性声明的语法格式如下。 元素名是属性所属的元素的名字,属性类型则用来指定该属性是属于 哪种类型,缺省值说明在x m l 文件中,如果没有特别说明属性的取值, 语法分析器默认它具有的取值。a t l i s t 是一个属性的列表,它可以包含 很多属性。 属性的缺省值有三种,其中# r e q u i r e d 表示元素的每个实例必须包 含该属性,样i m p l i e d 表示元素可以选择是否包含该属性,# f i x e d 加上缺 省值表示属性的值永远固定为缺省值。 1 0 第2 章x m l 基础知识 属性的类型如表2 - 3 所示。 表2 - 3 属性的类型及其含义 t a b l e2 - 3 p y p e so f a i l r i b u t ea n dt h e i rm e a n i n g s 属性类型含义 c d a t a 字符数据( 字符串) i d 特定文档中唯一的名称 d r e f 对具有d 属性的元素的引用 m r e f s 若干以空格分隔的i d r e f e n t n y 已定义的外部实体的名称 e n t i t s 若干以空格分隔的e n t i t y 名称 n m t o k e n名称 n m l d k e n s 若干以空格分隔的n m t o k e n n a l i a t l o n 接受d t d 中声明的用于指示表示类型的名称 e n u m e r a t e d 接受用户显式定义的属性可选值中的一个值 2 2 3d t 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 m i t y ) 是由x m l 标记所组成的实体。外部常规 实体中可以含有非x m l 的内容,例如图片、声音、视频等,均被称为未 解析实体。 各种实体如表2 - 4 所示。 表2 4 实体及其用途 t a b l e2 - 4e n t i t ya n di t sp u r p o s e 实体用途 & a m p 通常用来替换字符 l t 通常用来替换字符小于号( ) & a p o $ 可用来替换字符串中的单引号( 1 q u o t 可用来替换字符串中的双引号( ”1 除了上述五个实体,所有实体都必须在文档使用前予以定义。参数实 体只能出现在d t d 中,通过参数实体能够简便地引用或修改d t d 中常用 的结构,参数实体声明和常规实体类似,但要在名字前加上百分号( ) 。参 数实体声明由以下几部分组成:e n t i t y 关键字、百分号、名称和替换值。 在d t d 中,所有参数实体必须在引用之前进行声明。引用参数实体时, 需要在实体名称之前增加百分号( ) ,在其后增加分号( ;) 。 2 3 a t h x p a t h 是w 3 c 关于查询l 文档的通用标准,) 口a t h1 0 已经在1 9 9 9 年1 1 月1 6 日发布。为了更方便更灵活地定位) 0 皿。文档,x p a t h 也提供了 针对字符串、数字和布尔值的基本函数。 x p a t h 把整个x m l 文档看成一个结点树,提供了一套定位x m l 文档 和其他文档的通用机制。x p a t h 语言定义了如何在x m l 文档中精确定位和 匹配x m l 的元素结点。x p a t h 使用的数据模型将每个x m l 文档分成7 种 不同的结点,根结点、元素结点、文本结点、属性结点、命名空间结点、 指令结点、注释结点。x p a t h 中的表达式可以返回结点集、布尔值、数字 第2 章x m l 基础知识 值、字符串等四种基本类型之一。 x p a t h 中最基本的表达式是定位路径,定位路径依次由三部分组成。 ( 1 ) 轴( a x i s ) 轴l a 4 基于上下文结点来分割文档。用来定义一个初始区 域来应用结点测试和谓词。 所有可能的轴如表2 5 所示。 表2 5 轴及其定义 1 h b l e2 5a x i sa n di t sd e f i n i t i o n 轴定义 c h i l d包含上下文结点的所有子结点 d e s c e n d a m 包含所有上下文结点的子结点、子孙结点等 p a r e n t 上下文结点的父结点 a l l c e s t o r上下文结点的父结点、祖先结点 f o l l o w i n g - s i b l i n g 上下文结点的下面同属结点 p r e c e d i n g - s i b l i n g 上下文结点的前面同属结点 f o l l o w i n g 文档顺序中跟随上下文结点的所有结点 p r e c e d i n g 文档顺穿中位于上下文结点前的所有结点 a t t r i b u t e上下文结点的属性结点 n a m e s p a c e 上下文结点的命名空问结点 s e l f上下文结点 d e s c e n d a n t o r - s e l f后代结点及自身结点的联合 a n c e s t o r - o r - s e l f祖先结点及自身结点的联合 ( 2 ) 结点测试( n o d et e s t ) 在从轴指定的结点集中按照结点名称或者结 点类型选择对应的结点,从而得到一个结点的子集,下面是几种结点测试。 指定一个元素名称,该元素名称仅和具有该名字的结点相匹配;指定 通配符,用符号+ 来匹配指定轴中所有元素;n o d e ( ) 结点测试匹配指定轴中 所有结点;t e x t ( ) 结点测试匹配指定轴中所有文本元素:c o m m e n t ( ) 结点测 试指定轴中所有注释元素;p r o c e s s i n g i n s t r u c t i o 叫) 结点测试匹配指定轴中 所有的处理指令元素,而且在括号中给出名字;该测试仅仅匹配具有指定 名字的那些处理指令元素。 燕山大学工学硕士学位论文 ( 3 ) 谓j 五 ( p r e d i c a t e ) 在结点测试选出的结点集中根据定义的谓词再进 一步筛选得到最后的结果,谓词是可选的。可以使用x p a t h 提供的许多函 数对所需要的结点进行测试。 2 4 x q u e r y 下面主要介绍x q u e r y 查询语言的来源、x q u e r y 查询语言的优点以及 x q u e r y 查询语言中基本表达式的语法。 2 4 1 x q u e r y 简介 x q u e r y 是一种从x m l 格式的文档中获取数据的查询语言,起源于 x m l 数据查询语言q u i l t ,并将x p a t h 版本2 0 作为其子集。q u i l t 有很多 非常优秀的特性,集s q l 、o d m g 、x p a t h1 0 、x q l 以及x m l q l 的诸 多特性于一身,然而随着存储在x m l 文档中的信息量的增长,对于高效 的存取和查询x m l 的信息,q u i l t 显露出了它的不足。于是全新的x q u e r y 数据查询语言诞生了。x q u e r y 规范启动于1 9 9 8 年由w 3 c 发起的查询语 言专题讨论会,到现在为止标准化工作尚未完成。x m l 查询工作组在2 0 0 1 年1 2 月2 0 日发布了x q u e r y 规范工作草案。x q u e r y 查询语言集成了众多 查询语言的优点,以下描述了其优点。 ( 1 ) 路径表示法x q u e r y 从x p a t h 和x q l 中吸取了路径表示句法,来 适应x m l 层次结构文档的需要。 ( 2 ) 树状结构模型x q u e r y 对x p a t h 中描述的数据模型进行了改进, 使得查询的输入和输出是x m l 查询数据模型的一组实例,在该模型中, 文档被模型化为一个结点树,不在同一个根下的一个文档片段或一个文档 的集合,可以模型化为一个各种类型结点的树状结构,树状结构中包括元 素结点、属性结点和文本结点。 ( 3 ) 变量捆绑x q u e r y 从x m l q l 中吸取了捆绑变量的概念,利用该 变量产生新的结构。 ( 4 ) 关键字x q u e r y 吸收了s q l 中基于关键字系列子句的思想,为再 1 4 第2 章x m l 基础知识 造数据提供了一个模式。 ( 5 ) 嵌套查询x q u e r y 借鉴o q l 由不同表达式嵌套组成的功能语言的 概念,其查询也可以有几种不同的形式,同时各种表达式可以完全嵌套。 2 4 2 x q u e r y 语法 x q u e r y 是在综合t s q l 、o q l 、x q l 以及x m l - q l 等诸多语言特点的 基础上形成的,一个典型的x q u e r y 查询模块包括三个部分。 ( 1 ) 名字空间和模式声明( n a m e s p a c ea n ds c h e m ad e c l a r a t i o n s ) 。 ( 2 ) 函数定义( f u n c t i o n sd e f m i l i o n ) 。 ( 3 ) 查询表达式( q u e r y i n ge x p r e s s i o n s ) 。 其中x q u e r y 的查询表达式主要由以下1 3 种基本类型构成:基本表达式 ( p r i m a r y

温馨提示

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

评论

0/150

提交评论