




已阅读5页,还剩86页未读, 继续免费阅读
(计算机软件与理论专业论文)基于xml的安全网关—xmlengine.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于x m l 的安全网关- x m l e n g i n e 摘要 学科名称:计算机软件与理论 论文名称:基于x k l l 的安全网关- - x m l e n g i n e 硕士研究生:王成 导师:周明天 随着i n t e r n e t 的普及,网络应用尤其是电子商务和电子政务开始成为重要的 网上活动,网络应用中的安全性,成为一个不容忽视的问题,人们需要在网络应 用中为用户提供身份鉴别和权限信息,以保证网络交互活动的安全。 w e b 服务是新兴的一种中间件技术,它以x m l 等技术为基础,为i n t e r n e t 上的用户,提供以松耦合过程调用为基础的“服务”,x m l 作为信息表示和传 递的载体,人们通过它来访问w e b 服务所描述的一组操作。x m l e n g i n e ( 基于 x m l 的安全网关) 旨在为基于x m l 信息的w e b 服务提供安全保障。 作者首先对x m l 引擎( x m l e n g i n e ) 系统所涉及到的x m l 及s o a p 规范、 应用密码学知识和w 3 c 有关x m l 安全的标准进行简要介绍,对p k i 的基本知 识进行概要说明,并在此基础上提出一个完整可行的x m l e n g i n e 模型。并在 l i n u x 平台上实现这一模型,对具体的实现步骤和细节进行详细描述。 在整个过程中作者主要从事系统中的加密和解密、签名和验证模块及配置模 块的需求分析、概要设计、详细设计、代码编码和测试工作,并与小组成员一起 参与x m l e n g i n e 整个项目的总体设计和规划,最后的总体测试和部署。目前虽然 基于x m l 的应用越来越多,但针对x m l 的安全提出的时间不长,国内外的研究工 作不少,但针对其开发的应用产品还不多见。x m l 安全相关标准庞杂,涉及多方 面的知识和技术,有广阔的研究空间,已开发的产品尚待进一步完善和扩展。 关键词x m l 安全x m l 引擎加密懈密签名验证 基于x m l 的安全网关一x m l e n g i n e a b s t r a c t m a j o r :c o m p u t e r s o f t w a r ea n dt h e o r y t h e s i s :x m l - b a s e d s e c u r i t yg a t e w a y 一- x m l e n g i n e c a n d i d a t e : w a n gc h e n g a d v i s e r :p r o f m i n g t i a nz h o u w i mt h e p o p u l a r i z a t i o no fi n t e r n e t ,n e t w o r ka p p l i c a t i o n ,e s p e c i a l l ye c o m m e r c e a n de g o v e r n m e n t ,b e g i nt ob e c o m ea ni m p o r t a n ta c t i v i t yo nt h en e t ,t h eo n l i n e s e c u r i t yb e c o m e sap r o b l e mt h a tc a n tb ei g n o r e dd a yb yd a y p e o p l en e e dt oo f f e r u s e r st h ei d e n t i t ya n da u t h o r i t yi n f o r m a t i o n si nt h en e t w o r ka p p l i c a t i o n s ,s oa st o e n s u r et h es e c u r i t yo f t h ei n t e r a c t i o n w e bs e r v i c e si sam i d d l e w a r e t e c h n o l o g y ,b a s e d o nx m la n dr e l e v a n t t e c h n o l o g y ,w h i c h c a r ls u p p o r tt h es e r v i c e s - b a s e do nl o o s e c o m p l i n g p r o c e d u r ec a l lt o u s e r so n i n t e r a c t x m l r e g a r d s a sac a r r i e ro fi n f o r m a t i o n e x p r e s s i n g & t r a n s m i s s i o n , c a l lb eu s e dt oa c c e s sas e r i e so f o p e r a t i o nd e s c r i b e db yw e bs e r v i c e s x m l e n g i n e ( x m l - b a s e ds e c u r i t yg a t e w a y ) ,i sd e s i g n e d t o g i v e t h e s e c u r i t y a n de f f e c t i v e g u a r a n t e e t ot h ew e b s e r v i c ew i 也x m l n l es t a n d a r do fx m la n ds o a pi n v o l v e di nt h ex m l e n g i n e t h ee n c r y p f i o n t h e o r ya n dt h ex m ls a f e t ys t a n d a r dr e l a t i n gt ow 3 c w i l lb ef i r s tb r i e f l yi n t r o d u c e d a n dt h e nt h ef u n d a m e n t a l so fp k lw i l lb eg e n e r a l l yt a l k e da b o u ta n dac o m p l e t ea n d f e a s i b l ex m l e n g i n em o d e l w i l lb eb r o u g h t 1 l p ,o nt h i sb a s i s f i n a l l y ,t h i sm o d e l o na l i n u xp l a t f o r mw i l lb ei m p l e m e n t e da n daf u l ld e s e r i p t i o no fe v e r ys t e pa n d d e t a i l so f t h ei m p l e m e n t a t i o nw i l lb eg i v e n i nt h ee n t i r e p r o c e s s , t h ea u t h o ri sp r i m a r i l yi n v o l v e di nt h ee n c r y p t i o n a n d d e c r y p t i o no f t h es y s t e m ,t h eu s a g ea n a l y s i so fs i g n a t u r e & v e r i f i c a t i o nm o d u l ea n d t h ec o n f i g u r a t i o nm o d u l e , p r i n c i p l ed e s i g n ,d e t a i l e dd e s i g n ,c o d i f i c a t i o na n dt e s t i n g a n dw o r k e dw i t ho t h e rg r o u pm e m b e r si nt h eo v e r a l lp l a n n i n ga n dd e s i g no ft h e x m l e n g i n ep r o j e c t ,t h ef i n a lt e s t i n ga n dd e p l o y m e n t a tp r e s e n t , t h o u g ht h e r ea r e m o r ea n dm o r ea p p l i c a t i o n so nx m lb a s i s ,t h es a f e t yi s s u eo fx m lh a so n l yb e e n r a i s e df o ras h o r tp e r i o do fl i m e d e s p i t et h a td o m e s t i ca n di n t e r n a t i o n a lr e s e a r c h e s a r en o ti ns m a l ln u m b e r s ,t h ea p p l i c a t i o np r o d u c t sp e r t a i n i n gt ox m la r en o tt o o m a n y 。t h er e l e v a n t s t a n d a r dr e g a r d i n gx m ls a f e t yi sv e r yc o m p l e x ,i n v o l v i n g i i 基于x m l 的安全网关一- x m i e n g i n e m u l t i f a c e tk n o w l e d g ea n d t e c h n o l o g y t h e r e f o r e ,t h e r ei sa l o to fm o n af o rr e s e a r c h t h e d e v e l o p m e n t o fr e l e v a n t p r o d u c t sr e q u i r e s f u n i l e l i m p r o v e m e n t s a n d e n h a n c e m e n t k e y w o r d sx m l s e c u r i t y x m l e n g i n ee n c r y p t d e c r y p ts i g n a t u r e v e r i f y 1 1 1 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 亟塑葺 日期:如。f 年厂月f 妯 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:动丑 导师签 日期: 基于x m l 的安全网关- x m i e n g i n e 基于x m l 的安全网关- x m l e n g in e 第一章引言 1 _ 1 课题背景 随着i n t e m e t 的普及和应用,利用网络进行通信已经成为比较成熟的技术, 与此同时在数据传输过程中保证信息的安全又是一个重要的课题。信息安全即在 伴随着这一过程中建立并不断发展着的。在我国周朝,就已经开始使用简单的密 码技术来传递信息,比如烽火和狼烟。古代流行的藏头诗,就是典型的加密传输 技术。在几千年人类的进步中,信息的作用越来越大,对信息的保护措施也因之 显得日益重要。信息安全是一个广泛和抽象的概念。长期以来,人们把与计算机 有关的信息系统上的安全笼统的称为信息安全。但是,信息安全与信息系统安全 是有概念上的区别的。一般来说,当人们谈及信息内容安全、计算机通信安全、 计算机网络安全和因特网接入安全等问题时,都会用信息安全来说明其中的部分 问题。但信息安全并不代表、也不说明任何具体的个体或系统与安全有关的问题, 因此信息安全更多的是一种概念性的东西。信息安全的措施涵盖很广,从信息本 身的加密,信息载体的加密,物理防范和隔绝,对接触信息的人和媒介的管 制,等等,都属于广义的信息安全范畴。 信息系统安全是确保信息系统结构安全,与信息系统相关的元素安全,以及 与此相关的各种技术、安全服务和安全管理的综合。因此信息系统安全更具有体 系性、可设计性、可实现性和可操作性。这里将信息系统的概念限制于基于开放 系统互连和计算机网络的复杂系统,以此为基础开展信息系统安全的研究。 随着电子商务和电子政务的迅速发展,基于网络的w e b 服务( w e bs e r v i c e ) 也正在成为现实,并逐渐流行开来。不管是对未来的虚拟社会来说,还是对电子 商务和电子政务来说,一个可信任的基础都是必要和关键的矗e 们需要一个框架, 来提供可确认的身份验证,以及可量化的权限准入,并能针对应用提出一个整体 的,对应用需求的改动尽可能少的解决方案。w e b 服务就是用标准i n t e m e t 技术 建立的、提供应用程序的一个网络访问接口,两s o a p 在w e b 服务的技术层次 基于x m l 的安全网关一- x m i e n g i n e 中起到的作用是,作为对应用共享的消息进行包装的标准协议。s o a p 规范定义 了简单的基于x m l 包装传递信息和将与平台相关的应用数据类型转化成x m l 表示的一些规则。s o a p 就是x m l ,实际。ts o a p 是x m l 规范的个应用。 x m l 是因特网以及近来w e b 服务持续增长和开发的主要支持者。但是,在 实现x m l 语言的全部能力之前,还有许多与安全性相关的工作要做。目前,加 密整个x m l 文档、测试其完整性和确认其发送方的可靠性是一个简单的过程, 但是,越来越有必要对文档的某些部分也使用这些功能,以便以任意顺序加密信 息和认证鉴别不同用户或发起方;同时与h t m l 相比,x m l 的出现也使得数字 签名的实施与安全传送能够得以实现。在与x m l 相关的安全性领域方面的开发 规范中最重要部分是x m l 加密、x m l 签名、x a c l 和s a m l 等。 1 - 2 _ 作者的主要工作 作者首先对x m l 引擎( x m l e n g i n e ) 系统所涉及到的x m l 及s o a p 规范、 应用密码学知识和w 3 c 有关x m l 安全的标准进行简要介绍,对p k i 的基本知 识进行概要说明,并在此基础上提出一个完整可行的x m l e n g i n e 模型。并在 l i n u x 平台上实现这一模型,对具体的实现步骤和细节进行详细描述。作为一 个新产品应该与具体的应用结合起来,为此我们专门设计和实现了一个网络数字 社区一一网上书店,将x m - l e n g i n e 服务器部署到网络中,对其中诸如用户信用 卡号和密码等敏感信息进行加密和签名,以充分体现x m l e n g i n e 的特点和优势。 在整个过程中作者主要从事系统中的加密和解密、签名和验证模块以及整个 系统的配置模块的需求分析、概要设计、详细设计、代码编码和测试工作,与小 组成员一起参与x m l e n g i n e 整个项目的总体设计和规划,最后的总体测试和部 署。应该来讲基于x m l 的应用越来越多,但针对x m l 的安全提出的时闻不长, 虽然国内外对其的研究已经不少,但针对其开发的应用产品还不多见。在x m l 安全的标准和些关键问题上一方面仍有。阔的研究空间,另一方面 x m l e n g i n e 作为一个大型系统,它的相关标准庞杂,涉及多方面的知识和技术, 在有了第一阶段的产品后还有进一步完善和扩展。 基于x m l 的安全网关- x m i e n g i n e 1 3 各章节安排 第一章,引言。主要介绍课题的来源和背景,作者的主要工作,文章的章节安排 等。 第二章,x m l 、s o a p 、密码学基础知识综述。首先介绍了x m l 相关的理论知 识;然后针对w e bs e r v i c e 服务介绍了w e b 服务的基本知识及其通信规范和标 准s o a p ;接下来概要描述了在开发x m l e n g i n e 过程中所使用到的密码算法和 技术,以及p k i 的基本结构和应用。 第三章,x m l 安全基础。本章在第二章的基础之上,主要是针对w 3 c 所提出的 有关x m l 加密和解密、x m l 签名和验证的规范,进行详细介绍。 第四章,x m l e n g i n e 服务器设计。首先给出x m l e g n i n e 相关的定义,然后介绍 了x m l e n g i n e 服务器的结构、应用环境和处理流程,从系统架构角度分析了 x m l e n g i n e 的应用和部署等。 第五章,x m l e n g i n e 网关的实现。在设计方案的基础上,按照分期分阶段原则, 实现了x m l e n g i n e 网关的核心功能模块,即加密、解密、签名和验证模块,并 分两个部分进行详细描述。 第六章,x m l e n g i n e 网关的配置。在用p 1 2 文件对系统进行认证后,对系统进 行加密和签名的属性配置,形成配置文件,将配置文件签名后发送到网关服务器 进行验证。 第七章,建立一个网上数字社区,用以测试x m l e n g i n e 在实际应用中的功能和 效果。本章对数字社区的构成有一定描述,并通过抓包的方式测试x m l e n g i n e 服务器的工作状况。 第八章,今后的工作。本章中作者阐述了系统存在的不足以及系统未来的发展思 路。 基于x m l 的安全网关- x m i e n g i n e 第二章x m l 、s o a p 及密码学的研究概述 h t m l 的出现无疑是i n t e m e t 技术和w e b 技术的一次突破,它第一次使人们 能够在w e b 上浏览和显示多种格式的数据,为推动i n t e r n e t 和w e b 技术的发展 发挥了巨大的作用。可以说,如果没有h t m l ,w e b 技术就不可能发展到今天。 然而,随着w e b 技术的飞速发展,i n t e m e t 上的w e b 信息越来越多,内容越来 越复杂,数据格式也越来越多,传统的h t m l 的有限的标记功能已经无法满足 表达日益丰富的数据形式的需要。在这种背景下,x m l 技术应运而生。 2 1x m l 的基本概念 2 1 1 什么是x i i x m l 是e x t e n s i b l e m a r k u p l a n g u a g e 的简写,是一种扩展性标记语言。x m l 并不是标记语言,它只是用来创造标记语言( 比如h t m l 、化学标记语言c m l 、 数学标记语言m a t h m l ) 的元语言。 x m l 来源于s g 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 ” ( 通用标记语言标准) 。它是标记语言的标准,也就是说所有标记语言都是依照 s g m l 制定的,当然包括h t m l 。s g m l 的覆盖面很广,凡是有一定格式的文 件都属于s g m l ,比如报告,乐谱等等,h t m l 是s g m l 在网络上最常见的文 件格式。 而x m l 就是s g m l 的简化版,只不过省略了其中复杂和不常用的部分。那 么有了h t m l ,为什么还需要用x m l ? x m l 是可扩展的,而h t m l 是静态的, 有限的标记集无法满足日益增长的数据描述要求,x m l 大大丰富了h t m l 的描 述功能,可以描述非常复杂的w e b 页面,如复杂的数学表达式,化学方程式等, 而h t m l 只能描述数据的显示样式,没有语义,因此在电子数据交换、查询数 据库中的数据等方面存在极大不足。h t m l 中数据与其显示样式完全混在一起 的,数据的可重用性差,如果要换显示形式你不得不重新编码所有这样的h t m l 文件。x m l 是结构化的,好处是使x m l 文件易于被程序处理,便于数据共享。 2 1 2 格式良好的x l i 文件一x 虬语法 基于x m l 的安全网关- x v l i e n g i n e 在x m l 中,“格式良好”有着明确的标准,即是要遵守x m l l 0 规范中的 语法规则。x m l 必须符合规范,才能被正确解释处理。 一个x m l 文件最基本的构成是: x m l 声明( 也是处理指示的一种) 处理指示( 可选) x m l 元素 2 1 2 1x m l 声明 一个x m l 文件,最好以一个x m l 声明作为开始。之所以说“最好”,是 因为x m l 声明在文件中是可选内容,可加可不加,但w 3 c 推荐加入这一行声 明。 一个完整的x m l 声明是这样的: v e r s i o n 属性:指明所采用的x m l 的版本号。 s t a n d a l o n e 属性( 缺省为y e s ) :这个属性表明该x m l 文件是否和一个d t d 文 件文件配套使用。 e n c o d i n g 属性( 缺省为u t f - 8 ) :编码标准。如下是几种常见的编码:简体中文 码:g b 2 3 1 2 、繁体中文码:b i g 5 、西欧字符:u t f _ 8 。如果标签是用中文来写 的,就要用e n c o d i n g = ”g b 2 3 1 2 ”。 2 1 2 2x l t 元素 元素是x m l 文件内容的基本单元。从语法上讲,一个元素包含一个起始标 记、一个结束标记以及标记之间的数据内容。其形式是: ( 标记) 数据内容( 标记) 元素中还可以再嵌套别的元素。一个x m l 文档有且只有一个根元素。起始 和结束标记之间出现的所有合法字符都是数据内容,都被忠实地传给x m l 处理 程序。比方说: 一段文字叫格式 ( 格式 一段文字 基于x m l 的安全网关一一x m l e n g i n e ab 上表中左边和右边所列出的元素标签及内容均一致,但二者却是不同的,因 为b 中多了两个换行符,在屏幕上显示的时候分成了三行,所以象换行、回车 这类不可见字符也是作为x m l 文档中的有效字符来处理。 1 、字符引用 为了避免把数据内容和标记中需要用到的一些特殊符号相混淆,x m l 还提 供了一些有用的字符引用。字符引用实际上也是实体引用( 后面介绍) 。常见的 5 种字符引用如下表所示: 字符实体引用 &匦; ”, 正确的写法应该是: ( 示例) & h ;姓名& 群;张- - & i t ;姓名& 酵;( 示例 2 、标记 所有符号“( ”和符号“) ”之间的内容都称为标记。基本形式为: ( 标记名( 属性名= “属性取值”) ) x m l 对于标记的语法规定要比h t m l 要严格得多。标记必不可少,任何一 个格式良好的x m l 文件中至少要有一个元素。大小写有所区分,在h t m l 中, 标记( h e l l o ) 和( h e l l o ) 是一回事,但在x m l 中,它们是两个截然不同的标 记。要有正确的结束标记,结束标记除了要和开始标记在拼写和大小写上完全 相同,还必须在前面加上一个斜杠“”。为了简便起见,空标记直接在开始标 记的最后惯以斜杠“”来确认。 标记与标记之间要正确嵌套,比如: s a m p l e h e l l o ( 主题) ( 正文) h e l l o ! & l e t t e r s i g n ;( i l l = 文) ( 信件) l 、实体的类型 实体包括两种类型:一般实体和参数实体。 一般实体 定义一般实体的格式如下; ! e n t i t y 实体名”文本内容”) 另外,你也可以指定一个实体代替一个外部文件的内容,此时要使用 s y s t e m这个关键字。例如 ! e n t i t y l e t t e r s i g n s y s t e m ”h t t p :w w w m y d o m a i n e o m l e t t e r s i g n x m l ”) 参数实体 与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参数实 8 基于x m l 的安全网关x m i e n g i n e 体只用在d t d 中。参数实体的格式与一般实体很类似,只不过中间要加上“” 符,例如: 实体引用 实体引用指的是引用一个在实体声明中已经声明过的一个实体,实体引用的 形式很简单:& 实体名。实体引用一般有如下几点规则: 在引用x m l 实体之前,必须已经在x m l 文件中对此实体进行过声明。 在实体引用中不能出现空格。也就是说,& l e t t e r s i g n ;的用法会引起错误。 尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说, 一个实体不能引用它自己;同样,也不能出现实体a 引用实体b ,然后实体 b 再反过来引用实体a 的情况。 实体引用不能在d o c t y p e 声明中出现。 实体引用的文本必须是形式良好的x m l 。 完整的实体声明和实体引用的例子; 张三 a 公司 & a 公司地址 叫联系人 & b 公司地址( 地址) 可联系人 王五叫姓名 b 公司叫公司 & b 公司地址( t g 址) 叫联系人 从这个例予中可以看出,一旦哪个公司搬家了,只须改变实体声明中有关该 公司的地址,所有这个公司的联系人的地址也就都改过来了。 2 1 2 5d t d 和s c h e m a l 、d 。i d 文件类型描述d t d ( d o c u m e n tt y p ed e f i n i t i o n ) 是用来描述一个标记语言 的语法和词汇表,也就是定义了文件的整体结构以及文件的语法;d t d 规定了 一个解析器为了解释一个“有效的”x m l 文件所需要知道的所有规则的细节; 一个有效的x m l 文件不允许使用任意的标记。使用的任何标记都要在d t d 内 声明,而且必须以d t d 允许的方式使用。所以d t d 就是用来解决这类有效性 问题的。 2 、使用d t d 的方法 1 0 基于x m l 的安全网关一x m i e n g i n e 内部d t d ( s t a n d a l o n e = y e s ”) 在x m l 文件的序言部分加入一个d t d 描述,加入的位置是紧接在x m l 处 理指示之后。 文件体 外部d t d ( s t a n d a l o n e = “n o ”) 外部d t d 的好处是:它可以方便高效地被多个x m l 文件所共享。你只要 写一个d t d 文件,就可以被多个x m l 文件所引用。 x m l 声明中必须说明这个文件不是自成一体的,即s t a n d a l o n e 属性的属性 值是n o 。同时,在d o c t y p e 声明中,应该加入s y s t e m 属性: 公用d t d 外部d t d 是一个系统内可共享的d t d 。目前,已经有数量众多的写好的 d t d 文件可以利用。针对不同的行业和应用,这些d t d 文件已经建立了通用的 元素和标签规则。你不需要自己重新创建,只要在他们的基础上加入你需要的新 标识。这就需要公用d t d 。两个相同行业不同地区的人使用同一个d t d 文件来 作为文档创建规范,那么他们的数据就很容易交换和共享。引用公共d t d 的形 式为: 3 、s c h e m a d t d 最大的局限是不能对元素内容提供足够的控制,例如,d t d 无法指定 0 9 0 1 2 0 0 0 有效i t i e g g s ,t o a s t ,c o f f e e 无效。相 对于d t d ,我们总结s c h e m a 的优势有如f 几条: 一致性 实际上d t d 是x m l 体系中的异类,它的书写结构和x m l 文件的结构仿 佛有着天壤之别,后者清晰直观,前者复杂晦涩。s c h e m a 建立在x m l 之上, 基于x m l 的安全网关x m i e r 】幽e 本身也是一种x m l ,使用者不必再为了搞懂d t d 而去重新学习;另一方面,它 可以被现有的x m l 编辑制作工具所编辑、被x m l 语法分析器所解析、被x m l 应用系统所利用,即有限投资得到了最大程度的保护。 扩展性 虽然d t d 中也定义了一些数据类型,但那都是针对属性类型而定义的,而 且类型非常有限。没有数据类型,无形之中大大增加了程序员的开发难度和工作 量。何况电子交易过程中不可避免地会出现大量的数据转换,整型、实型、布尔 型、日期型的数据层出不穷,d t d 显然招架不住。s c h e m a 对d t d 进行了扩充, 引入了数据类型,很好地解决了这一问题。 易用性 x m ls c h e m a 取代d t d 的另一个原因要归结于d o m 和s a x ( 关于d o m 和s a x 的概念将在后面章节中详细论述) 。作为一种x m la p i ,d o m 和s a x 只是对x m l 实例文档有效,对于d t d 则无能为力,你不可能期望通过d o m 或 s a x 来判定一个元素的属性类型或者某个元素的予元素允许出现的次数( 当然, 这都是x m l 分析器的本职工作) 。但是,一旦有了s c h e m a ,这个问题便不复 存在,因为此时对于x m l 文档结构的描述已变成为s c h e m a 一种“格式良好 的”x m l 文档,用d o m 和s a x 去访问当然不在话下。 规范性 同d t d 一样,s c h e m a 也提供了一套完整的机制以约束x m l 文档中标记的 使用,但相比之下,后者基于x m l ,更具有规范性。s c h e m a 利用元素的内容和 属性来定义x m l 文档的整体结构,如哪些元素可以出现在文档中、元素间的关 系是什么、每个元素有哪些内容和属性、以及元素出现的顺序和次数等等,一目 了然。 2 1 3x l 文件的解析 处理x m l 文档的应用程序都需要一个x m l 解析器,x m l 解析器的作用是: 文档中提取实际的数据,然后创建一系列的事件或者是新的数据结构。 解析器也能够检查文档是否是格式良好的,也就是说是否严格的遵守了x m l 规范,而这是处理x m l 文档之前就必须进行的工作。 基于x m l 的安全网关x m i e n g i n e 解析器还应该能够判断个文档是否是有效的( 如果该文档有一个 d t d s c h e m a 的话) 。 当前比较常见解析器有:i b mx m l 4 j 、a p a c h ex e r c e s 、 s u n p r o j e c t x 、m i c r o s o f t m s x m l ( i e 5 0 以上版本已经集成了m s x m l 解析器) 、 o r a c l ex m lp a r s e rf o rj a v a 以及j a m e sc l a r kx p 等。 2 1 4x 札文件的显示 l 文档本身是重内容而不是重形式。x m l 的显示一般用样式单来描述文 档的显示效果。样式单是一种专门描述结构文档表现方式的文档,它既可以描述 这些文档如何在屏幕上显示,也可以描述它们的打印效果,甚至声音效果。样式 单一般不包含在x m l 文档内部,而以独立的文档方式存在。w 3 c 给出了两种样 式单语言的推荐标准,一种是层叠样式单c s s ( c a s c a d i n gs t y l es h e e t s ) ,另一 种是可扩展样式单语言x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ) 。如图2 1 就是一 个用打开的未有样式单简单的例子: 图2 1 用i e 打开的未有样式单的x m l 文档 2 1 5 应用程序接口 处理x m l 文档是由解析器来完成的,应用程序要创建、访问和操作一个 基于x m l 的安全丽关一- x m i e n 9 3 n e x m l 文件就需要一个x m l 解析器的接口,w 3 c 和x m l d e v 邮件列表成员分 别提出的两个标准应用程序接口:d o m 和s a x 。 d o m 和s a x 在应用程序开发过程中所处地位可以用下图2 2 来表示: 图2 2 d o m 和s a x 从图中可以看出,应用程序不是直接对x m l 文档进行操作的,而是首先由 x m l 分析器对x m l 文档进行分析,然后,应用程序通过x m l 分析器所提供的 d o m 接口或s a x 接口对分析结果进行操作,从而间接地实现了对x m l 文档的 访问。 l 、d o m d o m 的全称是d o c u m e n to b j e c tm o d e l ,也即文档对象模型。在应用程序中, 基于d o m 的x m l 分析器将一个x m l 文档转换成一个对象模型的集合( 通常 称d o m 树) ,应用程序正是通过对这个对象模型的操作,来实现对x m l 文档 数据的操作。通过d o m 接口,应用程序可以在任何时候访问x m l 文档中的任 何一部分数据,因此,这种利用d o m 接口的机制也被称作随机访闫机制。 d o m 接口提供了一种通过分层对象模型来访问x m l 文档信息的方式,这 魑分层对象模型依据x m l 的文档结构形成了一棵节点树。无论x m l 文档中所 描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用d o m 所生成的模型都是节点树的形式。也就是说,d o m 强制使用树模型来访问x m l 文档中的信息。由于x m l 本质上就是一种分层结构,所以这种描述方法是相当 有效的。 2 、s a x 4 基于x m l 的安全网关- x m i e n g i n e s a x 的全称是s i m p l ea p i sf o rx m l ,也即x m l 简单应用程序接口。与d o m 不同,s a x 提供的访问模式是一种顺序模式,这是一种快速读写x m l 数据的方 式。当使用s a x 分析器对x m l 文档进行分析时,会触发系列事件,并激活 相应的事件处理函数,应用程序通过这些事件处理函数实现对x m l 文档的访问, 因而s a x 接口也被称作事件驱动接口。 3 、d o m 和s a x 的比较 d o m 树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,它 可以任意地控制整个x m l 文档中的内容。然而,由于d o m 分析器把整个x m l 文档转化成d o m 树放在了内存中,因此,当文档比较大或者结构比较复杂时, 对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。 所以,d o m 分析器对机器性能的要求比较高,实现效率不十分理想。不过,由 于d o m 分析器所采用的树型结构的思想与x m l 文档的结构相吻合,同时鉴于 随机访问所带来的方便,因此,d o m 分析器还是有很广泛的使用价值的。 s a x 分析器在对x m l 文档进行分析时,触发了一系列的事件,由于事件触 发本身是有时序性的,因此,s a x 提供的是一种顺序访问机制,对于已经分析 过的部分,不能再倒回去重新处理。s a x 之所以被叫做”简单”应用程序接口,是 因为s a x 分析器只做了一些简单的工作,大部分工作还要由应用程序自己去做。 也就是说,s a x 分析器在实现时,它只是顺序地检查x m l 文档中的字节流,判 断当前字节是x m l 语法中的哪一部分、是否符合x m l 语法,然后再触发相应 的事件,而事件处理函数本身则要由应用程序自己来实现。同d o m 分析器相比, s a x 分析器缺乏灵活性。然而,由于s a x 分析器实现简单,对内存要求比较低, 因此实现效率比较高,对于那些只需要访问x m l 文档中的数据而不对文档进行 更改的应用程序来说,s a x 分析器更为合适。 2 2 w e b 服务 2 2 1 什么是w e b 服务 w e b 服务就是用标准i n t e m e t 技术建立的、提供应用程序功能的一个网络访 问接口。也就是说应用程序能够在网络上通过h t t p 、x m l 、s m t p 或j a b b e r 基于x m l 的安全网关一- x m i e n g i n e 等协议的组合被访问,那么这个应用程序就是一个w e b 服务。 2 2 2w e b 服务的基本原理 w e b 服务是位于应用程序代码和应用程序之间的一个接口。它的作用相当 于一个抽象层,将应用平台与编程语言相关的细节( 如怎样调用应用程序代码) 等分隔开。这个标准化的抽象层意味着任何支持w e b 服务的编程语言都可以访 问应用程序提供的功能。w e b 服务是以一种与平台无关的方式提供了这种跨平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校幼儿园自评报告
- 凉州词王瀚教学课件
- 新解读《GB-T 36773 - 2018竹制品检疫处理技术规程》
- 用电应急知识培训内容课件
- 生鲜期货基础知识培训课件
- 生物采样基础知识培训课件
- 急性淋巴细胞白血病护理查房
- 2025年小学数学毕业升学考试易错题型强化训练模拟试卷
- 白塞病血管病变护理查房记录
- 2025至2030中国分布式能源行业产业运行态势及投资规划深度研究报告
- 双J管健康宣教
- 混凝土裂缝处理的讲座
- 如何提高美术课堂教学的有效性
- 茂县生活垃圾资源化综合利用项目环评报告
- 水电站新ppt课件 第一章 水轮机的类型构造及工作原理
- 护理查对制度课件
- 市政工程占道施工方案
- GB/T 39965-2021节能量前评估计算方法
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- GB/T 17449-1998包装玻璃容器螺纹瓶口尺寸
- PMC知识培训课件
评论
0/150
提交评论