已阅读5页,还剩46页未读, 继续免费阅读
(系统工程专业论文)基于异构数据连接的XML建模与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着网络应用和企业决策支持系统的需求持续增长,越来越多的应用需要访问各 种异构数据源,异构数据连接和数据的提取成为时下研究的一个热点。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 ) 技术作为异构数据集成与异构数据交换解决方案有其 先天优势。x m l 包含了大量“自描述”性标记来精确的表示信息的各种含义,它提 供了丰富的数掘构造和解析方法,能够适应多样并且不断变化的网络应用环境,被广 泛应用于异构系统间数据交换和互操作中,为信息建模、交换和计算提供了新的载体。 本文论述了使用x m ld t d 建模技术,分别建立各个异构数据源连接信息模型与 元数据映射模型的方法。并用该方法解决了华中科技大学研究生院信息管理系统学位 办子系统与各院系学生学位信息管理系统的异构问题,实现了研究生院学位办与各院 系异构数据源的连接和异构数据的操作,得以信息共享。 本文在实现异构数据连接及元数据映射模型时,借鉴m d a 开发中的平台无关模 型( p i m ) 到平台相关模型( p s m ) 的映射思想。实现了s q l 语句从平台无关查询到 平台相关查询的转换。文章最后编写了s a x 接1 3 ,用以解析包含异构数据源连接信 息的x m l 文件和包含元数据映射信息的x m l 文件,在p b 环境下实现了研究生院学 位办与各个院系的异构数据源连接和学位信息提取。 关键词:异构数据源,x m l d t d ,s a x ,平台相关模型,平台无关模型 i 华中科技大学硕士学位论文 = = ;= ;= = = 一= : a b s t r a c t w i t ht h ec o n t i n u o u si n c r e a s eo ft h en e e df o rn e t w o r ka p p l i c a t i o n a n de n t e r p r i s e d e c i s i o n m a k i n gs u p p o r ts y s t e m ,m o r ea n dm o r ea p p l i c a t i o n sn e e dt ov i s i tv a r i o t i sk i n d so f h e t e r o g e n e o u s d a t as o u r c e sa n dd a t ac o n n e c t i o na n dd a t as e l e c t i o nh a v eb e c o m e ah o t t o p i c f o rc u r r e n tr e s e a r c h 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 la sas o l u t i o nt oh e t e r o g e n e o u s d a t ai n t e g r a t i o na n d h e t e r o g e n e o u sd a t ae x c h a n g e h a si t si n l x ) m a d v a n t a g e s x m li n c l u d e s a g r e a t d e a lo fs e l f - d e s c r i p t i v em a r k e r st o a c c u r a t e l ye x p r e s s v a r i o u s m e a n i n g so f i n f o r m a t i o n ;i tp r o v i d e sa b u n d a n tm e t h o d sf o rd a t ac o n f o r m a t i o na n dr e s o l u t i o n ;i tc a r l a d a p tt ov a r i o u sa n dd i v e r s en e t w o r ka p p l i c a t i o ne n v i r o n m e n t sa n dt h u si t i s e x t e n s i v e l y a p p l i e di nd a t ae x c h a n g ea n di n t e r a c t i o nb e t w e e nh e t e r o g e n e o u ss y s t e m s ,w h i c ho f f e r sn e w c a r r i e r sf o ri n f o r m a t i o nm o d e l i n g ,e x c h a n g ea n dc a l c u l a t i o n t h ea r t i c l ee x p a t i a t e so nam e t h o do f e s t a b l i s h i n gh e t e r o g e n e o u sd a t as o u r c e st oc o n n e c tt h e i n f o r m a t i o nm o d e la n dt h em e t a d a t am a p p i n gm o d e lb yu s i n gt h ex m ld t d m o d e l i n gt e c h n i q u e t h r o u g h t h i sm e t h o dt h e h e t e r o g e n e o u s n e s s b e t w e e l lt h e s u b s y s t e mo ft h e i n f o r m a t i o n m a n a g e m e n ts y s t e mf o rt h ed e g r e eo f f i c eo f t h eg r a d u a t es c h o o lo fh u s ta n dt h ed e g r e e m a n a g e m e n ts y s t e m s o fe a c hc o l l e g ea n dd e p a r t m e n to fh u s tw a sa c c o m p l i s h e d ;a n d c o n n e c t i o nb e t w e e nt h eh e t e r o g e n e o u sd a t as o u r c e so fe a c hc o u e g ea n dd e p a r t m e n ta n dt h e s u b s y s t e mo ft h ed e g r e eo l 五c eo ft h e g r 龇k m t es c h o o lo fh u s t , a n do p e r a t i o no ft h e h e t e r o g e n e o u s d a t aw e l x r e a t t z e d ,w h i c hm a k e si n f o r n 删o nc o m m o n l y s h a r e c l a tt h er e a l i z a t i o no ft h eh e t e r o g e n e o u sd a t ac o n n e c t i o na n dt h em e t a d a t am a p p i n g m o d e l ,t h ei d e ao fm a p p i n gf r o mt h ep l a t f o r mi n d e p e n d e n tm o d e l ( p i m ) t ot h ep l a t f o r m s p e c i f i cm o d e lf p s m ) i n m d a d e v e l o p m e n tw a s u s e df o rr e f e r e n c e t r a n s f o r m a t i o no ft h e s q lc l a u s e sf r o mp l a t f o r mi n d e p e n d e n tq u e r yt op l a t f o r ms p e c i f i cq u e r yw a sr e a l i z e d f i n a l l y , s a x i m e f f a c e sf o rt h er e s o l u t i o no fx m lf i l e si n c l u d i n gt h eh e t e r o g e n e o u sd a t a s o u r c ec o n n e c t i o ni n f o r m a t i o na n dx m l f i l e si n c l u d i n gt h em e t a d a t am a p p i n gi n f o r m a t i o n w e r ec o m p i l e d w h i c hm a k e st 1 1 ec o n n e c t i o nb e t w e e n t h es u b s y s t e mo f t h e d e g r e eo 衔c e o f t h eg r a d u a t es c h o o la n dt h eh e t e r o g e n e o u sd a t as o u r c e so fe a c hc o l l e g ea n dd e p a r t m e n t , a n dt h es e l e c t i o no f g r a d u a t ed e g r e ei n f o r m a t i o no f h u s t r e a l i z e d k e yw o r d s :h e t e r o g e n e o u s d a t as o u r c e ,x m ld t d , s a x , p s m ( p l a t f o r ms p e c i f i cm o d e l ) ,p i m ( p l a t f o r m i n d e p e n d e mm o d e l ) 1 1 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个 人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者躲训她争 f f 日期:蛔争眵月凹日 | 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书a 本论文属于 不保密口。 ( 请在以上方框内打“4 ”) 、 学位论文作者躲勃捌手 日期:渤忙秽。了日 i 指导教师签名: 华中科技大学硕士学位论文 = = = = = = = = = ; = = = = = = = = = = = = = = = = ;= = = = = = = : : 1 1 研究的背景、目的和意义 1 绪论 在今天这个竞争激烈、注重时效的世界,拥有处理大量各种信息数据的能力,保 证厦时处理各种关键业务,对于电子商务公司、跨国企业、政府部门以及教育机构两 言,都是事业成功的关键。计算机用于企事业单位信息化建设和运用i t 技术辅助管 理已经有几十年历史,建立了为数众多的信息系统。据i d c 统计表明,过去十年,全 球在信息系统上一共投资了1 8 万亿美元。一家典型的大型企业平均拥有4 9 个应用系 统 1 】,如企业资源计划( e n t e r p r i s er e s o u r c e sp l a n n i n g ,e r p ) 、客户关系管理( c u s t o m e r r e l a t i o n s h i pm a n a g e m e n t ,c r m ) 、产品数据管理( p r o d u c t d a t am a n a g e m e n t ,p d m ) 、 人力资源管理( h u m a nr e s o u r c e s ,h r ) 、供应链管t 里( s u p p l yc h a i nm a n a g e m e n t ,s c m ) 、 办公室自动化系统( o f f i c ea u t o m a t i o ns y s t e m ,o a ) ,电子商务( ec o m m e r c e ) 平台等 等,用以帮助企业进行内外部业务的处理和管理工作。这些系统对提高企业效益起了 极大的作用。但是面对不同的管理系统、多元化的计算环境、分布式的网络,如何在 网络环境中存取大量的、自治的和分布的信息资源,是一个巨大的问题。 网络分布数据集成的研究被提上日程。现代社会信息交流越来越多,而不同系统 之间存在不同数据类型和数据格式,甚至存在冗余、重叠的数据。在数据集成的时候, 就需要进行数据的转换,并清理冗余、重复的数据:另一方面,随着业务和计算机应 用的发展,任何企事业单位内部、政府部门等都有可能需要数据集成,所以数据集成 的用途是及其广泛的倒。 华中科技大学研究生院管理信息系统的开发和完善,提高了研究生院的管理水平 和工作效率。但随着网络化的深入发展,与院系的行政管理信息接口上,也集中体现 了上述问题。各个院系根据各自业务需求开发了信息管理系统,加强了各院系自身的 信息化管理,但与研究生院产生了异构的问题。本文中研究生院管理信息系统学位办 子模块系统的开发,将研究生院建设成为研究生院管理信息传输的枢纽,实现信息资 源共享,提高信息的应用价值,实现研究生院信息传输网络化、办公自动化、管理工 作规范化、决策科学化。 华中科技大学硕士学位论文 = = = = = ;= = = = = = = ;= = = = = = = = = = = = = = = = = = = = = = = = = = :; : 1 2 国内外相关领域的发展现状 异构数据集成的巨大市场前景以及众多的技术难题使得数据集成将在长期 段时间内持续成为研究的热点。微软研究员s h a mr a g h a v a n 指出,“异构数据的 集成曾经是、现在是、将来也是一个研究的热点。”正是这一原因,i e e e 的数 据工程( d a t ae n g i n e e r i n g ) 杂志在近几年里推出了多期关于异构数据转换集成的 专题。 由于异构数据的集成中数据转换的重要性,一些大的数据库商家都研制并推出了 一些数据转换工具,如微软的d t s 、i b m 的w a r e h o u s em a n a g e r 、o r a c l e 的w a r e h o u s e b u i l d e r 等,一些研究团体也给予了足够的关注,a b i t e b o u l 等提出了异构数据源的数 据转换日 ,解决方案是采用中间件数据模型和一种脚本语言来映射数据源,并做了一 些任务的自动化研究;b e r n s t e i n 和b e r g s t r a c e s s e r 报告了基于m i c r o s o f ts q l s e r v e r 7 0 的数据集成工具h ,包括数据和元数据的转换;c a r r e r , j o s h ,e ta 1 描述了一个称为 o r a c l em e d i a a r m o t a t o r 的基于o r a c l e 8 的元数据转换和管理工具【5 】,它能够自动从多 媒体数据源中抽取和转换元数据到一个逻辑标注:d a v i d s o na n dk o s k y 开发了 w o l f 6 1 ,可以用来说明复杂的数姑类型和递归结构的数据转换,w o l 映射可以解决 源数据和目的数据之间的不相容。 随着x m l 作为信息交换的主要标准出现,x m l 作为关系、对象数据库系统数据 集成的关键技术的研究开发成为一个及其活跃的领域。在商业领域的许多主要的关系 数据库商已经提供x m l 数据的本地存储和x m l 文档管理,醴及一些用于简易的a p i 来将关系数据导入导出x m l 文档。这种关系模式到x l v l l 模型的已经有多种工具【7 , 如:i b m 的d b 2 x m l e x n t e n d e r 、o r a c l e 的x m l s q l 、m i c r o s o f t 的m s x m l 集以及 s y b a s e 公司的r e s t t l t s e t x m ll a v a 类。 实现对多源异构数据信息的查询处理,在数据集成领域总结出较常用的查询 处理有两种;一是用包装器( w r a p p e r ) 实现对数据源的查询进行封装,将查询任 务交给查询处理器,对于查询能力很弱的数据源( 简称弱数据源) 来说,这种方 法的缺点是包装器的设计相当复杂。如i b m 公司的g a l i c 系统提出封装法 ( e n c a d s u l a t i o na p p r o a c h ) 8 9 1 ,由包装器包装数据源的查询能力,即将查询能否执 行的全部判断任务交给包装器。该方法不受到具体描述语言表达能力的限制,却 2 华中科技大学硕士学位论文 = = = = = = = = = = ;= = = ;= = = = = = = = = j = = = : 加重了包装器的负担。另一种是仅向各数据源发送它们能完成的查询,这种方法 容易造成信息的丢失或大量的无效元组,对弱数据源( 如半结构化数据) 很难找 到一种有效的查询语言。如t s i m m i s l l 0 1 、d i s c o 1 1 1 和v e r s a t i l e 1 2 , 1 3 1 均采用这种方 法。 1 3 本文要研究工作 目前研究生院学位办与各院系中的数据主体都是使用r d b m s 存储管理。为 了简化多源异构数据信息查询处理的实现,本文使用x m ld t d 建模技术,分别 建立关系数据源连接信息模型以及元数据映射信息模型。借鉴m d a 开发中的平 台无关模型( p i m ) 到平台相关模型( p s m ) 的映射思想,可以将实施查询功能 的s q l 语句看成是平台无关模型( p i m ) ;而连接多个异构数据源,通过每个异 梅数据源的元数据模型的映射,就是平台相关模型( p s m ) 的连接查询。 本文用j a v a 语言编写了s a x 接口,用以解析包含异构数据源连接信息的x m l 文件和包含元数据映射信息的x m l 文件。x m l 文档是今后网络数据主要格式, 本文使用x m ld t d 建模,使得文档十分方便于网络传输。m d a 开发模式的底层 元数据交换使用x m l 。本文应用m d a 开发中元数据的思想,使用x m l 建立元 数据模型,将分布异构数据与元数据映射用x m l 表示,并用该方法解决了华中 科技大学研究生院信息管理系统学位办子系统与各院系学生学位信息管理系统的 异构问题,在p b 环境下实现了研究生院学位办与各院系异构数据源的连接和异 构数据的操作,使信息得以共享。 1 4 本文的组织结构 第1 章介绍本课题进行研究的背景、目的和意义,以及国内外在数据集成特 别是查询方面的研究工作,比较了国内外几个相关系统。 第2 章介绍x m l 语言的基本知识以及x m l 语言在数据库中的存储模式和目 前支持x m l 的数据库,然后介绍了d t d 文档对象模型以及它的建模,较深入地 探讨s a x 接口解析x m l 文件。 第3 章介绍m d a 一些基本概念,着重介绍平台无关模型( p i m ) 与平台相关 华中科技大学硕士学位论文 模型( p s m ) 的思想,以及在m d a 中应用广泛的元数据模型和元数据。 第4 章论述系统的设计,介绍整个系统的详细流程,建立多数据库连接模型 以及元数据模型的p i m 到p s m 的映射。 第5 章给出实际的x m l 文件,具体实现了s a x 接口解析这些x m l 文件,并在 p b 中的实现了多数据库的连接。 4 华中科技大学硕士学位论文 = ;= = = = = = = = = = = = = = = = = = = = = = = = = = = = = ;一= : 2x m l 技术 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 ) ,可扩展标记语言是本文建立模型的核心技 术,本章将着重介绍x m l 的d t d ( 文档类型定义d o c u m e n tt y p ed e f m i f i o n ) 的定义 与建模,以及s a x ( s i m p l e a p i s f o rx m l ) 的简单应用程序接口。 2 1 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 ) x m l 是从s g m l 发展的一种简 单、非常有弹性的文本文档格式。它初始的设计目的是为了解决大范围的电子出版的 需要,x m l 渐渐在w e b 和各种场合的各种数据交换扮演了重要的角色【1 4 】。 1 9 9 6 年8 月,一个来自w o r l dw i d e w e b c o n s o r t i u m ( w 3 c ) 里的组织,命名为 s g m le d i t o r i a lr e v i e wb o a r d ( s g m le r b ) ,但这组织最后变成x m l 工作小组。 这个组织的主要目标是:建立一个通用的卷标语言,且其必须容易在w e b 上执行。 s g m le r b 与s g m l 工作小组合作,后来变成x m l s p e c i a l i n t e r e s tg r o u p 。他们决定 了s g m l 的哪些部分可用来建立x m l 卷标语言。x m l 工作小组的重点在于:将网 络出版所需要使用的s g m l 纳到x m l 中。结果,x m l 的确去除s g m l 中许多复杂 的部分,以及所有s g m l 中证实是多余的部分。因此,x m l 保留了s g m l 的主要的 优点: ( 1 ) x m l 为通用的卷标语言,开发者能定义自己的标签集( t a g s e t ) 。 ( 2 ) 文件具有自我描述能力,一份有效文件包含特定文件类别的所有规则。 ( 3 ) 文件的有效性可被确认,藉由使用文件类型定义( d t d ) 中所发现的规则, 处理器可验证文件是根据规则所开发的。 x m l 设计目的: x m l 应该可阻直接在因特网( i n t e m e t ) 上使用。 x m l 应该支持大量不同的应用。 x m l 应该与s g m l 兼容。 处理x m l 文件的程序应该容易编写。 x m l 中的可选项应无条件地保持最少,理想状况下应该为0 个。 华中科技大学硕士学位论文 = = = = = = = = = = = = = = = # = = = = = = = = = = = ;= = = = x m l 文件应该能够让人直接阅读,而且应该有足够的可读性。 x m l 的设计应快速完成。 x m l 的设计应该是形式化的,简洁的。 x m l 文件应易于创建。 x m l 自推出以来其发展前景倍受关注,尤其是在1 9 9 8 年2 月成为w 3 c 推荐标 准以来,受到了广泛的支持。各大软件厂商如i b m 、m i c r o s o f t 、o r a c l e 、s u n 等都积 极支持并参与x m l 的研究和产品化工作,先后推出了支持x m l 的产品或者将改造 原有的产品以支持x m l ,w 3 c 也一直致力于完善x m l 的整个理论体系。我国在这 方面也有长足的进步,不少公司、企业已经把x m l 用于电子商务和应用数据交抉。 x m ls c h e m a 建模方面,很多公司都用x m ls c h e m a 作为数据库建模的语言,很多大 型的数据库管理系统( o r a c l e 9 i 、s q ls e r v e r ) 1 7 1 也支持x m l 应用。在x m l 建立行 业标准方面,国际上已经有化学领域的c m l ,数学领域的m a t k m l 1 6 1 ,移动通信领 域的w m l 。 2 2x m l 语义简介 每个x m l 文件都有逻辑和物理结构。物理上而言,文件由称为实体的单元组 成。一个实体可以引用( r e f e r ) 其他实体,将它们包含在文件中。文件开始于“根( r o o t ) ” 或文件实体。逻辑上而言,文件由元素、属性、c d a t a 数据、处理指令、注释、引 用、字符数据组成,所有这些都在文件中用显式标记指明。x m l 文件首先要求格式 t 确( w e l l f o r m e d ) t 博】。由于篇幅的关系我们简单介绍一下) 姒l 文档的逻辑结构、元 素、属性和c d a t a 数据等主要方面。 x m l 文档的逻辑结构 x m l 文档的逻辑结构由元素( e l e m e n t ) 、属性( a t t r i b u t e ) 、c d a t a 数据( c d s e c t ) 、 处理指令( p i ) 、注释( c o m m e n t ) 、弓l n ( r e f e r e n c e ) 、字符数据( c h a r d a t a ) 组f & t 1 9 1 。 x m l 元素 元素是x m l 文件内容的基本单元。从语法上讲,个元素包含个起始标记、 个结束标记以及标记之间的数据内容。每一个x m l 文档都包含一个或多个元素, x m l 中元素的定义如下1 1 4 j : e l e m e n t := e m p t y e l e m t a gi s t a g c o n t e n te t a g 6 华中科技大学硕士学位论文 = = = = = = = ;= = = = = = # = = = = = = = = ;= = = = = = = z = = = = 一= : s t a g :2 e t a g := e m p t y e l e m t a g := x m l 属性 x m l 属性是用来联系x m l 元素的名称与值对。属性只能出现在x m l 元素的起 始标签( s t a 曲中而不能当作x m l 元素的内容。x m l 属性的定义如下 1 4 j : a t t r i b u t e := n a m ee qa t t v 酊u e e q := s ? _ s ? a t t v a l u e := ”( & fr e f e r e n c e ) + ”f “”( “& “】ir e f e r e n c e ) “” r e f e r e n c e := e n t i t y r e f lc h a r r e f x m l 属性中的属性名称( n a m e ) 必须在x m ls c h e m a 中定义的属性名称,属性值 必须要用单引号( ) 或双引号( “) 引起来,属性值要满足属性定义的要求。违反上面定义 的x m l 文档不满足格式正确的要求。属性值也可以用实体引用和字符引用。 c d a t a 数据 可以把x m l 文件中除标记以外的所有内容都看作是字符数据,而把标记中的所 有内容都看作置标。不过,也有个例外。在一个特殊的标记c d a t a 下,所有的标 记、实体引用都被忽略,而被x m l 处理程序视同仁地当作字符数据看待。 c d a t a 区段以字符f j 字符结束。在这两个定义符 号之间,你可以输入任何字符( 包括 j 或& j ,除了fj 之外) 因为,该字符会 被解释成c d a t a 区段的结束。所有在c d a t a 区段中的字符都被视为元素字符数据 的字义( 1 i t e r a l ) 部分,而不是x m l 标签。x m l 文档中的 不能直接用于字 符数据中,如果在字符数据中有此类符号,必须要用转义字符。如果x m l 文档中的 某一个或多个元素想被当作一般的字符数据,则必须要用c d a t a 标记把它包含起来, c d a t a 数据的定义如下 t 4 】: c d s e c t := c d s t a r tc d d a mc d e n d c d s t a r t := ! c d a t a c d a t a := ( c h a r + 一( c h a r ” 1 ) c h a r + ) ) 华中科技大学硕士学位论文 = = = = = ;= = = = = = # = = = = = = = = = = = = = = = = = = = = = = = = # 一: : c d e n d := 】) c d a t a 数据中不能包含】 ) ,因为这是c d a t a 数据结束的标志,除此之外, 可以包含任何字符数据。x m l 文档中c d a t a 数据不符合以上定义的不是格式正确的 x m l 文档。 x m l 文档的物理结构 x m l 文档的物理结构由实体组成,实体与c 语言中的宏定义类似,可以把名字 和一串字符相联系。这个名字然后在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 文档、d t d 中声明【2 0 1 。 x m l 文档的基本结构 x m l 文档( d o c u m e n t ) 以x m l 声明开始,x m l 声明后面跟着x m l 指令,其后才 是x m l 元素,x m l 指令是可有可无。x m l 文档的结构必须匹配以下定义式: 1 4 d o c u m e n t := p r o l o g e l e m e n tm i s c + p r o l o g := x m l d e c l ? m i s c + ( d o c t y p c d e c lm i s c + ) ? x m l d e c l := v e r s i o n i n f o := s v e r s i o n e q ( v e r s i o n n u m l v e r s i o n n u m ”) e q := s ? 生s ? v e r s i o n n u m := ( a - z a - z 0 - 9 _ : ) + m i s e := c o m m e n t jp 1 1s d o c t y p e d e c l := m a r k u p d e c l := e l e m e n t d e c li a t t l i s t d e c l ie n t i t y d e c l1 n o t a t i o n d e c l i p i l c o m m e n t 由定义可知,x m l 声明的一般形式是: 2 3d t d 文档类型定义 文档类型定义( 简称d t d ) ,它描述了文档中对象( 在x m l 术语中称为元素) 的内容和结构,是描述x m l 数据模式的模式定义语言。符合d t d 的x m l 文档被称 华中科技大学硕士学位论文 为是有效的x m l 文档。具体的说,一个d t d 就是一组规则,它使我们可以规定自己 的元素、属性、实体的集合【2 ”。困此,d t d 基本上就是一种语法,它表明怎样的标 记是允许的,它们出现的顺序,它们怎样被嵌套。从形式语言的角度看,d t d 是语言 的词汇表和结构,描述了允许使用什么样的标记( 即定义新的标记语言) 、标记元素 之间如何相互嵌套,这样使x m l 成为一种元标记语言,可以用来描述其它标记语苦。 各个组织或者个人都可以定义各自的d t d ,近年来,在几个特定专业的领域已经开发 出相应的d t 伊一包括大范围的商业、工程、金融、工业和科学领域。这些d t d 有 助于程序员编写能够理解标记并智能处理标记的软件,同时为数据交换提供了中间模 式。x m l 文档的一个d t d ,可以把它看作数据库系统中的一个模式。然而,它们加 在文档上结构的多少又是易变的。一个结构化的极端是,它们也许可以添加同关系数 据相同的严格结构。另外一个极端是,它们可以允许任何元素类型包含任何元素类型。 作为一种中间状态,它添加不是很严格的结构,对于数据实例,允许具有比传统模式 更多的变化【1 8 1 。虽然x m l 标准并不要求必须使用d t d ,但绝大多数x m l 文档都将 使用d t d 。这是因为当x m l 文档含有d t d 时,对于x m l 文档的存储、查询和交换 都有重要作用。 d t d 结构 d t d 依靠特定的语法来描述x m l 文档的结构,它用单独的字符如:问号、星号 以及加号来描述文件的内容模型。d t d 的基本部件是元素和属性,它们确定了x m l 文件的逻辑结构。我们可以把元素看作一个信息对象,而属性表示这个对象的性质, 使用元素和属性前都要进行声明如下吲: 其中e l e m e n t 是x m l 的保留字。e l e m e n t n a m e 是元素的名称,t y p e 是元素的类 型。x m l 只支持下列四种元素类型: ( 1 ) e m p t y 指元素内容为空,但可以有属性; ( 2 ) e l e m e n to n l y 指元素只可包含子元素; ( 3 ) a n y 指元素可包含任何d t d 允许的内容; ( 4 ) m i x e d 指元素可包含子元素和字符数据的组合。 字符数据的声明为: 9 华中科技大学硕士学位论文 = = ;= = = = = = = = ;= = = = = = = = ;= = = = = = = = = = = = = = = = 其6 p ( # p c d a t a ) 用来表示是字符数据。 属性声明如下: 其中a t t l i s t 是x m l 的保留字;e l e m e n t n a m e 是元素名称;a 恤n a m e 是属性 名称;a t t r t y p e 是属性类型,有字符串类、枚举类、标记类三大类;d e f a u l t 是属性类 型的缺省值。 d t d 的主要特点 ( 1 ) d t d 规定了元素的结构,它是通过使用子元素和属性的名字,同时又使它 们带上下面一些符号( 符号含义见后面的括号中的内容) :( 零个或多个) :+ ( 一 个或多个) ;? ( 零个或一个) ;f ( 选择) 。 ( 2 ) d t d 中的元素可以有二个特殊的属性,一个是i d 属性,它唯一确定了在 一篇文档中的一个元素。另一个是i d r e f ( 或者d r e f s ) 属性,一个拥有这个属性 的元素可以引用另外一个元素( 另外一个元素也必然有d 属性被它引用) 。 ( 3 ) 对于d t d 而言,没有根的概念,符合d t d 的一篇x m l 文档,可以以d t d 中的任何一个元素开始吲。 d t d 的用途: ( 1 ) 提出x m l 文档的结构、模式。 ( 2 ) 通过x s l t ,符合不同d t d 的“l 文档可以进行交换、转换。 ( 3 ) 对于存储、查询优化提供支持。 ( 4 ) 提供用户可视化的界面,对查询提供导航。 ( 5 ) 历史数据规律的总结,对于新产生的数据可以修改模式。 2 4 解析订 l 文档 为了有效的使用x m l ,我们必须通过编程来访问数据。x m l 文档本身节点是 一种由若干节点组成的属性结构,这种特点使得数据更适宜于用面向对象格式来存 储,同时也有利于面向对象语言( c + + 、j a v a 等) 调用x m l 应用程序接口访问x m l 节点 2 3 】。程序开发人员访问一个x m l 文档的内容时,必须通过x m l 语法分析器来 实现。x m l 分析器实际上是一个对x m l 文档进行语法分析的d l l ,应用程序通过 分析器的d l l 接1 :2 1 ,实现对x m l 文档的识别与访问。如果不同的分析器各自定义不 1 0 华中科技大学硕士学位论文 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ;一一: 同的接口,那么会给x m l 应用程序的开发带来很大的不便,因此,面向x m l 文档 的应用开发需要个统一的x m l 数据接口。 x m l 应用程序接口用于对x m l 文档的解析、定位和查询,目前技术包括x m l d o m 和s a x 。应用程序接口在程序开发中的地位如下图2 1 所示 2 4 : 图2 1x m l 与接口关系 本论文使用j a v a 来分析x m l 文件。j a v a 中处理x m l 文档的标准a p 主要有两 种:d o m 和s a x 。d o m 的全称是d o c u m e n to b j e c tm o d e l ,即文档对象模型。s a x 的全称是s i m p l ea p i sf o rx m l ,即x m l 简单应用程序接i z l 。本文实现使用j a v a 的 s a x ,因而下面重点介绍一下s a x 。 2 3 1 d o m 文档对象模型 d o m 是w 3 c 提出的接口规范,是相当复杂的a p i ,将x m l 文档表示成数型结 构2 5 1 。与s a x 不同,d o m 是读写a p i ,可以分析现有x m l 文档和生成新x m l 文 档。每个x m l 文档表示为一个d o c u m e n t 对象。搜索、查询和更新文档时,调用这 个d o c u m e n t 对象及其所包含对象的方法。这样就使d o m 更适合随机访问原文档中 的各个不同部分。但是,d o m 比s a x 所需的内存量大得多,也不太适合流式应用程 序。 x m l 实际上是将数据组织为一棵树,d o m 解析x m l 的原理就是对这棵树的对 象描述。换言之,就是通过解析x m l 文档,为x m l 文档在逻辑上建立一个树模型, 树的节点是一个对象【2 6 1 。通过存取这些对象就能存取x m l 文档的内容。 d o m 的基本接口有5 个:d o c u m e n t 、n o d e 、n o d e l i s t 、e l e m e n t 和a t t r ,下面分 别介绍d o c u m e n t 、n o d e 和n o d e l i s t l 2 4 】: d o c u m e n t :d o c u m e n t 接口代表了整个x m l h t m l 文档,因此,它是整个文 档树的根,提供了对文档中的数据进行访问和操作的入口。由于元素、文本节点、注 释、处理指令等都不能脱离文档的上下文关系而独立存在,所以在d o c u m e n t 接口提 供了创建其它节点的方法,通过该方法创建的节点对象都有一个o v m e r d o c u m e n t 属 华中科技大学硕士学位论文 = = = = = = = = = 2 = = = = = = = = = = = = = = = = = = = = = = = = ;一:一 性,用来表明当前节点是由谁所创建的以及节点同d o c u m e n t 之间的联系。 n o d e :n o d e 接口在整个d o m 树中具有举足轻重的地位,d o n 接口中有很大 一部分接口是从n o d e 接口继承过来的,例如,e l e m e n t 、a t t r 、c d a t a s e c t i o n 等接口, 都是从n o d e 继承过来的。在d o m 树中,n o d e 接口代表了树中的一个节点。n o d e 接口提供了访问d o m 树中元素内容与信息的途径,并给出了对d o m 树中进行遍历 的支持。 n o d e l i s t :n o d e l i s t 接口提供了对节点集合的抽象定义,它并不包含如何实现 这个节点集的定义。n o d e l i s t 用于表示有顺序关系的一组节点,比如某个节点的子节 点序列,它还出现在一些方法的返回值中,例如g e t n o d e b y n a m e 。在d o m 中,n o d e l i s t 的对象是“活”的,就是说对文档的改变会直接反映至9 相关的n o d e l i s t 对象中。例如, 如果通过d o m 获得一个n o d e l i s t 对象,该对象中包含了某个e l e m e n t 节点的所有子 节点的集合,那么
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年全科医生临床诊疗技术考核试题及答案
- 2026年全国零售药店员工培训考试题及答案
- 摩托车驾考模拟考试科目一试题及答案
- 2026年健康管理学理论知识考核试题及答案
- 2025年吉林省公主岭市高考历史检测卷附参考答案AB卷
- 2026年吉林省和龙市高三历史上册期末考试模拟卷附参考答案【巩固】
- MySQL数据库技术与项目应用教程电子教案 项目六-2 数据库编程(函数和存储过程)
- 2026澳洲银行面试题库及答案
- 2026安泰经济面试题库及答案
- 焊剂烧结熔炼工安全操作测试考核试卷含答案
- 用电检查员达标竞赛考核试卷含答案
- 2025北京海淀区高二(下)期末数学试题及答案
- 超星尔雅学习通《高校实验室安全基础课(实验室准入教育)》章节测试含答案
- 《民间文学》课程教学大纲
- 四川省成都市成华区2024-2025学年八年级(下)期末物理试卷(含解析)
- 老年人睡眠改善策略-洞察及研究
- 2025至2030美术馆产业市场深度分析及发展趋势与发展趋势分析与未来投资战略咨询研究报告
- 医学检验试题及答案
- 执业兽医资格重点考点大全2025
- TCFA 0106012-2023 汽车压铸件孔隙率测定方法
- 2025届四川省绵阳市名校联盟英语七年级第二学期期末统考试题含答案
评论
0/150
提交评论