




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 xx 学院 20 xx20 xx 毕业论文(设计)毕业论文(设计) 论文论文(设计设计)题目题目 XML 文档与关系数据库转换 院院 系系 名名 称称 计算机科学与技术系 专业(班级)专业(班级) 计算机科学与技术 姓名(学号)姓名(学号) 指导教师指导教师 系负责人系负责人 二二OxxOxx年五月十五日年五月十五日 2 目录目录 目录目录 .2 摘要摘要 .1 ABSTRACT.2 第一章绪论第一章绪论.3 1.1 研究背景.3 1.2 研究的目的和意义.3 1.3 国内(外)研究现状.4 1.4 论文的主要工作.4 1.5 本章小结.4 第二章第二章 XML 技术简介技术简介.5 2.1XML 简介.5 2.2XML 的结构.5 2.3XML 的优势.6 2.4XML 模式语言.7 2.4.1DTD.7 2.4.2Schema.8 2.4.2DTD与Schema区别.9 2.5XML 解析器.10 2.5.1SAX .10 2.5.2DOM.11 2.6 本章小结.13 第三章数据库简介第三章数据库简介.14 3.1 数据库定义.14 3.2 数据库简史.14 3.3 数据库的应用及特点.15 3.4 本章小结.15 第四章第四章 XML 与数据库关系与数据库关系.16 4.1XML 是数据库吗?.16 4.2XML 与数据库.16 4.3XML 与数据库转换的原理.17 4.4 本章小结.17 第五章第五章 XML 与数据库转换与数据库转换.18 5.1XML 到数据库之间的转换.18 5.2 基于表的映射.18 5.3 基于对象的映射.19 5.4 关系数据库到 XML 的转换.22 5.5 本章小结.22 3 第六章基于第六章基于 SCHEMA 的的 XML 到关系数据库的转换到关系数据库的转换.23 6.1SCHEMA示例 .23 6.2XMLSCHEMA到对象模式的转换 .23 6.3 对象模式到关系数据库模式的转换.25 6.4 本章小结.25 第七章第七章 XML 与数据库转换的具体实现与数据库转换的具体实现.26 7.1 需要分析.26 7.2 开发环境介绍.26 7.3XML 与数据库转换具体过程.26 7.4 系统测试.28 7.5 关键模块源代码.29 结论结论.32 参考文献参考文献.33 致谢致谢.34 1 摘要摘要 XML 作为新一代 Internet 语言,具有极大的灵活性、可扩展性、自描述性 和简单性,是目前数据交换的主流语言。以 XML 作为数据交换的格式离不开 XML 文档转换技术的强力支持。 XML 的出现为 Internet 上数据存储和数据交换提供很大发展空间。围绕 XML 在数据库存储方案的讨论是当今的热门话题。在分布式系统中,使用 XML 结构化数据来处理数据交换具有很大的优越性。由于核心业务系统几乎全 是采用关系数据库来存储数据,因此把数据从 XML 文档形式转换为关系数据 库形式或者把数据从关系数据库形式转换为 XML 文档形式是一个必须解决的 问题。 本文将探讨 XML 和数据库之间的关系,以 XML 与数据库的转换技术为主 要研究内容,提出了 XML 文档转换的模型,阐述了 XML 文档与关系数据库转 换的具体方法。 关键字:关键字:XML,关系数据库,对象-关系数据库,转换 2 Abstract AsthenewlanguageofInternet,XMLhasthecharacteristicsofflexibility,extensibility, self- descriptionandsimpleness,XMListhemainstreamindataexchange.UsingXMLasformato fdataexchangeneedsstrongsupportofXMLdocumenttransformation. TheemergenceofXMLmakesmuchdevelopingchanceforInternetdatastorageanddat aexchange.AndthediscussiononhowtostoreXMLdataindatabasebecomesapopulartopici ntheresearchofcomputerscience.Atthedistributedsystem,usingXMLformattohandledata exchange.havegreatadvantage,Almostallkerneloperationsystemuserelationaldatabaseto storedata,sowemustdealtheproblemofconvertthedatafromXMLdocumentformattorelati onaldatabaseorfromrelationaldatabasetoXMLdocumentformat. ThisarticlewilldiscusstherelationshipbetweenXMLanddatabase,studythetechnolog yoftransformationbetweenXMLdocumentandrelationaldatabase,andexpoundthedetai lmethodofconvertionbetweenXMLdocumentandrelationaldatabase. Keywords:XML,RelationalDatabase,Object-RelationalDatabase,Conversion 3 第一章绪论第一章绪论 1.11.1 研究背景研究背景 XML 是近年来兴起的数据描述语言,即可扩展标记语言。随着 Internet 网 络的发展,WWW 已逐渐成为全球信息传递与共享日益重要的和最具潜力的资 源,这使得 XML 在最近几年内得到了迅速的发展。近年来,网上交易、电子 图书和网上教学等的发展,使得 WEB 数据变得更加复杂和形式多样化,如果 还是利用传统的数据库技术实现和管理这些资源是很难的,有时是根本不可能 的。所以在网络中将 XML 作为数据传输和交换变得越来越频繁,XML 通常在 网络传输中作为中间数据格式,用于数据交换和数据存贮,同时也为开发者提 供了一种开发新类型工具的技术。用户可以使用 XML 技术开发产品,这些产 品不仅可以在 WEB 上运用,而且可以用于电子数据商务系统,以及任何可显 示系统的高级应用。现实中的许多数据仍然存储于关系数据库中,相对于 XML 而言,关系数据库具有成熟的数据管理能力,因此,“以关系数据为存储手段, 以 XML 为数据发布的手段”的数据管理方式成为一种趋势,而这两种数据之 间的集成和信息共享则成了研究的热点。 1.21.2 研究的目的和意义研究的目的和意义 数据库技术的广泛应用已有很长的历史,在这一过程中,许多行业甚至各 个部门都建立了自己的业务系统,并且起着非同寻常的作用。这些业务系统有 可能运行在不同的操作系统平台上,也有可能基于完全不同的数据库管理系统。 与此同时,不同的业务系统往往因为现实生活的交叉和重叠自然有了共享数据 的必要。然而现实就是,我们没有一套很好的数据交换的标准,各种各样的数 据交换方法鱼龙混杂的交织在一起,实现复杂并带有太多的局限性。因此,完 美的数据整合虽然永远是一个遥不可及的梦想,但我们向往并且努力靠近这一 目标。 另一方面,随之 Internet 的兴起以及在全球的普及,它已经日益和我们的工 作和生活紧密的联系在一起,同时也意味着数据的分布性和复杂性大大的增强 了。很显然,这些五湖四海富有价值的数据不仅仅是信息孤岛,它势必经过频 繁的流动、分解、融合等过程,进而彰显和扩大它的价值,客观的导致我们对 数据转换的需求更加迫切和强烈。换句话说,我们需要从极度分散的数据库应 用系统中获取并管理数据,以使数据资源得到最充分的利用。 为了应付这些挑战,我们当然不可能重新设计和开发这些新旧纷繁的业务 系统,这样做当然是不现实的,除了成本、时间等因素外,新设计的系统如何 面向未来的不确定性,如何确保它有足够多的管道无缝连接种种异构的系统。 况且,这些业务系统基本上正在稳妥、高效的运行着。因而,我们需要一个中 介,XML 就是这样的中介之一。XML 的结构化、可扩展性、自描述等最关键 的特征,决定了它在数据交换领域有显著的优势和发展潜力。XML 拥有通用的 4 数据表示格式,进而提供一条异构数据交流的捷径,构筑起数据交换过程中的 良好桥梁。 1.31.3 国内国内( (外外) )研究现状研究现状 在国外,XML 与关系数据库的相关技术己经引起了高校科研院所及商业数 据库公司的关注,其中有代表性的有美国 STANFORD 大学的 Lore 项目,Lore 主要的研发重点是为 XML 定义数据模型与查询语言,支持 XML 数据的存储与 处理;还有加拿大多伦多大学的 XML 搜索引擎 TOX;法国国家信息与自动化 研究院(INRIA)的 Xyleme 计划的 DynamicDataWarehousefortheXMDataoftheWeb(Web 上 CML 数据的动态数据仓 库)项目,该项目的设计目标是将互联网上的所有 XML 数据都整理装入 XML 数据仓库,数据量是 TB 级。 国内相关研究则起始于新世纪之初,一些大学及有实力的软件公司、科研 所都进行了相关的研究。如因科公司的因科 XML 网关(IXG)成功实现 XML 和 传统关系数据库的实时转化和交互,以及 XML 文件和 VoiceXML,WML 等之 间的实时自动翻译等;中科院软件研究所的 XML 与关系数据库转换系统 Xtrans 也实现了 XML 文档到关系数据库数据,以及从关系数据库数据到 XML 文档的双向转换。 目前,许多主流的数据库厂商如微软、Oracle、IBM 和 Sybase 等都在把 XML 支持结合到其产品中,或者提供可在其数据库中使用 XML 的工具。这种 方式很难实现对传统关系数据的改造和继承,仅仅是提供了融合的途径。 在 XML 与关系数据库映射转换研究中,由于 XML 和关系数据库模式表示 的语义、结构关系的机制、方式不尽相同,如 XML 的 DTD 描述有很强的自由 度和表现力,它们的数据语义约束信息在提取、映射、转换等方面的困难性, 造成现有 XML 与关系数据库数据转换的映射算法存在缺陷。大家往往仅考虑 了数据结构信息上的转换,却忽略了数据语义约束的保留。保留约束条件的模 式转换还处于研究阶段,还没有一种行之有效的方法。XML 与关系数据库映射 转换的语义完整性,通用性,双向性及算法等都有待进一步研究。 1.41.4 论文的主要工作论文的主要工作 1、研究 XML 文档到关系数据库数据转换的原理 2、结合实例给出了基于 DTD 文档到关系数据库转换的方法 3、写出一个具体转换系统,可以将 XML 数据转换为关系数据库进行保存; 同时可以将关系数据库中的数据转换为 XML 格式输出。 1.51.5 本章小结本章小结 本章主要介绍了论文的研究背景,阐述了论文研究的目的,以及 XML 文档 与关系数据库转换的意义,提出了 XML 作为一种中介语言,在数据交换中的 作用,并且分析了国内外的研究状况,对论文的任务作了说明。 5 第二章第二章 XML 技术简介技术简介 2.1XML2.1XML 简介简介 XML(eXtensibleMarkupLanguage,可扩展的标记语言)是由 WorldWideWebConsortium(W3C)的 XML 工作组定义的。这个工作组是这样描 述这个语言的:“XML 是 SGML(stadardgeneralizedmarkuplanguage,标准通用 标记语言)的子集,其秒表是允许普通的 SGML 在 Web 上以以前 HTML(hypertextmarkuplanguage)的方式被服务、接受和处理。XML 被设计成易 于实现,且可在 SGML 和 HTML 之间互相操作。” XML 是一套定义语义标记的规则,这些标记讲文档分成许多部件并对这些 部件加以标识。它不象 HTML 或格式化程序。这些语言定义了一套固定的标记, 用来描述一定数目的元素。XML 是一种元标记语言,用户可以定义自己自己需 要的标记。这些标记必须根据某些通用的原理来创建,XML 标记描述的是文档 内容的结构和定义,而不是描述页面元素的格式化。可用样式单为文档增加格 式化信息。文档本身只说明文档包括什么标记,而不是说明文档看起来是什么 样子的。 一篇 XML 文档由标记和内容组成。XML 中有六种标记:元素(elements)、 属性(attributes)、实体引用(entityreferences)、注释(comments)、处理指令 (processinginstructions)和 CDATA 段(CDATAsections)。XML 与 HTML 最显着 的不同是 XML 文档中引入了“文档类型声明”(DocumentTypeDeclarations)。 DTD 使文档可以与分析器交流关于它的内容的元信息。DTD 的出现,赋予了 XML 文档可扩展性、结构性和可验证性,使 XML 具备了类似于数据库的一些 性质,可以利用 XML 来组织和管理信息;又可以与 HTML 一样在浏览器中方 便地表示,在 Internet 上高效地传递和交换。考虑到与 HTML 的兼容,DTD 并 不是 XML 文档必需的成份。具有 DTD 的 XML 文档称作“Valid”,否则就是 “Well-formed”。 目前,处理 XML 文档的方式主要有 SAX 与 DOM 两种。 SAX(SimpleAPIforXML)是一种基于流的、以事件处理方式工作的接口。 SAX2.0 在 2000 年 5 月发布,增强了许多功能,包括对名字空间的支持。 DOM(DocumentObjectModel)则是在对 XML 文档进行分析后,在内存中建立起 一个完整的树结构,然后在此基础上进行各种操作。简单地比较来看,SAX 对 系统资源要求低、速度快,但对文档的操作是只读的;DOM 的处理能力强大, 但要求大量的系统资源,尤其是对于大的文档。而后还出现了 Xpath 和 Xpointer 用以完成 XML 的搜索和转换;XSL、XSLT 和 SOAP 用以完成 XML 的远程对象访问,XMLQueryLanguages 的出现使 XML 查询语言可用于任何 XML 文档。 2.2XML2.2XML 的结构的结构 XML 文档的基本结构由序言部分和一个根元素组成。序言包括了 XML 声 6 明和 DTD(或者 XMLSchema)。DTD 和 XMLSchema 都是用来描述 XML 文档结 构的,也就是描述元素和属性是如何联系在一起的。DTD 本质上是关于 XML 文档中出现的标记和元素结构的语法约束,它可以用来验证一个 XML 文档。 DTD 是一系列关于元素类型(ElementType)、属性(Attribute)、实体(Entity)和符 号(Notation)的定义。它定义了文档所需的标记,比如可在文档里使用的元素类 型,这些元素之间可能的关系,还可能声明元素的属性等。一个 XML 文档中 有且仅有一个根元素,其他所有的元素都是它的子元素。 一个“格式良好”的 XML 文档要满足的特性: XML 声明必须以小写“xml”声明,并设置 version 属性,而且是出现在 第一行; 一定要有根元素且根元素唯一; 所有的标签必须以嵌套式(树状)排列,且嵌套必须正确:子元素应当完全 包括在父辈元素中; 起始标签和结束标签应当匹配,结束标签是必不可少的; 大小写应一致,XML 对字母的大小写是敏感的; 属性必须包括在引号中; 元素中的属性是不允许重复的。 2.3XML2.3XML 的优势的优势 (1)XML 是自描述的。XML 的最大能量来源于它不仅允许定义自己的一 套标记,而且这些标记不必局限于对于显示格式的描述。XML 允许根据各种不 同的规则来制定标记,比如根据商业规则,根据数据描述甚至根据数据关系来 制定标记。XML 实现了用定义它们自己的标记集来说明文档内容的功能,这些 说明的精确度是实现者自己制定的。 (2)XML 支持对文档内容的验证。XML 文档的结构和内容是有其语法定 义的。文档类型定义(documenttypedefiniton,DTD)就是这类语法的一种,正 在形成的还有 XML 的模式。有了模式,就可以方便的验证文档的有效性。 (3)XML 允许开发各种不同专业(比如音乐、化学、数学等)的特定领 域的标记语言。有了这些语言,这个领域的实践者们可以互相自由的交换短文、 数据和信息,而不必担心对方是否利用特殊的、专用的软件来创建数据。事实 上,目前已经开发出了特定领域的标记语言,比如化学置标语言 CML(ChemistryMarkupLanguage),数学置标语言 MathML(MathematicalMarkupLanguage)等。 (4)XML 是非专有并易于阅读和编写的。这使得它成为在不同的应用间 交换数据的理想格式。XML 不是第一种公共文档格式,但它与已有的文档交换 格式相比具有很多优点。XML 是源文档的最佳格式,因为它允许用最佳的输出 格式,例如 HTML,PDF(portabledocumentformat)和 PoatScript 格式,并格式化 应用程序,例如电子数据交换(electronicdatainterchange,EDI)。 (5)XML 是基于 W3C 定制的开放标准,从而使得基于 XML 的应用具有 广泛性。 (6)XML 支持高级搜索。因为可以知晓文档内容的结构和含义(根据它 的语法规则),所以很容易在 XML 文档中进行搜索。在 Internet 上如果 Web 7 页中是 XML 格式的,则搜索会更高效,而且不仅可以搜索数据,还可以在搜 索中加入与数据相关的上下文信息,这样就形成了更精确的搜索机制。 有人说,XML 是下一代 Web 语言,甚至有人说,XML 是 21 世纪的“世界 语”。不管是否确切,这些说法都显示了 XML 的巨大潜力。 2.4XML2.4XML 模式语言模式语言 XML 模式语言就是用来定义 XML 的词汇表和文档结构的语言。XML 的一 系列特性如可扩展性、结构化和自描述性等都要用 XML 模式定义语言来体现。 XML 模式语言有:文档内容描述(DCD)、面向对象的 XML 模式(SOX)、文档 类型定义(DTD)、XDR、XSD 等等。后三种模式定义语言是我们要介绍的。 .1DTD 文档类型定义 DTD(DocumentTypeDefinitions)定义了文档的逻辑结构,是描 述文档语法和语义的一种正式语法。它规定了文件中的元素命名,存放位置, 组合方式等。一个 DTD 内嵌在 XML 文档中,也可以是一个外部文件。DTD 用 于定义文档的语法,而文档的语法反过来能够让 XML 语法分析程序确认某个 页面标记使用的合法性。DTD 定义页面的元素、元素的属性以及元素和属性之 间的关系,例如 DTD 可规定某个表项只能在某个列表中使用。 DTD 的特点的特点 DTD 有不少缺陷: 1)DTD 是基于正则表达式的,描述能力有限; 2)DTD 没有数据类型的支持,在大多数应用环境下能力不足; 3)DTD 的约束定义能力不足,无法对 XML 实例文档做出更细致的语义限 制, 如出现约束(基数性)?、*和+可以分别指定“零或一”、“零或多个”、 “一 个或多个”,但很难表达“七到十二之间“; 4)DTD 不够结构化。 当然,使用 DTD 也有好处,如可以利用大量成熟的 DTD 工具,使得开发 应用代价维持在一个相对较低的水平。习惯使用 DTD 的人不必担心 DTD 的落 伍问题,因为已经出现了若干 DTD-to-XML 的 Schema 转换工具如 dtd2xs,Dtd2Xs 能把复杂的 DTD 转换成 XMLSchema。基于以上原因,目前 DTD 的使用者仍大有人在。遇到以下情况时,我们仍要首选 DTD: 文档规则的简洁表示很重要。 希望下游用户能够通过内部参数集覆盖并将类型专门化。 文档规则主要考虑元素的嵌套而不是内容的语义约束。 惯常使用的工具支持 DTD 胜于支持 XMLSchema。 DTD 的语法的语法 作为描述 XML 文档的一种模式,DTD 使用一种特殊的语法来声明出现在 XML 文档中的每个对象(元素、属性等)。元素声明采取语句的形 式,含有元素的名称和它的内容模型,内容模型简单的列出了该元素可能的子 8 元素,如下所示。 如上所示,DTD 描述了一个置标语言的语法和词汇表,定义了文档的整体 结 构以及文档的语法。图中表示 article 元 素由 title 和 author 元素组成。*代表 author 可以不出现,或出现多次。 .2Schema Schema 的特点的特点 相对于 DTD,Schema 具有以下的优点: (1)一致性:Schema 使得对 XML 的定义不必再利用一种特定的形式化的语 言,而是直接借助 XML 自身的特性,利用 XML 的基本语法规则来定义 XML 文档的结构,用户和开发者可以使用相同的工具来处理 Schema 和其它 XML 信 息,而不必专门为 Schema 使用特殊工具。 (2)扩展性:Schema 对 DTD 进行了扩充,引入了数据类型、命名空间,从 而使其具备较强的可扩展性。 (3)互换性:利用 Schema,我们能够书写 XML 文档以及验证文档的合法性。 另外,通过特定的映射机制,还可以将不同的 Schema 进行转换,以实现更高 层次的数据交换。 (4)规范性:但相比于 DTD,Schema 基于 XML,更具有规范性。利用元素 的内容和属性来定义 XML 文档的整体结构,如哪些元素可以出现在文档中、 元素间的关系是什么、每个元素有哪些内容和属性、以及元素出现的顺序和次 数等等。 但 Schema 也并非完美无缺,如: (1)Schema 远比 DTD 繁琐; (2)尽管存在增强的表达方式,仍然有许多文档规则不能用 Schema 表示,即 Schema 无法做到能够执行 DTD 的所有操作; (3)用于 Schema 的工具不如用于 DTD 的工具成熟。 Schema 的语法的语法 最为正式的 XMLSchema 语言是由 W3C 指定的 XMLSchema 规范,简称为 XSD(XMLSchemaDefinition)。下面给出一个 XSD 文件,并对其语法作一说明: 1 9 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1是 XML 类型声明语句,指明该文档是一个 XML 文档,并且符合版本 1.0 规范。另外,该文档采用 GB2312 编码。 2是 Schema 声明语句,它包含了 Schema 命名空间的声明。本例中用到了 两个命名空间:一是 xmlns=urn:schemas-microsoft-com:xml-data,它指定本文 档是一个 XMLSchema 文档;另一个是 xmlns:dt=urn:schemas-microsoft- com:datatypes,它定义了在本文档中可以使用的数据类型。 3是属性定义语句,它定义了属性“公司”。 4-11是元素定义语句,这里共定义了 8 个元素:姓名、ID、公司、 EMAIL、电话、街道、城市、省份。其中为电话元素定义了数据类型: fixed.14.4。 12-16定义了本 Schema 的二级元素:地址,指明该元素包含三个子元素: 街道、城市、省份。 17-24定义了本 Schema 的三级元素:联系人,它指明该元素包含六个子 元素:姓名、ID、公司、EMAIL、电话、地址。 10 25-28定义了本 Schema 的顶级元素:联系人列表,指明该元素包含一个 子元素:联系人,以及一个属性:公司。 29是结束标记语句,它指明该 Schema 的描述到此为止。 .2DTD 与与 Schema 区别区别 两者的区别在于: (1)XMLSchema是XML文档,而DTD有自己的特殊语法。这样一来你只 需懂得XML的语法规则即可编写Schema,无需学习其他语法规则;xml文件与 xmlschema文件可以用相同的语法分析器来解析,而无须写两套分析器; xmlschema有强大、易用的扩展功能。 (2)XMLSchema利用名域将文档中特殊的节点与schema说明相联系,一 个xml文件可以有多个对应的schema,而用DTD的话,一个xml文件只能有一个 相对应的DTD。 (3)XMLSchema内容模型是开放的,可以随意扩充,而DTD将无法解析 扩充的内容。 (4)DTD只能把内容类型定义为一个字符串。而XMLSchemas允许你把内 容类型定义为整型、浮点型、数据型布尔型或者许多其他的简单数据类型,而 无须重定义。 2.5XML2.5XML 解析器解析器 2.5.1SAX2.5.1SAX SAX(SimpleAPIforXML)和下面将要提到的 DOM 是两种工作原理不同的 XML 解析器。SAX 是一个公共的基于事件的 XML 文档解析标准,由 XML 一 DEV 邮件列表的成员开发。SAX 的基本原理是,由接口的用户提供符合定义的 处理器,XML 分析时遇到特定的事件,就去调用处理器中特定事件的处理函数。 一般 SAX 都是 JAVA 的接口,但其实 C+也可以用 SAX 接口,但 C+的分析 器比较少。 使用 SAXParser 解析 XML 文档,Parser 将在文档中的不同点产生事件,这 些点包括文档的起点和终点、在元素中发现字符时以及其他一些点,然后我们 可以决定如何处理这些事件以及从 Parser 得到的信息。 SAX 能够通过简单、快速的方法对 XML 文档进行处理,它在解析 XML 文 档时通过向应用程序报告解析过程中的事件流来告知应用所解析的文档内容, 如一个元素的开始、结束、遇到可解析字符流等。而且和 DOM 相比而言, SAX 所占用的系统资源更少。 SAX 是基于事件的,也就是说,当它在一个 XML 文档中发现特殊的符号 的时候,它会产生相关的事件,它的优点是当它读到 XML 文档中的每一个部 分的内容时,就会产生一个事件,我们的应用程序就可以在这个事件中写入具 体的处理代码,然后解析器就移动到文档的下一段。由于 SAX 以序列的形式处 理文档,和 DOM 相比,对内存的需求很少,它不需要在内存中建立整个文档 的树结构。当系统资源有限的时候,对大规模的文档来说,SAX 提供了一个更 加有效的方法来解析 XML 文档。 11 SAX 也存在一些缺陷。由于整个文档没有放到内存中,所以它不能随机地 到达文档的某一部分,同时也因为整个文档不在内存中,开发人员必须在处理 过程中按顺序处理信息,所以 SAX 在处理包含很多内部交叉引用的文档的时候 就会有一些困难,不能实现复杂的搜索,同时我们在处理文档部分信息的时候, 必须考虑清楚是否保存相关上下文的信息。 下面以 userinfo.xml 举例 001 vicent SAX 类型的解析器将会向应用程序报告下面一系列的事件: (开始) StartDocument StartElement(“users”) startElement(“user”) startElement(“uid”) Characters(“001”) endElement(“uid”) startElement(“name”) Characters(“vicent”) endElement(“name”) endElement(“user”) EndElement(“users”) (结束) SAX 的优点: (1)己经提供了词法与语法的分析,使用者不必在这上面花费精力; (2)解析大的 XML 文件,SAX 比 DOM 所需内存小得多,因为它并不会因 为 XML 文档尺寸的增加而增加对内存的需求; (3)SAX 允许用户在任何时候终止解析,这样有时用户只需要访问 XML 文 档里信息的一个很小的部分时,用户可以在得到该部分信息后,就终止对文档 的解析。同理,当用户要提取文档中一小部分内容的时候,就不需要把不必要 的数据放到内存里面,从而显著提高内存利用效率和运行速度。 SAX 的缺点: 由于 SAX 解析文档的过程中,整个文档并没有放到内存中,所以它不能随 机的到达文档的某一部分,同时也因为整个文档不在内存中,程序员在处理过 程中必须按顺序处理信息,无法要求访问文档中任意位置的节点,这样加大了 程序编写的难度。 2.5.2DOM2.5.2DOM 12 DOM(DocumentobjectModel)是和 SAX 并列的另外一种 XML 解析器类型。 DOM 与平台、语言无关,是一种 HTML 和 XML 文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江衢州市柯城区教育局下属事业单位补充选调工作人员1人笔试备考题库及答案解析
- 2025年流行病学流行病学调查设计模拟题答案及解析
- 2025四川攀枝花市西区信访局招聘保安人员1人笔试备考试题及答案解析
- 2026招商局积余产业运营服务股份有限公司校园招聘笔试参考题库附答案解析
- 2025福建三明市沙县区部分区属事业单位定向招聘工作人员5人笔试模拟试题及答案解析
- 2026河南能源集团校园大使全国高校招募笔试模拟试题及答案解析
- 2026华能吉林新能源开发有限公司招聘笔试备考题库及答案解析
- 2025中国葛洲坝集团第一工程有限公司招聘7人笔试备考试题及答案解析
- 2025湖南广播影视集团技术调度中心实习生招募令笔试备考试题及答案解析
- 2025年中药学风湿关节炎中药处方调配模拟考试试卷答案及解析
- 铁路工程试验检测员培训考试题土工试题及答案
- 2025年上海银行笔试题库及答案
- 学堂在线 公共管理学 章节测试答案
- 专项质量护理管理制度
- 预防艾滋病、梅毒和乙肝母婴传播登记及随访表
- 医院“十五五”发展规划(2026-2030)
- 教育信息化中的数字孪生技术应用案例分析
- 益海嘉里员工手册
- 膀胱镜检查术后护理常规
- 公司股权分配协议
- 光伏施工项目危险源辨识与风险评价清单(LEC法)
评论
0/150
提交评论