(计算机软件与理论专业论文)xml+schema编辑器系统的开发与应用.pdf_第1页
(计算机软件与理论专业论文)xml+schema编辑器系统的开发与应用.pdf_第2页
(计算机软件与理论专业论文)xml+schema编辑器系统的开发与应用.pdf_第3页
(计算机软件与理论专业论文)xml+schema编辑器系统的开发与应用.pdf_第4页
(计算机软件与理论专业论文)xml+schema编辑器系统的开发与应用.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 论文题目:x m ls c h e m a 编辑器系统的开发与应用 专业:计算机软件与理论 硕士生:李文军( 签名) 盔垂! 芝 指导教师:朱战立( 签名) 2 誓墨互 摘要 随着扩展标记语言x m l 在电子商务、数据转换、i n t e r a c t 平台等方面的广泛应用。 x m ls c h e m a 作为x m l 最主要的模式语言取得了飞速的发展,并以特有的优势成为万 维网联盟组织所推荐的模式语言,同时也成为对x m l 进行语义约束的唯一标准。所以, 开发便于操作、易于集成的x m ls c h e m a 编辑器具有重要的意义。 x m ls c h e m a 编辑器能简化x m ls c h e m a 文件的编辑过程。论文主要做了三方面的 工作:( 1 ) 讨论了x m ls c h e m a 的基本概念和基本规范;( 2 ) 设计了一种可以根据用户选择 实现与三种数据库中任意一种数据库交互的专用数据接口;( 3 ) 完成了x m ls c h e m a 编辑 器的设计与实现。 x m ls c h e m a 编辑器的设计主要包括:如何编辑x m ls c h e m a 文件;如何自动验证 所编写的x m ls c h e m a 文件是否合法;根据x m ls c h e m a 文件层次结构关系,通过操作 一个树形结构的控件,来辅助生成相应的x m ls c h e m a 文件;对树形结构能进行编辑; 同步编辑多个x m ls c h e m a 文件。在工程实践中证明,与工程结合的很密切,操作简便、 易于实现。 关键词:x m l ;s c h e m a ;编辑器;电子商务 论文类型:开发应用 n 英文摘要 s u b j e c t : s p e c i a l i t y : n a m e : i n s t r u c t o r : d e v e l o p m e n ta n da p p l i c a t i o no ft h ex m l s c h e m ae d i t o rs y s t e m c o m p u t e rs o f t w a r ea n dt h e o r y l iw e n j u n z h uz h a n a b s t r a c t w i t ht h ew i d e s p r e a da p p l i c t i o no fe x t e n s i b l em a r k u pl a n g u a g ei ne c o m m e r c e ,d a t a c o n v e r s i o n , i n t e r n e tp l a t f o r m sa n ds oo n ,勰t h em a i np a t t e ml a n g u a g eo fx m l ,x m ls c h e m a h a sa c h i e v e dr a p i dd e v e l o p m e n ta n db e c o m et h ep a t t e r nl a n g u a g ew h i c hr e c o m m e n d e db yt h e w o r l dw i d ew e bc o n s o r t i u mf o ri t so w n u n i q u ea d v a n t a g e s ,a l s ob e c o m et h es o l ec r i t e r i o nf o r x m ls e m a n t i cr e s t r a i n t t h e r e f o r e ,i th a st h eg r e a ts i g n i f i c a n c et od e v e l o pax m ls c h e m a e d i t o rw h i c hi sc o n v e n i e n tf o ro p e r a t i o na n de a s yt oi n t e g r a t e x m ls c h e m ae d i t o rs i m p l i f i e st h ee d i t i n gp r o c e s so fx m ls c h e m af i l e s t h i sp a p e rh a s d o n et h r e em a i na r e a s ( 1 ) d i s c u s s e dt h eb a s i cc o n c e p t sa n df u n d a m e n t a ln o r m so fx m l s c h e m a ;( 2 ) d e s i g n e do n ek i n do fd e d i c a t e dd a t ai n t e r f a c ew h i c hc a ni n t e r a c tw i t hr a n d o m k i n d o ft h r e ed a t a b a s e sa c c o r d i n gt o t h en s e e sc h o i c e ;( 3 ) c o m p l e t e dt h ed e s i g na n d i m p l e m e n t a t i o no fx m l s c h e m ae d i t o r t h ed e s i g no fx m ls c h e m ae d i t o rm a i n l yi n c l u d e :h o wt oe d i tx m ls c h e m af i l e s ;h o w t oa u t o m a t i c a l l yv e r i f yt h ex m ls c h e m af i l e ,w h i c hh a sb e e ne d i t e d ,i sl o g i c a lo rn o t ; a c c o r d i n gt ot h er e l a t i o no ft h ex m l s c h e m af i l e sh i e r a r c h y , i tc a nb ea s s i s t a n tt og e n e r a t e c o r r e s p o n d i n gx m ls c h e m af i l eb yo p e r a t i n gat r e ec o m p o n e n t ;t h et r e es t r u c t u r ec a nb e e d i t e d ;s y n c h r o n i z e de d i tm a n yx m l s c h e m af i l e s i tp r o v e dt h a tt h ee d i t o rc l o s e l yc o m b i n e 、) l ,i mp r o j e c t o p e r a t es i m p l ya n db ee a s yt oi m p l e m e n ti nt h ep r o j e c tp r a c t i c e k e yw o r d s :x m l ;s c h e m a ;e d i t o r ;e c o m m e r c e t h e s i s :d e v e l o p m e n ta n da p p l i c a t i o n ! i i 学位论文创新性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他 人已经发表或撰写过的研究成果;也不包含为获得西安石油大学或其它教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做 了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:孑弹 学位论文使用授权的说明 本人完全了解西安石油大学有关保留和使用学位论文的规定,即:研究生在校攻读 学位期间论文工作的知识产权单位属西安石油大学。学校享有以任何方法发表、复制、 公开阅览、借阅以及申请专利等权利,同时授权中国科学技术信息研究所将本论文收录 到中国学位论文全文数据库并通过网络向社会公众提供信息服务。本人离校后发表 或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为西安石油大 学。 论文作者签名: 导师签名:牺 日期:伽夏岁劢 注:如本论文涉密,请在使用授权的说明中指出( 含解密年限等) 。 第一章绪论 第一章绪论 x m ls c h e m a 以简明的语法结构、强大的语义功能,广泛应用在x m l 文档中,其 自身发展也在进一步的完善中。首先,本章阐述了研究背景及意义,国内外x m l s c h e m a 研究现状,x m ls c h e m a 的优越性:最后,介绍x m ls c h e m a 的应用领域和该论文的结 构部署。 1 1 研究背景及意义 1 1 1 研究背景 扩展标记性语言模式( e x t e n s i b l em a r k u pl a n g u a g es c h e m a ,简称x m ls c h e m a ) 是2 0 0 1 年5 月正式发布的、万维网联盟( w o r l dw i d ew e bc o n s o r t i u m ,简称w 3 c ) 组 织所推荐的标准。x m ls c h e m a 不仅可以定义x m l 文档的结构,而且还可以约束文档 的内容。x m ls c h e m a 与文档类型声明( d o c u m e n t r y p ed e c l a r a t i o n ,简称d t d ) 有很大 的不同。一个x m ls c h e m a 文档自身就是一个x m l 文档,它是基于x m l 标记式的语 法结构。x m ls c h e m a 完全使用x m l 作为描述的手段,具有很强的描述能力、扩展能 力和处理维护能力。因此,x m ls c h e m a 比d t d 有更为广阔的发展空间。 x m ls c h e m a 是基于x m l 的语法或s c h e m a 规范,用来定义x m l 文档的标记方法, 是一个由m i c r o s o f t 建议的s c h e m a 规划1 1 。传统的x m ls c h e m a 编辑器已经对s c h e m a 文档的编写提供了强大的平台。例如,a l t o v a 公司的x m ls p y 提供一系列的标记性语 言开发平台。但是,现阶段小型软件的开发不可能对x m ls p y 平台进行集成。一是开发 平台过于复杂,很多的功能用不上:二是源代码不开源。 基于上述原因,很多的软件公司都在开发适合自己需求的、专用的一种或是几种小 型编辑平台。例如:针对d t d 编辑器的开发或s c h e m a 编辑器等平台进行开发。 本课题根据x m ls c h e m a 文档结构特点,在m i c r o s o f tv i s u a ls m d i o n e t0 3 平台下, 采用层次结构化的理念开发的x m ls c h e m a 编辑器。具有操作简单,易于实现、能很方 便地集成在小型软件系统中等特点。所设计的x m ls c h e m a 编辑器很好地满足了用户的 需求,能为信息的处理提供方便的途径,能为企业用户提供良好交互的平台。 1 1 2 研究意义 x m ls c h e m a 是一种描述信息结构的模型,用来定义煳l 文件的文本结构、数据 类型等,是x m l 文件的描述规则。x m ls c h e m a 为一类文档建立了一个模式,规范了 文档中的标记( t a g ) 和文本( t e x t ) 可能的组合形式。 x m ls c h e m a 的诞生,是为了改变d t d 的弊端。例如: ( 1 ) d t d 是基于正则表达式的,描述能力有限; ( 2 ) d t d 没有数据类型的支持,在大多数应用环境下能力不足; 两安石油人学硕一f :学位论文 ( 3 ) d t d 的约束定义能力不足,无法对x m l 实例文档作出更细致的语义限制; ( 4 ) d t d 的结构不够结构化,重用的代价相对较高。 企业将其内部的文档以多种形式进行出版发行,基本上是通过x m l 文档来实现, 这已成为一种发展趋式。为了完成数据的转化,对x m l 文档结构进行定义和解析,以 及验证x m l 文档结构的正确性和有效性是非常重要的。现在有多种x m l 文档结构定 义语言,x m ls c h e m a 是其中的一种。x m ls c h e m a 具有丰富的数据类型、简明的语法 结构、有效的约束结构等优势;x m ls c h e m a 既能与x m l 文档结构保持一致性的语法, 又具有对数据类型进行扩展和限制等多种优势。 对x m l 文档结构的定义和解析等基本功能的实现,很多公司都投入了大量的人力 和物力进行开发研究。本课题基于此种情况,采用组件化的设计思想来完成一个便于集 成的x m ls c h e m a 编辑器,来对x m l 文档结构进行定义和解析。 1 2x m ls c h e m a 研究现状 1 2 1 国外现状 x m l 大纲标准的发展经历了较长的过程。早在x m l1 0 标准尚未确定之前,w 3 c 就已经对x m l 大纲进行研究。1 9 9 8 年1 月5 日,w 3 c 接受“x m ld a t a ;1 9 9 9 年2 月1 5 日,又提出了“x m l 大纲需求报告”( x m ls c h e m ar e q u i r e m e n t s ) :1 9 9 9 年5 月6 日,提出“x m l 大纲工作草案”;1 9 9 9 年1 1 月5 日,x m l 大纲工作草案被修改,分为 结构( s t r u c t u r e ) 和数据类型( d a t at y p e s ) 两个部分;2 0 0 0 年2 月2 5 日,发布了新的 大纲草案,其中增加了一个初级部分,即x m ls c h e m ap a r to - p r i m e r ,该初级部分是非 正式的文档,目的是简单明了地介绍x m l 大纲的基本机制,使读者能够迅速地理解并 用x m l 大纲语言来建立x m l 结构。2 0 0 1 年5 月2 日,在香港召开的w w w l 0 会议上, w 3 cx m ls c h e m a ( p a r t0 ,l 和2 ) 成为w 3 c 推荐的正式标准。 x m ls c h e m a 是继d t d 之后的第二代用来描述x m l 文档结构的标准。x m ls c h e m a 是对x m l 文档进行类型定义的语言,用来规定x m l 文档的数据类型及组织方式。 x m ls c h e m a 标准的发展过程大致如下: x m ls c h e m ap a r t0 :是一个非交互性文档的初级版本,它提供了一个容易读和容易 描述的x m ls c h e m a 结构。其目标是使用x m ls c h e m a 语言快速地创建一个s c h e m a 文 档结构。 x m ls c h e m ap a r tl :声明了x m ls c h e m a 是一种定义性质的语言结构,提供了很多 的方法对x m l1 o 的文档内容进行描述,包括给x m l 加上命名空间。 x m ls c h e m ap a r t2 :提供了标准化的数据类型,用大量标准化的文档资料来加以完 善。一系列w 3 c 的出版物和最新的修订报告,可以在w w w w 3 c t o m 的官方网站上看到, 这是w 3 c 所推荐的定义x m l 文档结构的唯一标准,最终成为全球公认的x m l 环境下 首选的数据建模工具。 第一章绪论 x m ls c h e m a 是按标准x m l 规则编写的,更容易掌握。x m ls c h e m a 不仅可以定 义x m l 文档结构,而且还允许约束文档的内容。x m ls c h e m a 本身就是一个x m l 文档。 x m ls c h e m a 完全使用x m l 作为描述手段,具有很强的描述能力、扩展能力和处理维 护能力。 1 2 2 国内现状 x m ls c h e m a 在国内也成了w e bs e r v i c e s 技术中需要的基本工具。x m ls c h e m a 用 一套预先规定的x m l 元素和属性来创建,这些元素和属性定义了文档的结构和内容模 式,国内正在积极将x m ls c h e m a 应用到各个领域中去,目前研究的热点主要是基于 x m ls c h e m a 的验证和解析。但是,国内这方面的应用并不广泛。 基于x m ls c h e m a 的验证功能主要分为两个研究方向:全文验证和局部验证。全文 验证的方法已经比较成熟,通常的做法是利用一些程序开发工具自带的类库和函数来完 成x m ls c h e m a 的全文验证功能;局部验证的概念是近几年才提出的,中国科学技术大 学的张昱等人曾在2 0 0 5 年提出过一种用x e r c e s 4 进行基于x m ls c h e m a 的局部验证算 法。该局部验证算法可以获取指定节点的s c h e m a 定义、简单类型值的检查、复杂类型 值的检查和指定节点值的d 约束检查等。 基于x m ls c h e m a 的解析功能是以引用了d t d 或s c h e m a 的x m l 文档为输入,通 过一定的解析技术,从文本形式的x m l 文档里面提取数据和结构,并将平面文件形式 的x m l 文档转化为结构化的树型数据。同时还要保证x m l 文档是良好的( w e l l f o r m e d ) 和可以验证的。目前几种流行的解析技术有:文档对象模型( d o c u m e n to b j e c tm o d e l ) 、 基于x m l 的简单a p i ( s i m p l ea p if o r ) 【m l ,s a x ) 、基于x m l 的数据流a p i ( s t r e a m i n ga p i f o rx m l ,s t a x ) 等。 1 3 使用x m ls c h e m a 的优越性 使用x m ls c h e m a 能够很好地规范和验证有效的x m l 文档。与d t d 相比,x m l s c h e m a 具有下面几个明显的优势: ( 1 ) x m ls c h e m a 使用x m l 语法。换言之,所创建的x m ls c h e m a 文档本身就是一 个符合x m l 规范的x m l 文档。这就意味着可用简单的x m l 解析器来处理x m l s c h e m a ,而不像d t d 那样需要专门的解析器来处理。 ( 2 ) x m ls c h e m a 支持名称空间。随着越来越多的数据处理使用了x m l 技术,信息 的相互联系变得日益普及和深入,名称空间的作用日显重要。 ( 3 ) x m ls c h e m a 支持多种数据类型。x m ls c h e m a 不仅支持d t d 中所有的原始数 据类型,还支持整数、浮点数、日期、时间、逻辑值、u r l 等多种数据类型。此外,还 允许用户根据需要自定义各种简单或复杂的数据类型。 西安石油大学硕士学位论文 ( 4 ) x m ls c h e m a 具有更为强大和灵活的定义能力。例如可以规定x m l 文档中多个 元素出现的先后顺序,规定某个元素出现的次数,规定某个元素或属性的数据类型和取 值范围等。 ( 5 ) x m ls c h e m a 文档本身就是一个格式良好的x m l 文档。因此其中用来定义和描 述x m l 文档内容和结构的语句本身,就是一个个的x m l 元素。确切地说,x m ls c h e m a 文档是用一套预先规定的x m l 元素及其属性创建的,正是这些特定的元素和属性定义 了x m l 文档的结构和内容模式。 ( 6 ) x m ls c h e m a 简单易懂,懂得x m l 语法规则的人都可以立刻理解它。 x m ls c h e m a 的上述特点方便了开发者和用户。因为可以使用相同的工具来处理 x m ls c h e m a 和其它x m l 信息,而不必专门为s c h e m a 使用特殊工具。采用x m ls c h e m a 已成为x m l 发展的一个趋势。 下面,以一个最简单的例子来分析x m ls c h e m a 的语法结构。 一个简单的x m l 文档如下: 天涯明月刀 古龙 叫书本 如果用d t d 的形式来定义x m l 文档结构,如下所示: 用x m ls c h e m a 形式定义该结构,如下所示: 要说明的是,在x m ls c h e m a 中,通过对元素的定义来实现对整个文档的定义;元 素是通过名称和数据类型来确定的;数据类型可以分为两种形式,一种是简单的类型 s i m p l e t y p e ,另一种是复杂的类型。简单类型不能包含元素和属性,复杂类型不仅可以 包含属性,而且可以在其中嵌套其它的元素。 x m ls c h e m a 用规定的x m l 元素和属性来创建,这些元素和属性定义了文档的结构 和内容模式。相应的规则指定了每个s c h e m a 元素和属性的合法用途,如果违反了规则, 解析器会拒绝解析s c h e m a 以及和s c h e m a 相关联的文档。 1 4x m ls c h e m a 在企业中的应用 x m ls c h e m a 在各行各业都可以有广泛应用。这里以陕西飞机工业( 集团) 有限公 司( 简称:“陕飞”) 为例,讨论x m ls c h e m a 在企业中的应用方式。 4 第一章绪论 对于飞机制造行业,设计和生产过程会产生很多的文档、图纸、装配图等。这些文 档可能有很多种格式,如:t x t ,d o c ,x l s ,h t m l 等。为了便于格式转换和出版发行等情 况,将它们以统一的格式表示出来是非常必要的,经过长时间的实践证明,使用x m l 是最好的选择。x m l 自身很多的优点恰恰能满足格式转换和出版发行等需求,但将其它 格式的文档转换成x m l 文档之后,并不能很好地识别,因为它并不具备语义。为了解 决这些问题,可以采用x m ls c h e m a 来对x m l 文档进行约束,这就使文档的格式得到 了统一。 为了满足飞机用户需求,提高飞机用户技术资料数字化制作水平,“陕飞 将电子技 术手册确定为重点研发目标。在国内同行业中制定了民用飞机交互式电子技术手册制 作规范,按c a l s ( c o m p u t e r - - a i d e da c q u i s i t i o na n dl o g i s t i cs u p p o r t ) 标准完成了飞 机用户资料审批流程和出版系统的建设,开发了“飞机用户技术资料数字化综合管理系 统”,采用数据库实现了对用户资料数据的统一存储和管理,用先进的网络协同工作模式 代替落后的手工流程,完成了m a 6 0 飞机全套电子技术手册的研制。对于管理系统中的 文档转换,出版发行,审批流程等;大部分都用到了x m l 格式,对其语义约束,基本 上是采用x m ls c h e m a 和d t d ;但是,实践证明x m ls c h e m a 是对x m l 语义约束最佳 的语言。 1 5 课题来源 陕西夏日科技有限公司为“陕西飞机工业( 集团) 有限公司”开发的“用户技术资料 数字化综合管理系统”项目的子课题。 1 6 本文的研究内容和结构 本文的结构和研究内容安排如下: 第一章绪论。介绍了本文的研究背景和意义,在x m l 中应用s c h e m a 的优越性, 通用x m ls c h e m a 编辑器的局限性,国内外x m ls c h e m a 发展现状和研究现状以及本文 的研究内容和结构。 第二章x m ls c h e m a 的基本理论及开发环境。首先介绍了扩展标记语言x m l 的基 本语法规范,x m l 文档的良好结构。然后介绍了x m ls c h e m a 的元素类型,包括简单 元素、复杂元素和数据类型。最后介绍了x m ls c h e m a 的开发环境n e tf r a m e w o r k 和 c 拌n e t 开发环境,以及用c 撑n e t 0 3 开发x m ls c h e m a 的优势。 第三章数据源基本理论及专用数据接口设计。首先,介绍了数据源发展变化情况 其次,讨论了a d o n e t 和n e td a t ap r o v i d e r s ,并将数据集和数据适配器的功能 进行了探讨。最后,讨论了对三种不同的数据库o r a c l e 9 i ,s q l s e r v e r 2 0 0 0 和a c c e s s 2 0 0 3 , 设计和实现的专用数据库接口。 第四章x m ls c h e m a 编辑器的设计与实现。详细讨论了x m ls c h e m a 编辑器的设计 两安石油大学硕j :学位论文 与实现方法。主要包括六个方面内容:第一,讨论了系统的概要设计和详细设计;第二, 分析了x m ls c h e m a 元素类型与树节点的相互关系,将文档解析成树型结构和将树型结 构转换成x m ls c h e m a 文档的基本方法;第三,讨论了x m ls c h e m a 与树型结构同步编 辑的理论依据和实现方案;第四,编辑器的布局控制方法:第五,编辑器的验证方法; 第六,讨论了编辑器的打包发布及集成方法。 第五章x m ls c h e m a 编辑器的测试。介绍了单元测试和发布测试的情况。 第六章总结与展望。对本文的研究工作进行了总结,并指出了本课题未来进一步的 研究方向。 6 第一章x m ls c h e m a 基本规范及最新标准 第二章x m ls c h e m a 基本理论及开发环境 x m ls c h e m a 是对x m l 结构进行定义的规范语言之一,是删l 词汇表规则的描述。 x m ls c h e m a 可用来约束x m l 的文档结构,包括元素及属性的数据类型,并使x m l 文 档具有语义性。 2 1 扩展标记性语言简介 扩展标记性语言( e x t e n s i b l em a r k u pl a n g u a g e ,简称x m l ) ,是互联网联合组织为 便于软件开发人员和内容创作而创建的一组规范,其目的不仅在于满足不断增长的网络 应用需求,更是为了确保在通过网络进行交互合作时,具有良好的可靠性。x m l 是由万 维网联盟( w o r l dw i d ew e bc o n s o r t i u m ,简称w 3 c ) 推出的新一代网络数据表示、传递 和交换的标准,是i n t e r n e t 环境中跨平台的、依赖于内容的技术,是当前处理结构化文 档信息的有力工具【2 j 。 x m l 是一种定义语言的语言,它克服了超文本标记语言 ( h y p e rt e x tm a r k u p l a n g u a g e ,简称h t m l ) 标记的缺点,给了程序员更大的程序设计的自由空间。和h t m l 相比,x m l 的特点主要是: ( 1 ) 可扩展性:x m l 是一种文档的标记语言,它允许使用者创建和使用自己的标记, 而不是h t m l 的有限词汇表。这一点至关重要,企业可以在x m l 电子商务和供应链集 成等应用上来定义自己的标记语言。甚至在特定行业中一起来定义该领域标记语言,作 为该领域信息共享与数据交换的基础。由于x m l 是可扩展的,使其能够在不同的用户 和程序之间交换数据,且不受平台的限制p j 。 ( 2 ) 灵活性:h t m l 很难进一步发展,这是因为它是格式、超文本和图形用户界面语 义的混合体,要同时发展这些混合在一起的功能是很困难的。x m l 则强调形式描述与内 容描述的分离。一方面使x m l 文件的编写者可以集中精力于数据本身,不受描述方式 的细节影响;另一方面允许为相同的数据定义不同的描述方式,从而适合于不同平台, 使x m l 数据得到最大程度的重用性【3 1 。 ( 3 ) 便捷性:x m l 是以文本形式来描述的一种文件格式。使用标记描述数据,可以 具体指出开始元素和结束元素,在开始和结束元素之间是要表示的数据。x m l 的元素可 以嵌套,因此可以表现出层状或树状的数据集合。x m l 作为数据库,既具有关系型数据 库的特点,也具有层状数据库的特点,能够很好的反映现实中的数据结构。x m l 使计算 机能够很简单地存储和读取资料,并确保数据结构的精确。由于x m l 是以文本形势描 述的,所以适合于各种环境的数据交换;因此,x m l 是一种通用的数据结构【4 1 。 ( 4 ) 跨平台性:x m l 是为互联网的数据交换而设计的,x m l 的跨平台特性在于它提 供了不同的数据源之间进行交换的公共标准,从而实现了不同数据源之间的数据交换, 7 两安石油人学硕f :学位论文 一种数据源将它的数据表示成x m l 格式,就能够被另一种数据源有效地识别。x m l 具 有目前为止其它方法所不具备的数据描述特点,控制信息不是采用应用软件的特有形式, 而是采用很容易看懂的标记形式来表现,所以x m l 最适合作为数据交换的标准【5 】。 x m l 作为互联网的新技术,其开放性、严谨性、灵活性和结构性等是网络开发者关 注的重点。人们已经普遍认识到x m l 的作用和巨大潜力,并将x m l 应用到互联网的各 个方面。 2 2x m ls c h e m a 的基本理论 2 2 1x m ls c h e m a 的基本概念 x m ls c h e m a 被称为x m l 模式或x m l 架构,用来定义和描述x m l 文档结构、内 容和语义。x m ls c h e m a 就像一幅蓝图,声明了x m l 文档中允许的数据和结构,具体 规定了x m l 文档中能包含哪些元素,这些元素又可以具有哪些子元素,并能规定这些 子元素出现的顺序及其次数等。另外,x m ls c h e m a 还规定了x m l 文档中每个元素和 属性的数据类型【6 1 。 x m ls c h e m a 是一种描述信息结构的模型。它是用来定义x m l 文件结构、数据类 型等的描述规则。x m ls c h e m a 为x m l 文档建立了一个模式,规范了文档中的标记( t a g ) 和文本( t e x t ) 可能的组合形式。它不仅包括了d t d 能实现的所有功能,而且它本身就 是规范的x m l 文档。 x m ls c h e m a 规范目前有多个不同的版本,其本身还在不断改进和完善之中。本节 仅介绍w 3 c 发布的x m ls c h e m a 规范的基本知识,有关x m ls c h e m a 的更为详细的内 容可参考w 3 c 网站【l 】。 2 2 2x m ls c h e m a 的数据类型 x m ls c h e m a 为声明x m l 文档中的元素和属性提供了丰富的数据类型。这些数据 类型可分为原生的数据类型和派生的数据类型。除此之外,x m ls c h e m a 还允许用户在 其内置的原生数据类型和派生数据类型的基础上,定义自己所需的简单类型和复杂数据 类型。 1 原生数据类型与派生数据类型 原生数据类型是其它各种数据类型的基础,所以不能包含其它元素和属性,但是可 以包含各种具体数据。常见的原生数据类型包括s t r i n g ( 字符串数据) ,f l o a t ( 标准的3 2 位浮点数据) ,d e c i m a l ( 任意精度和位数的十进制) 等。 派生数据类型可以由原生数据类型派生出来,也可以由其它的派生数据类型派生出 来。例如,整数是十进制数据的子集,所以x m ls c h e m a 内置的i n t e g e r 数据类型是由 d e c i m a l 数据类型派生出来的。 2 自定义简单数据类型 8 第一章x m ls c h e m a 基本规范及最新标准 所谓简单数据类型,是指那些本身不包含元素或属性,而只能作为其它元素或属性 的内容数据。s c h e m a 内置的原生数据类型和派生数据类型统称为基本数据类型。自定义 简单数据类型是指在内置的基本数据类型或其它已定义的简单数据类型基础上,对其数 据内容进行限制或扩充而派生出的一种新数据类型。 x m ls c h e m a 特定的s i m p l e t y p e 元素可用来定义一个简单数据类型。下面的例子是 在整数据类型的基础上定义一个取值范围在1 0 0 - - 9 9 9 之间的正整数类型。 上例中,使用x m ls c h e m a 特定的r e s t r i c t i o n 元素来指定i n t e g e r ( 整数) 为所定义 数据类型的基本数据类型,使用x m ls c h e m a 特定的m i n l n c l u s i v e 元素和m a x l n c l u s i v e 元素来规定这个新数据类型的取值范围。 3 自定义复杂数据类型 自定义一个复杂的数据类型,是指定义一个能够包含多个元素或多个属性,或者既 包含元素又包含属性的数据类型。x m ls c h e m a 中c o m p l e x t y p e 元素可用定义一个复杂 数据类型。下面的例子是自定义一个名为u s a d d r e s s 的复杂数据类型。该数据类型包含 了5 个子元素,以及一个名为c o u n t r y 的属性。 x s :a t t r i b u t en a m e = ”c o u n t r y ”t y p e = x s :n m t o k e n ”f i x e d = ”u s “胗 上例中,使用了x m ls c h e m a 特定的s e q u e n c e 元素来指定各个子元素必须按规 定的顺序出现。此外,上面定义的复杂数据类型已用n a m e 属性命名为u s a d d r e s s , 所以可在x m l 元素或属性进行声明时引用这个数据类型【8 】。 2 2 3x m ls c h e m a 根元素的声明 在一个x m ls c h e m a 文档的开头,必须声明一个且只能声明一个名为s c h e m a 的根 元素。这个根元素不但表明了该文档为x m ls c h e m a 文档,更重要的是在其中指明了所 使用x m ls c h e m a 名称空间及其它一些信息。 x m ls c h e m a 根元素的一般声明格式如下: 9 西安石油大学硕- | 二学位论文 其中,“x s :s c h e m a 表示是s c h e m a 文档的根元素;“x m l n s ”是用来声明名称空间的专 用关键词,这里的名称空间h t t p :w w w w 3 o r g 2 0 0 1 x m l s c h e m a 被映射到】【s 前缀,因而 在该文档下面的语句中均可用x s 前缀来表示这个名称空间。 2 2 4x m ls c h e m a 元素及其属性的声明 创建一个x m ls c h e m a 文档的目的就是要对相应x m l 文档中出现的元素及属性进 行描述并加以规范,这是在x m ls c h e m a 文档内通过特定的声明语句来完成的。 1 对x m l 属性的声明 在x m ls c h e m a 中,需要通过其特有的a t t r i b u t e 元素,对x m l 文档中出现的各种 属性进行声明。 下面的例子声明了一个名为l e n g t h 的属性,且规定该属性值的类型为一个十进制数 ( d e c i m a l ) 。 下面的例子则定义了一个名为p o o l 的复杂数据类型,并同时为这个复杂数据类型声 明了多个属性,其中在声明第一个属性时通过r e f 关键字引用了上面已经定义的l e n g t h 属性。 上例中,在声明名为w i d t h 的属性时加入了d e f a u l t = “5 0 ”短语,用来规定该属性的默 认值为5 0 。此外,在声明名为d e p t h 的属性时加入了u s e = r e q u i r e d ”短语,用来规定该属 性是必须的【9 1 。 2 对x m ls c h e m a 元素的声明 在x m ls c h e m a 中,需要通过其特有的e l e m e n t 元素,对x m l 文档中出现的各种元 素进行声明。下面的例子声明了一个名为h a r d w a 他的元素。 x s :e l e m e n tn a m e = ”h a r d w a r e 侈 在声明一个具有复杂数据类型的x m l 文档元素时,通常会包含若干个子元素或属 性的声明。下面例子声明了一个名为s o f t w a r e 的x m l 元素,这是一个复杂数据类型的 元素,具有t i t l e 和c o m p a n y 两个子元素。 i o 第二章x m ls c h e m a 基本规范及最新标准 下面的例子声明了一个名为c l i e n t 的复杂类型x m l 元素,具有c o m p a n y n a m e 、 c 时和s t a t e 三个属性。 下面例子声明了一个名为s t a t i o n e r i e s 的复杂类型x m l 元素,其中包含了p e n c i l 和 p e n s 两个子元素。这里使用了x m ls c h e m a 特有的m i n o c c u r s 元素和m a x o c c u r s 元素, 用来规定最少包含3 个、最多包含6 个p e n c i l s 子元素,最少包含2 个、最多包含5 个 p e n s 子元素。 x s :e l e m e n tn a m e = ”p e n s ”m i n o c c u r s 2 ”2 ”m a x o c c u r s 掣5 ”胁 2 3x m ls c h e m a 的引用 x m ls c h e m a 文档可以用来定义和描述相应的x m l 文档。x m ls c h e m a 提供了x m l 文档的内容模型细节。另外,x m ls c h e m a 文档也可用来验证相应x m l 文档实例的正 确性,用来判断某个x m l 文档实例是否符合规定的约束和需要的格式等。 x m ls c h e m a 文档和x m l 文档之间可以是一个多对多的关系。换言之,一个x m l s c h e m a 文档可以用来规范和验证多个同类型的x m l 文档;而一个x m l 文档也可以使 用多个x m ls c h e m a 文档来定义和描述。显然,在使用一个x m ls c h e m a 文档来验证某 个x m l 文档时,必须在这个x m l 文档的根元素中指明用来验证该文档的x m ls c h e m a 所在的位置。 如果在一个x m ls c h e m a 文档的根元素中包含了一个特定的t a r g e t n a m e s p a c e 属性, 并以此指明了该文档的目标名称空间,则在相应的x m l 文档的根元素中就可以通过 s c h e m a l o c a t i o n 属性以及w 3 c 的s c h e m a 实例名称空间声明短语,来指定所引用的x m l s c h e m a 文档。 w 3 c 的s c h e m a 实例名称空间声明形式如下: 西安石油人学硕士学位论文 x m l n s :x s 2 h t t p :w w w w 3 o r g 2 0 01 x m l s c h e m a i n s t a n c e 如果在x m ls c h e m a 文档的根元素中并没有包含t a r g e t n a m e s p a c e 属性,则在相应 x m l 文档的根元素中,就需要通过n o n a m e s p a c e s c h e m a l o c a t i o n 属性以及w 3 c 的 s c h e m a 实例名称空间声明短语指定所引用的s c h e m a 文档。 2 4x m ls c h e m a 元素的定义 2 4 1x m ls c h e m a 简单类型元素定义 简单类型元素指那些仅包含文本的元素,不包含任何其它的元素或属性。不过“仅 包含文本”这个限定却很容易造成误解。文本有很多类型,它可能是x m ls c h e m a 类 型定义中的一种( 如布尔、字符串、数据等等) ,或者是自行定义的类型。 对数据类型添加限定( 即f a c e t s ) ,可以限制它的内容,或者可以要求数据匹配某 种特定的模式。定义简单类型元素的语法: 此处x x x 指元素的名称,y y y 指元素的数据类型。x m ls c h e m a 数据类型最常用的 类型有:x s :s t r i n g ,x s :d e c i m a l ,x s :i n t e g e r ,x s :b o o l e a n ,x s :d a t e ,x s :t i m e 。 下面是几种简单类型元素定义: 1 简单类型元素的默认值和固定值 简单类型元素可拥有指定的默

温馨提示

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

评论

0/150

提交评论