




已阅读5页,还剩95页未读, 继续免费阅读
(计算机软件与理论专业论文)xmlengine安全网关的设计和安全模块的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 学科名称:计算机软件与理论 论文名称:x m l e n g i n e 安全网关的设计和安全模块的实现 硕士研究生:鲁飞 导师:杨国纬 目前电子商务和电子政务已经成为i n t e r n e t 上重要的活动之一,与 此同时网络安全因其在网络应用中的重要性也日益成为一个不容忽视的 问题。人们需要在网络中传输保密信息并提供和鉴别身份及权限信息, 以保证网络交互的安全。 w e bs e r v i c e 即w e b 服务是目前被电子商务广泛采用的技术之一。它 采用x m l 等技术,在i n t e r n e t 上实现以“服务”为基础的松散耦合的过 程调用。而在这些过程调用中,x m l 作为信息表示和传递的载体,可以 在网络上通过它来访问w e b 服务所描述的一组操作。x m l 引擎( 英文 x m l e n g i n e ) 是基于x m l 的信息安全网关,是出于对x m l 消息安全功 能的设计考虑,为网络中基于x m l 信息的w e b 服务提供了安全而有效 的信息保障。 本课题设计并实现了基于x m l 的信息安全网关。首先本文介绍了 研发的技术背景,提出并解释了“x m l 引擎”这个概念;在x m l l 0 规 范和s o a p 规范1 0 2 版本的基础上,介绍了在开发过程中所涉及到的 x m l 、s o a p 、应用密码学、x m l 安全及其它相关的基本知识;分析了 当前应用安全产品体系结构框架,进而给出了x m l e n g i n e 体系结构的模 型,阐述了实现x m l e n g i n e 安全网关服务器的方法和步骤及作者所参与 的加解密和签名验证安全模块的实现过程;最后给出了一个用户信用 卡和密码信息受保护的网上书店的用例。 关键词:x m l 安全,x - m l 引擎,加密解密,签名验证 a b s t r a c t a b s t r a c t m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y t h e s i s :d e s i g n o fx m l e n g i n es e c u r i t ye x c h a n g eg a t e w a ys y s t e m a n d i m p l e m e n t o f s e c u r i t ym o d u l e c a n d i d a t e :l uf e i a d v i s e r :p r o f g u o w e iy a n g w i t ht h ep o p u l a r i z a t i o no fi n t e r a c 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 l e c t r o n i c c o m m e r c ea n de l e c t r o n i cg o v e r n m e n tb e g i nt ob e c o m ei m p o r t a n ta c t i v i t i e so nt h e n e t t h eo n l i n es e c u r i t yb e c o m e sa q u e s t i o nt h a tc a n tb ei g n o r e dd a yb yd a y b e c a u s e o fi t s i m p o r t a n c ei nn e t w o r ka p p l i c a t i o n p e o p l en e e dt o o f f e ra n dd i s t i n g u i s ht h e i 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 ni nt h en e t w o r k ,s o a st oe n s u r et h em u t u a ls e c u r i t y o ft h en e t w o r k w e bs e r v i c ei sat e c h n o l o g yb a s e do nx m la n dr e l e v a n tt e c h n o l o g yi n t h e w o l i d 。w h i c ht a i lr e a l i z es e t w i c e - b a s e ds o f l - c o u p l i u gp r o c e s sr e c a l l i n gi nt h ei n t e r n e t d u r i n gt h i sp r o c e s s ,x m l t h a tr e g a r d e da sac a r r i e rf o ri n f o r m a t i o ne x p r e s s i n ga n d t r a n s m i s s i o nc a nb eu s e dt oa c c e s sas e r i e so fo p e r a t i o nd e s c r i b e db yw e b s e r v i c e 。 x m l e n g i n e ( x m l - b a s e d i n f o r m a t i o ns e c u r i t yg a t e w a y ) ,c o n s i d e r i n gs o m es e c u r i t y f u n c t i o n so fx m l i n f o r m a t i o n ,w i l lg i v eas a f e t ya n de f f e c t i v eg u a r a n t e et o t h e w e b ,s e r v i c ew i t hx l v l li nt h ei n t e r a c t t h i st a s kh a sb e e nd e s i g n e da n dr e a l i z e dt h ei n f o r m a t i o ns e c u r i t ye x c h a n g e g a t e w a ys y s t e m b a s e do nx m l a tf i r s t ,t h et h e s i sh a sp u tf o r w a r dt h ef u n d a m e n t a l c o n c e p t i o n o fx m l e n g m e ,a n dh a si n t r o d u c e dt h et e c h n o l o g i c a lb a c k g r o u n do f r e s e a r c ha n dd e v e l o p m e n t a c c o r d i n gt ot h ex m l l 0a n ds o a p o fv e r s i o n1 0 2 , m a l l vb a s i c c o n c e p t s w i l lb ed e s c r i b e d ,s u c h8 sx m l , s o a p , w e b s e r v i c ei n v o l v e di n t h ec o m s eo fd e v e l o p i n g ,a p p l i e dc r y p t o g r a p h ya n dt h e nx m ls e c u r i t y f u r t h e r m o r e , t h i st h e s i sw i l lp r o v i d et h em o d e l o fx m l e n g i n e s y s t e m s t r u c t u r ea n dh a se x p l a i n e d i nd e t a i lo ft h ei m p l e m e n tm e t h o d sa n d s t e p s o fx m l e n g i n e f i n a l l y ,a ne x a m p l e o fo n l i n eb o o k s t o r ea r r a y e dx m l e n g i n e c l i e n t s a n ds e r v e r sw i l lb e p r o v i d e d k e yw o r d s :x m l s e c u r i t y ,x 磁翻豳e ,e n c r y p t j q ) e c r y p t ,s i g n a t u r e v e r l f y 珏 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名:乓色日期:如d 牛年f 月j 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:毒苫翩躲型盥 日期:御圹年f 善月f z 日 基于x m l 的安全网荧一x m l e n g i n e 1 1 课题背景 第一章引言 随着i n t c r n e t 的普及和应用,由于其具有垒球联网的威力和强大的信息交 羧葵蕤,邑或炎入袋生溪不可袋获戆一藩傍,并将是来来意数贸易豹主要手 段。利用网络进行通信融经成为比较成熟的技术。与此同时程数据传输过程 串傈证信息豹安企又是个重要的课嚣。痞怠安全就怒伴随着这一过程丽建 _ 焱并不断发展着的。 信息安全是个广泛和抽象的概念。长期以来,入们把与计算机有关的 倦息系绞上的安全笼统的称为傣息安全。但是,信息安全与谯息系统安全是 有概念上的区别的。一般来说,当人们谈及倍感内容安全、计算机通惰安全、 诗雾瓿鼷终安全翻函特燃接入安全等阉蘧时,帮会用傣怠安全来说骥其中懿 部分问题。但信息安全并不代袭、也不说明任何具体的个体或系统与寰全有 荧豹润爨,西魏信感安全更多懿是一耱壤念靛瓣末疆。绩惠安全戆掺蓬涵盖 很广,从信息本身的加密、信息载体的加密、物理防瓶和隔绝、对接触信息 滟入帮媒介静管镪等等,都属予广义豹信息安金蓖薅。信惠系统安全是确缣 信息系统结构安全,与储息系统相关的元素安众,以及与此相关的各种技术、 蜜全服务和安全管理的综合。戮北信惑系统安全更具肖体系健、可设计性、 可实现性和可掇诈性。这里将傣息系统的概念仅限制予基于开放系统互连和 计算机嗣络的复杂系统,以此为基础开展信息系统安全的研究。 遥每寒电予囊务秘魄子政务螅迅速发展,傻基于燃终的w e b 服务( w e b s e r v i c e ) 也逐渐流行开爿乏,w e b 服务就是用标准i n t e m e t 技术蟪立的,为应用 褪滓提袋熬一个溺络谤 纛接西,两s o a p 在w e b 黢务豹技拳爨次中越到翡 馨 用是,作为对应用共享的消息进行包装的标准协议。s o a p 规范定义了简单的 麓予x m l 包装稽递信慰释将与平台葙荚匏应麓数蕹娄鍪转纯藏x m l 表示的 一些规则。s o a p 就是x m l 实际上s 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 o 模溅, 并奁l i n u x 平台上实瑷这一搂鳖,辩翼髂兹实瑶多骤稷缨节送行撵缨搓述。佟 为个新产品应该与具体的应用绪禽起来,为此我们专门设计和实现了个 弼络数字衽嚣一丽上书店,将x m l e n g i r t e 赧务嚣鞠躬部署翻溺络审,对英中 诸如用户信用卡号和密码铸敏感信息进行加密积签名,以体现充分体现 x m l e n g i n e 的特点粕优势。 程整令i 霆程串馋者主要从事其巾的加密和鼹密、签名和验证模块魄鼗求 分析、概要设计、详细设计、代码编码和测试工作,与小组成员一起参与 x m l e n g i n , 熬个顼强瓣总体设计释援越,媛磊懿蕊俸测试纛部署。应该采谤 基于x m l 的应用越来越多,但针对x m l 的安全提出的时间不长,虽然圜内 终辩其熬磅究已经不多,毽赞对其嚣发静瘦弱产黪还不多觅。在x m l 安全静 标准和一些必键问趱上一方厮仍有广阔的研究空间,另一方面x m l e n g i n e 作 灸个大墼系统,窀钧相美标准疣杂,涉及多方瑟的知识和技米,在有了第 一阶段的产龋后还有进一步的完善和扩展。 1 3 。各章节安排 箔一章,弓l 言。主要介绍课题的来源和背景,作者凿勺主要工作,本论文 各章节安接等。 第二章,基础知识概迷是对x m l 、w e bs e r v i c e 、s o a p 及应脓码举相 关知识的综述。首先介绍了x m l 的基本概念、语法,对x m l 文攒进行解析 2 臻于x m l 的安全嘲关一x m l e n g i n e 鞠显示,以及应臻程痔处淫x m l 豹部分凄强等;然螽针对w e bs e r v i c e 鼹务 介绍了它的定义和原理,包括w e b 服务的通信规范和标准s o a p 的格式,它 与x m l 静关系;接下潦剜出了在开发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 在实际应用中的功能和效果。从珏标和功能方露对数字社区的 构成进行了描述,最后通过抓包的方式测试x m l e n g i n e 服务器的工作状况。 第七章,今羼懿工俸。本滚孛俘者瓣述了系绞存在懿不足戳及系绞素来 的发展思路。 1 4 ,j 、结 本章介绍课题的研究背景,作者在课题中所做的主要工作,以及全文的 鼙节安孝器。下瑟将对拜发x m l e n g i n e 产燕过程中溪涉及爨静稳关基旗壤念簿 系、技术框架以及研究应用现状做一个综述。 星三童墨型塑望塑堕 第二章基础知识概述 h t m l 的出现无疑是i n t e r n e t 技术和w e b 技术的次突破,它第一次使 人们能够在w e b 上浏览和显示多种格式的数据,为推动i n t e r n e t 和w e b 技术 的发展发挥了巨大的作用。然而,随着w e b 技术的飞速发展,i n t e r n e t 上的 w e b 信息越来越多,内容越来越复杂,传统的h t m l 的有限的标记功能已经 无法满足表达日益丰富的数据形式的需要。在这种背景下,x m l 技术应运而 牛。 2 1x m l 的基本概念 2 1 1 什么是x m l x m l 是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 并不是标记语言,它只是用来创造标记语言( 比如h t m l 、化学标记语 言c m l 、数学标记语言m a t h m l 等) 的元语言。 x m l 来源于s g m l ,s g m l l 2 】全称是“s t a n d a r dg e n e r a l i z e dm a r k u d 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 是可扩展的,而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 文件易于被程序处理,便于数据共 享。 d 蒸予x m l 的安全阐关一x m l e n g i n e 2 1 。2x m l 语法规则 x m l 的文档和h t m l 的原代码类似,也愚用“标识”来标识内容。创建 x m l 文梢必须遵守一定的规嗣,并把遵循基本标记规确的x m l 文裆称为“格 式良好”的文档。“格式良好”即是要邀守x m l l o 3 】规范中的相关语法规则 定义,只有符合规范的x m l 文档才能被正确解释和处理。 一个x m l 文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 声明是这样的: w 一一一一一_ 一一一一一 l | i 一一一一一一。一一一一- 。一一一一一一。一一一i 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 文 件( 见2 1 3 节) 文件配褰使用; 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 m l 嚣素 元素是x m l 文 孛爨容熬基本擎元。扶语法主讲,一令元素包含一令起始 标记、一个结束标记以及标记之间的数据内容。其形式是: r 一一一一一一一一: i 标稳) 数蠢内容( ,轹记 i : c 。一一元豢吊蠢可取再夏瑟射萌菟蒹了= = = = 不一夏砑r 夏疆看豆其看= 不稹元蒹_ 莲 始和结束标记之间出现的所有合法字符都是数据内容,都被忠实地传给x m l 处理程序。参考虫鞋下两秘表达; 第二章基础知识概述 格式, ! 一段文字c 格式,; 一段文字 ;珞式 t 1 ;垒i 旦一+ j 左边和右边所列出的元素标记及内容均一致,但二者挪是不嘲懿,爨为b 中多了两个换行符,在屏幕上显示的时候分成了三行,所以诸如换行、回车 这类不可冕字特邀怒 乍为x m l 文楼中豹鸯效字簿来处理麴。 i 字符丐 鼷 为了避免把数据内容和标记中需要用到的一些特殊符号相混淆,x m l 还 提 莛了一堑有蕊静字符引麓。字符引嗣实际上连怒实体( 觅2 。1 3 2 节) 雩| 甭。 常见的5 种字符弓l 用有: ; 字符 实体引用 r 一;r 趸爵! l : 1 t ; & ;& a m p ; ; ; ” i& q u o t ; l & a p o s ; ; 这样,如嘉焉妻茬一嚣系碉f 嚣苄元豢甭西蕊受幂1 i 乏妊名,张三c 姓名 ” 正确蛉写法戴应该楚; ( 示例) & l t ;姓名g l ;张三w 姓名鸥( 际铡) 2 标记 所有符号“ ”帮符号“ ”之瀚静内餐都穗为标记。蒺本形式为: 一一一一一一一一一一一“一: ; ( 标记名( 属性名= “属性取值”) ) l 。j 酾”好手铩琵+ 丽语疆藕歪妻酝再| 亍湎要产稀樽琴_ 舔韬瑟幂可万_ 拄荷 一个格式良好盼x m l 文 牛中至少要有一个元素,大小写有所区分e 在h t m l 中,标记( h e l l o ) 和( h e l l o ) 照一回事,但在x m l 中,它们是两个截然 不鲻弱标记。一今x m l 元索要有歪臻弱绦紊掭记,结寒掭记赊了要和舅始藩 记在拼写和大小写上完全相同外,还必须在前面加上一个斜杠“”。为了简便 邃觅,空标记壹覆在开始探记翁最后溪以错杠“”来确议。 基于x m l 的安全潮荚- x m l e n g i n e 标记与标记之闻要正确嵌套,眨磐: s a m p l e 是链误羲,正 确写法是: s a m p l e 。标记命名要台法,一般标记应该以字母、 下翅线“一”或鬻号“:”开头,后嚣鼗字母、数字、句号、鬻号、下翊线或 逐字符“一”,但烂中间不能有空格,而且任何标记不能以“x m l ”起始。另外, 嫩好不娶在标记的开头使蠲冒号,尽管它是合法的,但可能会带来混淆。在 x m l l 0 标准中允许使用任何长度的标记,不过,现实中的x m l 处理程序可 能会要求标记的长度限制在一寇范围内。 对于标记中的属性,是指对标记的进一步描述帮说明。标记中可以包含 任意多个属性。在标记中,属性以名称取值对出现,属性名不能重复,名称 与取僮之闻翅等号“= ”分隰,且取篷怒弓l 号 l 起来。铡麴; ,+ 一。一一一- 。一一一一 i a u t h o rs e x 2 ”m a l e ”a l e x ! i 一一一一,一- 一一一一一一一; 霜满注“s e x ”寒稻鞠“a u t h o r ”的经鬟是“m a l e ”。 x m l 中属性是自己定义的,虽然属性使用比较方便,但是有时候属性不 荔扩充莘甜被程序操伟,所以凡怒厢蓟耩性的地方也可以用子元素来代替,例 如上面那个摇述性别的代码可以改成: 2 ,1 。2 ,3 处理搓琴 a l e x m a l e 处理指示楚用来给处理x m l 文件的应用程序提供信息魄。也就是说, x m l 分析器可能对它并不感兴趣,而把这些信息原封不动地传给x m l 应用 缎序。然后这个应鼹程序来解释这个撂示,遂照它黢疆供的傣息进行处理, 域者再把它原封不动地传给下一个应用程序。正如前龋看到的,x m l 声明就 蹩一个处理指示。 所有的处理指示应该遵循下面的格式: 一一一一一一一一一+ 一 ;( ? 处理指示名处理指示信息? )i i 一一一。一一。一,一一,一一+ 。,一一。一一一i 由于x m l 声明的处理指示名是“x m l ”,因此其它处理搬示名不能再用 “x m l ”。 7 一笙三里茔型塑望塑堕 2 1 3 文档类型 x m l 被作为一种元标记语言,是一种描述标记语言的语言,如果要创建的 新的标记语言( 也叫标记集) ,要通过文档类型定义( d t d ) 来定义。各个文 档要与d t d 相比较,这一过程被称为合法性检验,如果文档符合d t d 中的约 束,这个文档就被认为是合法的,否则就不合法。 2 1 3 1 定义和声明 一项d t d 【3 1 ( d o c u m e n tt y p ed e f i n i t i o n ) 文档类型定义,应规定元素清单、 属性、标记、文档中的实体及其相互关系。d t d 可以包括在包含它描述的文 档文件中,或者与外部的u r l 相链接,这些外部d t d 可以被不同文档和网 站所共享。d t d 为应用程序和其它组织提供了共同遵循的方法,同时也以文 档形式阐述了标记标准并强制遵守此标准。 d t d 有助于不同的人们和程序互相阅读文件,它精确地定义了什么允许 或不允许在文档中出现。d t d 还为查看和编辑软件必须支持的元素建立了标 准,有助于防止软件商乘机利用和扩展开放协议以便将用户锁定在他们的专 利软件上。 文档声明指定了文档使用的d t d 。文档声明出现在文档的序言部分,处 在x m l 声明之后和基本元素之前。它可能包括文档类型定义或是标识文档类 型定义所在文档的u r l 。有些情况下文档类型定义有内外两个子集,则文档 类型声明可能同时包括以上两种情况。 文档声明是以“ ”结束。通常将开始和结束 放在不同的行上,例如: ? x m l v e r d i o n = 一再1 0 is t a n d a l o n e = i y e s i 6 h e l l ow o r i d ! 单行 声一萌 酌元綦歪一称廷 g r e e t i n g ,这一元素可以包含可析的字符数据( # p c d a t a ) ,可析的字符实 堑兰塑! 些窒全堕苤:兰塑生1 2 塑! 质上是除标记文本以外的任何文本。 2 1 3 2 实体 包含x m l 文档细节内容的存储单元称为实体( e n t i t i e s ) 【1 1 。实体主要是 用来代替字符数据的,它可以节省大量的录入工作。实体同样必须要格式良 好a 假如定义了一个实体l e t t e r s i g n ,它代表下面这一大段文本: r 藤三: l: :i :某网络公司销售部门 l北京市海淀区中关村8 8 号,1 0 0 0 0 0 : 蛋x 葫戛祥羊面面i 蓓祥矿;苦秉吁瓢订甄蘧稃写一一 r 玎吾袢r 一一一”一一一i ( 收件人) 李四( 收件人) 主题) h e l l o ( ,主题) ( 正文) h e l l o ! & i e t t e r s i g n ;( 正文) ( 信件) 一罐对j 罐迸荇语汪夯祈蔟详芎i 甬 & l e t t e r s i g n ;i 磊毳夏磊二不泵捂币饼籀 述的那一大堆文本所取代。 1 实体的类型 实体包括两种类型:一般实体和参数实体。 般实体 定义一般实体的格式如下: ,一- 一_ 一_ - 1 i 另外,也可以指 ! 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 c o m l e t t e r s i g n x m l ”) 参数实体 与一般实体相同,参数实体既可以是内部的也可以是外部的。不过,参 数实体只用在d t d 中。参数实体的格式与一般实体很类似,只不过中间要加 上“”符: 第二章基础翔识概述 r 一一一一一一- _ _ 一 i ! e n t i t y 实体褒”文本蠹容” l - 一一- 。一一_ _ - 一一_ 一h 一_ ; 2 + 实倭懿键蔼 实体的使用包括两部分:实体声明和实体引用。 实 奉声鞠 对于实体的声明应该放在文件类型d o c t y p e 中。d o c t y p e 般放在文 件头( 郎x m l 声鞠和d t d ) 之后,x m l 元素之前。这样一来,x m l 文件就 变为下面的形式: r + 虿i 耐+ 磊鬲i 茹i i :西;j 岁一 i l l i ;具体数据内容 ; i 。一一一 实体引用 实俸雩 瘸指鹣是引鞠令在实俸声溺中已经声鞠过的一个实体,实体g i 用的形式很简单:实体名;( 注意后接一分号) 。实体引用一般肖如下几点规 刚: 奁日 用x m l 实体之前,必须已经在x m l 文件中对此实体进行过声明; 在窟体引用中不能出现空格。也就是说,& l e t t e r s i g n 的用法会引起 罐误; 尽管在一个实体中可以再引用其它实体,但是不能出现循环弓l 用。也 裁跫滋,个实搭不麓 ;惩它鸯麓;曩撵,逢不簸出瑷实体a 引爝实 体b ,然后实体b 再反过来引用实体a 的情况; 实俸雩l 霜不能在d o c t y p e 声稠中密现; 实体引用的文本必须是格式良好的x m l 。 下面褥举一个完整的实体声鞠和实体i 用酌例子: 燕子x m l 的安全网关一x m l e n g i n e ; j ! i l i 张三 j l公司 a 公司 绝址 & a 公司圭煎璇;q 遗址 姓名 李四 地址 b 公司地址: b 公司 嚣公司遣凝;,遮蟪| i 1 i ! i ; lc ,联系a 捌衰 l ,一一一一一一一一- n 一一一一一一一一一一一 在语法分析时“& a 公司地址;”会被“成都市建设路1 2 3 4 号”所代替, “b 公司遗垃;”会被“深爨帝a 甍踌6 7 8 9 号”所代替。在l 嚣中葑开静结袋 如图2 1 所示。从这个例子中可以看出,一旦哪个公司搬家了,只须改变实体 声明中肖关该公司的遗簸,所有这个公司的联系人的遗童丘也就都改过采了。 2 ,1 。3 。3s c h e m a d t d 最大的届艰是不能对元素内察提供足够款控铡,如d t d 无法指定 0 9 0 1 2 0 0 0 有效 而 e g g s ,t o a s t ,c o f f e e ;? i j 效。 除了d t d 岁1 - ,还骞一秘也盎瘸子类型定义酶方式s c h e m a ,与d t d 掇比较, 总结s c h e m a 的优势有如下几条: 一致性 茎三童茎型塑塑塑堕 d t d 的书写结构和x m l 文件的结构差别较大,比较复杂晦涩,而s c h e m a 结构清晰直观;s c h e m a 是建立在x m l 之上,本身也是一种x m l 文档,不需 要特别的语法,并且可以被现有的x m l 编辑制作工具所编辑,被x m l 语法 分析器所解析,被x m l 应用系统所利用。 扩展性 虽然d t d 中也定义了一些数据类型,但那都是针对属性类型而定义的, 这无形中大大增加了程序员的开发难度和工作量,并且随着电子交易过程中 不可避免地出现大量的数据转换也无法得到很好的应用。而s c h e m a 对d t d 进行了扩充,引入了数据类型,很好地解决了这一问题。 易用性 x m ls c h e m a 易用的另一个原因要归结于d o m 和s a x ( 见2 1 6 节) 。 作为一种x m l a p l ,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 4x m l 文件的解析 处理x m l 文档的应用程序都需要一个x m l 解析器,x m l 解析器的作用是: 从文档中提取实际的数据,然后创建一系列的事件或者是新的数据结构; 解析器也能够检查文档是否是格式良好的,也就是说是否严格的遵守了 x m l 规范,而这是处理x m l 文档之前就必须进行的工作; 解析器还应该能够判断一个文档是否合法有效( 如果该文档的9 t d 或者 基于x m l 的安全网关一x m l e n g i n e 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 np r o j e c tx 、 m i c r o s o f tm s x m l ( i e 5 0 以上版本已经集成了m s x m l 解析器) 、o r a c l ex m l p a r s e rf o rj a v a 以及j a m e sc l a r kx p 等。 2 1 5x m l 文件的显示 x m 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 e s 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 就是一个用i e 打开的未有样式单简单的例子: 2 1 6 应用程序接口 图2 1 未有样式单的x m l 文档 一一 堑三童苎型塑望塑堕 处理x m l 文档是由解析器来完成的,应用程序要创建、访问和操作一个 x m l 文件就需要一个x m l 解析器的接1 2 1 ,w 3 c 分别提出的两个标准应用程 序接口:d o m 和s a x ,它们在应用程序开发过程中所处地位可用图2 2 来表 示: 图2 2d 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 文档的访问。 1 d o 卜1 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 本质上就是一种分层结构,所以这种 描述方法是相当有效的。 基予x m l 的安全硝关一x m k e n g i n e 2 s a x 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 提供麴谤m 模式是一耱颓洚貘式,逡是一释快速读霹x m l 数据的方式。当使用s a x 分析器对x m l 文档进行分析时,会触发系列事 件,并激活相应静事俘鲶理函数,应角稔序遥过这些事件处理爨数实现对x m l 文档的访问,因而s a x 接口也被称作事件驱动接口。 3 d o m 和s a 的比较 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 之联以被日q 徽“篾攀”应鼷 程序接口,是因为s a x 分析器只做了一些简单的工作,大部分工作还要由应 耀程序羹己去徽。遣就怒说,s a x 分凝器在实现眩,它哭是蹶彦她梭森x m l 文档中的字节流,判断当前字节是x m l 语法中的哪部分、是否符合x m l 潺法,然嚣霉熬发糕应鹣事 譬,瑟事箨处瑾爨数奉身羹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 bs e r v i c e ( w e b 簸务) 1 7 1 就是麓标准i n t e r n e t 技零建立豹、提袋应瘸疆 l s 蔓三童兰型塑塑塑堕 序功能的一个网络访问接口。也就是说应用程序能够在n n 上n 过h t t p 、 x m l 、s m t p 或j a b b e r 等协议的组合被访问,那么这个应用程序就是一个w e b 服务。 2 2 2w e b 服务的基本原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永泰消防知识培训课件学校
- 建筑工程项目施工人员安全培训方案
- 机电设备安装协调与沟通方案
- 建筑工程施工图纸审核方案
- 水稻田保护政策解读课件
- 建筑工程项目设计变更与管理方案
- 水电站生产安全知识培训课件
- 中成药非处方药39课件
- 2025版木工手工艺品制作与销售合同
- 二零二五年度不锈钢水箱销售代理合同范本
- 2025至2030年中国小信号分立器件行业市场运行现状及投资战略研究报告
- 在县政协党组理论学习中心组2025年第六次集中学习上的研讨发言(五个进一步到位)
- 2025年邮政柜员考试题库及答案
- 第8课 认识TCP-IP 课件 2025-2026学年七年级上册信息技术浙教版
- 足球裁判规则讲解
- 2025年重庆对外建设集团招聘考试笔试试题(含答案)
- 信访工作心得及改进措施总结报告
- 班组人工协议书
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战
- 沉淀池安全操作规程
- 职业规划杨彬课件
评论
0/150
提交评论