毕业设计(论文)XML快速解析技术.doc

上传人:laozhun 文档编号:4027466 上传时间:2023-04-01 格式:DOC 页数:48 大小:749.50KB
返回 下载 相关 举报
毕业设计(论文)XML快速解析技术.doc_第1页
第1页 / 共48页
毕业设计(论文)XML快速解析技术.doc_第2页
第2页 / 共48页
毕业设计(论文)XML快速解析技术.doc_第3页
第3页 / 共48页
毕业设计(论文)XML快速解析技术.doc_第4页
第4页 / 共48页
毕业设计(论文)XML快速解析技术.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《毕业设计(论文)XML快速解析技术.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)XML快速解析技术.doc(48页珍藏版)》请在三一办公上搜索。

1、摘 要本文研究了XML解析技术,介绍了SAX,DOM,和VTD-XML技术以及一种基于XML的数据通信模型。文中首先对XML产生背景和未来的发展趋势进行了介绍,分析了XML文档数据解析的必要性以及快速解析理论。在第二章中具体讲解了在XML文档中的语法和相应的格式和标准。第三章中详细介绍了XML解析方式DOM和SAX,并对两种方式进行了性能的比较,并在最后介绍了VTD-XML解析技术。在分析了现有解析方式优劣的基础上,第四章重点讨论了XML在监控系统的数据通信模型中的设计与实现。关键词:XML解析;DOM;SAX;虚拟令牌环;数据通信模型ABSTRACTThis thesis studies a

2、 parsing technology of Extensible Markup Language,introduces SAX,DOM,VTD-XML and an communicationing model that based on XML technology.In the first part of the thesis,the developed background and developing trend of XML are introduced,the necessity of XMLdocument parsing and fast parsing theory are

3、 also analyzed.The grammar and formsrelated to XML document are discussed in chapter two.The third part introduces thepresent parsing methods DOM and SAX and makes comparison of their performances,and introduces the VTD-XML parsing technology.On the basis of the first three chapters,chapter four dis

4、cusses the design and implement of XML technology in data communicationing model.Keywords: XML parsing;DOM;SAX;VTD;Data Communicationing Model目 录第一章 绪论31.1论文研究背景31.2论文研究内容及结构3第二章 可扩展标记语言32.1XML技术的产生32.2XML文档语法基础32.2.1文档说明32.2.2标记32.2.3实体引用32.2.4注释32.2.5处理指令32.2.6CDATA段32.3XML相关技术和标准32.3.1DTD和模式32.3.

5、2名域32.3.3XLink32.3.4XSL32.4本章小结3第三章 XML解析技术基础33.1解析原理33.2XML解析器工作模式33.3文档对象模型33.3.1DOM结构33.3.2DOM的优缺点33.4基于事件的简单应用编程接口(SAX)33.4.1SAX结构33.4.2SAX的优缺点33.5基于虚拟令牌环的XML解析技术33.5.1VTD-XML概述33.5.2VTD-XML原理结构33.5.3VTD-XML优点33.6本章小结3第四章 一种基于XML的数据通信模型的设计与实现34.1监控系统的数据通信34.2系统模型的建立34.3系统实现34.3.1网络文件传输34.3.2XML文

6、件封装协议34.3.3XML文件控制34.4本章小结3第五章 总结与展望3致谢3参考文献3第一章 绪论1996年,W3C组织开始设计一种Web数据存储和交换的标准,这就是XML(eXtensible MarkupLanguage,可扩展标记语言),它使得现有的因特网协议和软件更为协调,从而简化了对数据的处理和传输。XML所拥有的可扩展性、自描述性、自相容性以及跨文种等优点,使得它非常适于Web上的数据交换与信息发布,被广泛应用到电子商务、电子政务、Web服务等许多领域。目前很多国际著名的公司已完全加入到XML支持者的行列,如微软IE6.0已广泛使用了XML,Netscape新版本也将会支持XM

7、L,其它公司,包括IBM,Adobe,Sun和Xerox等也宣布支持XML,并都在着手相关产品的研制。相对于HTML的“所见即所得”,XML将数据和显示信息分离,被称为“文档数据库”,这就使XML文档很适合于描述数据库中的数据。而其它非标准化、非结构化的数据转换为XML文档后,就可以将大量遗留数据实现信息共享和交换。XML解析技术是操作XML文档的重要环节,它在实现把非结构化数据转换为XML数据的过程中,起着重要的作用1 逯鹏.XML文档解析技术及其应用.郑州工业大学学报.2002年第23卷第4期.。1.1 论文研究背景XML(eXtensible Markup Language)可扩展标记性

8、语言,是W3C组织认可的文档数据格式标准,是SGML(Standard Generalized Markup Language,标准通用标记语言)的子集,保留了SGML主要的使用功能,同时大大缩减了SGML的复杂性。它独立于任何语言和体系结构,是公认的下一代网络标记语言。由于XML文档能应用在不同平台上,实现数据的协同工作,它现在已成为不可缺少的企业技术的一部分。比如,XML增加了在商场中的电子商务和交流沟通,以及公司内部多样数据的综合。XML的使用因此而快速增长,分析家Ron Schmelzer预测,到2006年,XML将由2003年网络流量的3%上涨至24%,并且到2008年将至少上涨至4

9、0%。然而,对不断增长的XML文档的执行引起了一个关键的问题:由于文档中每个元素都包含了相当大的元数据,所以XML文档就包含了大量的数据。这便造成了程序处理的低效,并且给公司网络、处理器和存储结构都带来了很大的负载压力,这就导致了XML的两个关键问题:冗长和性能。1. 冗长:以XML格式储存的数据要比以其他数据库格式储存占有的空间要大的多。2. 性能:由于XML固有的冗余特性,对XML数据的管理将增大应用服务器的负担。1.2 论文研究内容及结构应用XML文档主要有三个技术环节,包括对XML文档的编辑、XML文档的解析和显示或使用XML文档的数据。XML文档的编辑目前有两种方式:一种是使用通用的

10、编辑器生成XML文档,如Notepad;另一种是使用XML IDE(集成开发环境),如XMLSPY等工具。也可以针对具体应用开发某种专用的可视化XML编辑器。XML文档解析的主要任务是检查编辑的XML文档是否是结构完整(Well-formed)和合法的(Validate)。如果XML解析器发现XML文档中的数据或者结构不完整,就会向应用程序报告一个“致命”错误,而且不再会以正常的方式向应用程序传递数据或XML结构。XML的解析技术在XML文档的应用过程中有着重要的作用,它的行为减少了应用程序处理XML数据的负担,为应用程序和数据库提供了可操作的数据。换句话说,XML解析器是XML文档应用的基础

11、。本文章节安排如下:第一章对XML的发展、XML解析技术的分类和本文研究背景进行了简要介绍。第二章介绍了XML文档的特点和XML语法基础以及相关技术和标准,对全文的进一步研究作了基础性的铺垫。第三章首先说明了XML解析的必要性以及解析原理,并详细讲解了基于对象的解析方式(DOM)和基于事件的解析方式(SAX)。在此基础上,进一步比较了两者的优缺点,分析了它们不能够进行普遍应用的原因。然后介绍了VTD-XML解析结构的原理。第四章在前三张的地主之上,重点研究了一种基于XML数据通信模型的设计与实现。第五章是本论文的结束部分,对全文做统一总结,并简要概括了本文未详细讨论的如何使VTD记录具有唯一性

12、的内容。最后是致谢、参考文献。第二章 可扩展标记语言2.1 XML技术的产生上个世纪的80年代,SGML(Standard Generalized Markup Language,标准通用标记语言)作为文档说明工具而被世人所知,并成为国际标准组织(ISO)的一项国际标准,即ISO8879。不过,由于SGML过于详细和复杂,所以一直没有在全球范围内被广泛地采用。而从SGML衍生出来的HTML(Hyper Text MarkupLanguage,超文本标记语言),凭借其简洁性使得每个人都可能创建Web页面并将它们推向外部世界,从而迅速成为在网上制作页面的标准语言格式2 Norman Walsh.A

13、 Technical Introduction to XML.。但是,随着Web的应用越来越广泛和深入,人们渐渐发现HTML的不一致和不可扩展等缺陷严重阻碍了它的进一步发展。尽管HTML推出了一个又一个新版本,却始终满足不了不断增长的需求。1996年11月,在波士顿SGML世界年会上,Internet Homepage的撰写标准HTML被宣告终结,取而代之的是另一个电子文件格式化通用标准XML(Extensible Markup Language,可扩展标记语言)。XML是一个更具弹性、更容易添加新功能而又具有统一标准的语言格式,它的目标是以目前用HTML尚不可能的方法在Web上服务、接受和处

14、理SGML。与用来定义某一类文件格式的HTML等传统标记语言不同,XML本身不是一个单一的标记语言,而是一种元语言(meta-language),可以用来创造类别文件的格式定义,也就是在XML之中创造出很多不同的新标记语言,用来定义不同的文件类别。2.2 XML文档语法基础XML解析器读取两类XML文档:良构文档和有效文档。良构文档语法上正确,满足XML规范描述的生成规则,但不一定符合某个DTD。有效文档则已经针对某个DTD验证过了。XML文档由两个或多个主文档实体组成:文档首部、文档实例以及可能拥有的任何处理指令。文档首部就像一个引导记号,给处理器提供关于如何处理文档主体(即文档实例)的指示

15、。处理指令可任意出现在文档首部或文档实例中。它们用于在XML分析器外给另一个处理应用发送指示。XML文档的基本语法由W3C创建的一个文档所定义的一组规则所规定。在深入了解XML文档结构之前,先需要了解以下几条基本语法规则3 陆新年,陆新宇等.XML揭秘入门.应用.精通.北京:清华大学出版社.2001.6: XML区分大小写,元素的起始标注必须正好匹配结束标注。 所有起始标注必须有结束标注,即所有XML文档都必须包含一个根元素,这个根元素是包含了文档所有内容的最外层元素。 元素必须正确的嵌套。文档中元素不是孤立的(除非只有一个元素根元素),所有元素都必须包含在以根元素开始的元素层次中。 XML用

16、五种预定义实体“<;”、“>;”、“&;”、“&apos;”和“";”来分别代替“”、“&”、“”和“”字符。 XML说明优先,即如果使用一个XML说明,它必须最先出现。为了更好地理解XML语法的主要组成部分,图2.1包含一个用来保存联系信息的XML地址簿。下面用该例子来具体讲解不同XML语法组成部分的作用。 Frank Rizzo 12 12 w Street New York New York 10011 212-555-1212212-555-1213 frizzo Frank's Ratchet Service 图2.1 XML地址簿文件2.2.1 文档

17、说明所有的XML文档都以首部开始,即使首部中没有任何内容。文档首部由出现次序固定的几个部分组成,下面按顺序列出4 Heather Williamson.XML技术大全.北京机械工业出版社.2002:l XML说明文档示例的第一句就是该文档的XML说明,它是XML文档中最先出现的东西,由一个左尖括号、后跟一个问号(没有空格)、再跟三个字符xml组成。该说明有三个组成部分: version=“1.0”是版本说明,表示该文档遵循XML1.0规范; encoding=“UTF-8”是编码说明,表示采用UTF-8作为编码方式; standalone=“yes”是独立说明,指出该文档在一个文件里完成,不需

18、要从外部导入文件。l 各种语句各种语句可能包括注释,它们是描述文档目的的记号。在图2.1的文档示例中,就是注释。注释可以出现在首部或文档实例中,总是以“”字符结束。注释是调试代码的好方法,它不是为机器准备的,而是供人阅读的,因此分析器总是不理会“”中间的一切。此外,注释不能嵌套在定义一个元素名的标注内,且注释中不能再包含注释。l 文件类型说明文件类型声明在XML中用来在文件中详细地说明文件信息,其中包括文件根元素和文件类型定义(Document Type Definition,DTD)5 Elliotte Rusty Harold.XML使用大全.中国水利出版社.2002。文件的文件类型声明对

19、于确定一个文件是否有效或是否仅仅是结构良好的来说是非常重要的。文件类型声明有如下三个主要作用: 指定文件的根元素。 为文件定义元素、属性和实体的细节(内部DTD)。 指出文件的外部DTD。如果DTD完全嵌套在文档中,那么它的说明语句也在该文档中,这叫做嵌套文档类型说明。如果链接DTD,那么说明包括指示XML分析器到哪去寻找该DTD的链接信息,这叫做链接文档类型说明。地址簿文件的例子说明了文件类型声明的这些功能是怎样实现的。在该例子中使用了下面的文件类型声明:在文件类型声明中明确地指定了文件的根元素是addressbook元素,文件的外部DTDAddressBook.dtd在文件的类型声明中也被

20、明确地引用。XML解析器使用这些DTD来验证文件是否有效。2.2.2 标记标记(tag)是XML语法中最显而易见的组成部分,它被用来描述元素。在地址簿的例子中,元素city是由标记和构成的。为了便于理解,可以将“元素”这个主语理解为逻辑上的标记片段,而“标记”是指用来在XML文件中表示元素的文本字符串。XML元素可以是空的,这意味着元素可以不含有任何解析的字符数据。在HTML中的元素br就是一个空元素,因为它不含有任何字符数据。然而XML语法不允许在传统的HTML风格下使用标记来使用元素br。XML中空元素的标记必须在元素名之后用一个斜杠(/)用来指出它是空的。因此,标记在XML中的用法就变成

21、了。HTML中空元素的语法来自结束标记的格式。比如,HTML中元素head被编为一对标记和。第二个标记中的斜杠指出它是这对标记中的结束标记。空元素使用相同的方法来说明没有相应的结束标记。然而,仍然可以以“起始标记/结束标记”的形式来表示空元素。比如,可以使用来表示标记,在XML语法中,这也是合法的。2.2.3 实体引用实体是构成XML文件的基本单位,而这就是实体本身以及通常通过实体引用构成的其它实体。实体引用在XML中被用来为数据篇幅与别名。实质上,实体引用还是XML片段的唯一名称。比如,地址簿文件通过实体引用来使用单引号()与和号(&)作为解析字符数据:Frank's Ratche

22、t Service实体引用在和号和分号之间。在该例中,'是作为单引号与和号的别名的实体引用。通常,XML解析可能会根据这些字符在XML中不同的结构作用来解析这些字符。然而,通过实体引用,可以直接使用它们而不需考虑XML解析器的存在及带来的问题。2.2.4 注释在XML文件中,注释用来表示那些技术上不是文件内容的信息。与编程语言中的注释一样,XML注释被用来提供文件数据的说明,这完全是为了用户了解程序。换句话说,XML解析器和应用程序通常会忽略注释。技术上,解析器将注释返回给应用程序是有可能的,这对开发支持注释的XML应用很有好处。注释可以被用在XML文件有解析字符数据出现的任何地方。

23、为解析字符数据(CDATA)片断是这一规则的唯一例外。注释可以出现在CDATA片段,但他们并不作为注释来处理。注释以结束。对注释的唯一限制就是在注释中不能包含两个连续的连字符。因为这会和XML的注释语法发生冲突。在该例子中,下面的注释被用来描述地址簿中特定的联系人。这个注释中包含的信息不被当作是XML文件数据的一部分。2.2.5 处理指令XML语法不仅仅涉及了字符数据和标记,其中还包含了处理指令。处理指令是一些用来由处理XML文件的应用程序使用的特殊指令。XML解析器并不处理处理指令,相反,它将处理指令返回给应用程序。处理指令通常以小问号和问号()结束。最明显的一个处理指令的例子就是众所周知的

24、xml处理指令,在地址簿的例子中是:这个处理指令指出了这个文件是基于XML版本1.0的。xml处理指令中的version属性使得XML可以持续发展而不会由于存在不同的版本而产生问题。这还使应用程序在试图处理一个不支持版本的文件时,可以提示给用户。2.2.6 CDATA段未解析字符数据片段,也就是CDATA片段,被用来在XML文件中将那些不需要XML解析器处理的内容分开。具体地说,XML文件的CDATA片段包含的是不需要作为XML字符数据解析的内容。通过将CDATA片段之间来定义。下面是一个CDATA片段的例子:!CDATAJack Tors1816 N StreetNew YorkNew Yo

25、rk在该例子中,元素name和元素address不被当作XML标记,而其中的数据也不能被当作解析的字符数据,因为这些标记被放在CDATA片段中。为了使文件中的内容被当作XML标记和解析的字符数据来处理,XML解析器必须能够解析它。由于name标记和address标记被放在了未被解析的CDATA片段中,所以它们不会被解析。尽管这个例子说明了如何将一般的XML元素放在CDATA片段中,通常使用CDATA片段来将一段XML代码引用出来,尤其是在XML帮助以及其他XML文件中。2.3 XML相关技术和标准XML不是一项独立的技术,它包含了很多其他相关技术和标准,例如DTD、XML模式(Schema)、

26、名域(Namespace)、XLink,、XPath、XPointer、XHTML、XSL、CSS、DOM、SAX和SOAP等。下面对其中几项关键技术进行简要介绍。2.3.1 DTD和模式XML提供两种控制文档内容的机制,一种是DTD(Document Type Definition,文档类型定义),另一种是XML模式(Schema)6 Eric van der Vlist.Using W3C XML Schema.。DTD定义文档的语法,而文档的语法反过来能够让XML语法分析程序确认某个文档标记使用的合法性。DTD可以定义文档的元素、元素的属性以及元素和属性之间的关系。例如,DTD能够规定何

27、时及如何使用某元素,该元素表示什么以及如何在软件中处理该元素。DTD分为内部和外部两种。内部DTD被包含在XML主文档之中,而外部DTD则是从XML主文档中分离出来的一个单独的文件。图2.2是XML文档的外部DTD7 邵敏,李力鸿,郑震坤等.XML编程实践网络上的世界语.北京:清华大学出版社.2002.12。属性声明实体声明元素声明实体引用图2.2DTD示例(books.dtd)目前,在几乎所有的行业和领域中,DTD都已存在。开发者常常不需要建立他们自己的DTD,但如果未发现适合自己的已存在的DTD,也可以选择使用现有的DTD的一部分并以它为基础进行开发。由于DTD存在结构封闭、不支持名域、没

28、有数据类型和不是XML文档等若干缺陷,W3C后来开发了XML模式(Schema)。通过提供对结构和内容的约束,XML模式定义一类XML文档。使用模式指出文档中允许哪些元素、它们可能有哪些属性以及它们可能包含什么。XML模式是一个XML文档,可以使用XML工具创建并编辑它。当实际使用模式并将它应用于一个良构XML文档,就会产生一个扩充文档,该过程称为模式检验。模式处理程序将显示这个文档是否符合该模式,即文档是否有效。模式检验比DTD检验走的更远,因为模式可以比DTD对文档强加更多约束(例如指定元素的文本内容)。因此,XML模式虽然类似于DTD,却比DTD功能更强。2.3.2 名域XML名域(Na

29、mespace)是一种“限定”一组元素和属性的方法。它是在一个文档中混合来自多个DTD的元素或多组名字并声明哪些元素和属性来自哪组名字的一条途径。使用XML名域的主要原因有三个:混合词汇、混合文档片断以及确定保留名。使用名域说明将一个URI引用与一个或多个XML元素联系在一起,作为一个前缀将它们相互区分开。如果两个元素同名但URI前缀不同,那么它们就是不同的元素,从而避免了名称冲突,扩大了应用范围。 XML Sample 210 1-868640-34-2 Joe Black Professor 图2.3名域示例从图2.3中可以看出,“title”虽然出现了两次,但由于使用了“bk”和“aut

30、hr”两个不同的前缀,从而很容易地被区分开来8 Birbeck M.XML高级编程.机械工业出版社.2002.。2.3.3 XLinkXLink(XML Linking Language,XML链接语言)可以在XML中创建从某个资源到其他资源的超文本链接。使用XLink创建链接时,其实是指定了两个或更多资源,然后连接它们。连接叫做弧,并有一个方向。XLink表示资源之间或资源各部分之间的一种关系,而资源可以是赋予URI的任何东西。XLink的功能十分强大,与HTML和XHTML相比,它可以多向链接、注解链接、与不止两个端点链接并能够使用外部链接集。下面是一个XML简单链接的例子:this wo

31、rks tooXLink规范引用另外两个重要规范XPath(XML Path Language,XML路径语言)和XPointer(XML Pointer Language,XML指针语言)。XPath用于表达从XML文档中一点到另一点的路径,“/recipeBook/Part3/Recipe3”是一个XPath表达式,意思是要跟踪该链接,应从文档顶层开始,找到recipeBook元素,然后在该元素内找到第三个Part元素,抵达此处后再寻找第三个Recipe元素。XPointer是XLink用来结合XPath的机制,XPointer表达式总是写成xpointer(),括号内是XPath表达式。

32、与XLink一道使用XPath,可以构造一个指向文档内特定点的链接。2.3.4 XSL目前,存在两种显示XML文档的方法,一种是CSS(Cascading Style Sheet,层叠样式表),另一种就是下面主要讨论的XSL(Extensible Stylesheet Language,可扩展样式表语言)。XSL是一种专门为XML设计的样式语言,它直接架构在XML语法之上,是XML的一种应用。XSL由两个标准组成,一个是XSLT(Extensible StylesheetLanguage Transformations,可扩展样式表语言转换),另一个是XSLFO(ExtensibleStyle

33、 Language Formatting Objects,可扩展样式语言格式化对象)。XSLT是一种将XML文档转换成各种格式(如XML、HTML、PDF及SGML等)的新文档的标记语言,人们可以用它按照自己的意愿处理一个XML文档。XSLFO则是描述XSL格式化对象的XML词汇,它提供大量的格式化命令,用来说明新文档以何种方式显示给读者。XML文档XSL样式表XML解析器XML解析器XML解析器源树结果树文档存储成像图2.4XSL的工作过程利用XSL,一个XML文档可以根据不同的表示要求有不同的表示形式。图2.4表示了XSL的工作流程,该流程概括起来说就是:XSL处理器读取一个XML文档和一

34、个XSL样式表,输出符合样式表的XML文档的表示形式。整个过程可以分为两个子过程:树转换(tree transformation)和格式化(formatting)。树转换将源树转换成结果树。其中源树指的是转换前的XML文档,结果树指的是处理器产生的新文档,该新文档可能是另一个XML文件、一个HTML文件甚至一个简单的文本文件。用XSLT表示的转换包含一组模板规则。一个模板规则分为两部分:第一部分是模式(pattern),指定模板规则所适用的XML源文档树形结构;第二部分是模板(template),用来在与此模式匹配时,将结果树的一部分进行输出。XSLT用XPath语言来选择源树中要进行处理的节

35、点,指定处理该节点的不同方式的条件,并产生插入到结果树中的文本。格式化将结果树变为可读的形式。而XSLFO元素的主要作用就是页面管理、流动管理(内容如何“注入”已创建的一系列页面)和段落/字符管理。XSLFO说明了结果树的显示方式,该显示方式是按照格式化对象(formatting object)和格式化属性(formatting property)来描述的。XSLFO文档中的各种格式化对象指明内容在页面中的放置顺序,但格式化的细节如页面的大小、元素的尺寸、颜色、字体等必须由格式化属性来说明。格式化属性是以格式化对象的属性形式出现,格式化对象元素可以包含各种属性,W3C总共定义了两百多个属性,多

36、数属性都可以应用于一个以上的格式化对象元素。使转换与格式化相分离的好处是,能够通过选择一个目标XSL处理器理解的名域,来选择按何种方式格式化试图显示的新文档。最后,需要明确的是,XSL不仅仅是应用样式,当使用XSL处理器时,XML源文档中的信息将被评价、重新安排,然后重新组装。所以人们最终得到的是可以容易地添加、修改和重新排序的灵活的源信息。2.4 本章小结本章主要介绍了XML(eXtensible Markup Language)可扩展标记性语言的产生背景,较为详细的讲解了XML文档的语法基础和组成部分,简要介绍了它的相关标准。本章从总整体上对将要研究XML解析技术做了基础知识的铺垫,以便后

37、续章节的进一步研究。第三章 XML解析技术基础3.1 解析原理XML解析器是XML应用的基础。XML本身只是以纯文本对数据进行编码的一种格式,要想利用XML,或者说利用XML文件中所编码的数据,必须先将数据从纯文本中解析出来,因此,要求必须有一个能够识别XML文档信息的文本文件阅读器(即XML解析器),用来解析XML文档并提取其中的内容。显然,XML解析器在XML应用程序中有着重要的地位。随着XML越来越广泛地被采用,高效解析XML文档也变得越来越重要,尤其是对于那些要处理大量数据的应用程序,这种技术尤为重要。选择合适的XML解析技术对应用系统的性能有着较大的影响。不正确的解析会导致过度的内存

38、消耗和过长的处理时间,从而大大降低系统的整体性能9 刘芳,肖铁军.XML应用的基石:XML解析技术.计算机工程与设计.2005。XML文档是由称为“实体”的存储单元组成的。它包含可解析或者不可解析的数据。可解析的数据由字符组成,其中有些是字符数据,有些是标记数据。标记数据是对文档存储布局和逻辑结构的描述。XML提供了在存储结构和逻辑布局上加上限制条件的机制。XML解析器(处理器)用来读取XML文档,利用它可以访问文档的结构和内容。假定XML处理器代表应用程序执行了这个工作。根据XML处理器如何读取XML文档中的数据结构以及它需要向应用程序提供的信息,规范描述了XML处理器所必需的行为。读取一个

39、XML数据的过程称为解析。XML解析器根据是否验证合法性,可分为验证性和非验证性解析器;而根据解析方式的不同,又可分为基于树的解析器(DOM)和基于事件的解析器(SAX)。XML文档DOMSAXVTD图3.1解析XMLXML解析器3.2 XML解析器工作模式负载均衡器XML解析器应用服务器应用服务器图3.3XML解析器工作模式WEB服务器下面将对XML解析器的工作模式进行简要的叙述。1) 负载均衡器接收来自Internet的入站XML流量。2) 负载均衡器直接将XML流量定向到XML解析器。3) XML解析器解压缩、解析、解释和确认XML流量,然后将它路由给适当的应用服务器。4) XML解析器

40、对应从应用服务器接收到的XML流量进行转换、确认、加密和压缩。5) XML解析器将对XML数据送给负载均衡器,随后这些数据被送上Internet。如图3.2所示,XML解析器把原来由应用服务器承担的许多大量耗费CPU时间的任务卸载到网络上,这使得企业获得线速性能的花费大大降低了。与通过扩展应用服务器来获得相同性能相比,利用XML解析器实现相同性能目标的花费仅为前者的1/10。3.3 文档对象模型3.3.1 DOM结构首先本节将首先介绍一下什么是对象。对象是一个数据包:属性(变量)和方法(函数)的集合都被归类在内。按照对象层次关系,可以通过对象的属性来访问包含在对象中的数据值。方法就是函数,它用

41、来操作对象。方法一般和一个特定的对象联系。事件是浏览器从用户或环境中得到的某种输入,例如,用户提供的事件“click”。事件需要一些操作来触发,为响应这些操作而编写的代码就是事件句柄。实际上,每一个事件都可以是对象。例如:汽车、自行车等都是对象。可以说“自行车”对象拥有一些属性:make、model、year和color。甚至可以说“自行车”对象拥有一些方法:goto()、stop()和reverse()。使用各种语言可以创建不同的对象,这些对象被称为“用户自定义对象”。但是,经常使用的是“内置”对象,这些内置对象可以使用户对Web网页以及Web浏览器进行操作和访问。这套预先存在的对象形成了一

42、个完整的模型,即文档对象模型。对于有效的HTML和格式规范的XML文档,DOM(文档对象模型)是一个API(应用编程接口)。它定义了文档的逻辑结构以及访问和操作文档的方式。在DOM规范中,“文档”这个术语得到广泛的使用。现在,XML越来越多地用来表示存储在不同系统中的不同种类的信息,而很多这种信息以前都被认为是数据而不是文档。XML把这些数据看作文档,并且利用DOM来管理这些数据。DOM是一种基于树型的解析技术,将XML文档一次性解析,生成一个位于内存中的对象树用以描述该文档。它可以实现对整个XML文档的全面、动态访问。DOM是一种与平台和语言无关的接口,它允许程序和脚本动态访问和修改文档的内容、结构和类型。它定义了以下一系列的对象和方法对DOM树的节点进行各种

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号