- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XML解释器与DOM论文
目 录
摘 要 1
1 系统概述 2
1.1 开发模型 2
1.2 实现方案 4
2 加工XML标准 5
2.1 XML标准概述 5
2.2 裁减方案 6
2.3 对最终确定的XML语法的分析 6
2.4 从EBNF到BNF的转换 7
3 加工DOM标准 9
3.1 DOM标准概述 9
3.2 DOM标准的裁减 11
3.3 DOM标准与C++语言的对应 12
3.4 数据同步——DOMString的实现(引用记数) 14
4 系统实现 16
4.1 在LEX和YACC中解析XML文档 16
4.2 内部数据模型 17
4.3 内部数据模型与DOM实现的对应 19
5 系统性能测试 19
5.1 测试方法 20
5.2 测试数据 20
致谢 21
参考文献 21
XML解析器与DOM
【摘要】
因特网极大的改变了人类的活动方式,作为因特网上的“世界语”,XML的地位举足轻重。目前,XML解析器有很多个实现版本,本文讨论了XML解析器的C++实现以及对应的DOM接口。本文所指的解析器是一个轻量级的解析器,并不包括模式验证的部分。其主要任务是为应用程序提供一个简洁、高速、低内存消耗的XML解析接口,并在保证性能的前提下提供尽可能多的DOM的支持。
在本文中,我们将讨论一个解析器的模型,以及如何用LEX和YACC这两个工具来实现这个解析器。最后,还将讨论DOM Level 1Core的C++实现及其与解析器的配合问题。
【】XML Parser DOM
【Abstract】
XML is the language of the Internet, the one that changes our life. There are many different implementations of XML parsers. We discussed one of them which implemented DOM Interface using C++ language. Our parser is a light-weight one. It doesn’t contain the function of well-formed validation. The main purpose is to provide a refine, rapid, low memory-cost XML parsing interface which supports DOM as much as possible.
We will discuss the model of our parser and how to implement it using LEX and YACC. The C++ implementation of DOM Level 1 Core and its co-work ability with the parser will also be talked.
【Keywords】XML, Parser, DOM
系统概述
XML是在因特网上应用的非常广泛的一种数据交换语言,经常被称为“因特网上的世界语”,其应用之广泛可见一斑。
从W3C制定其标准的那天开始,人们研究并实现了许多个XML解析器的版本。其中,WINDOWS平台上比较常见的就是微软所提供的XML PARSER,目前最新版本为4.0。这个解析器以COM技术为基础,对XML标准给予了很好的支持。它提供了验证XML文档有效性(DTD、XML SCHEMA)的功能,并且实现了DOM模型。任何一个软件在强调全面的前提下,必然会损失一部分性能——该解析器速度不够快而且非常耗内存,并且过于复杂了。
绝大部分涉及XML的应用程序,并不需要XML标准里面所规定的所有东西,它们只需要其中的一小部分,并且希望这部分实现起来最好是快速的、低内存消耗的。
本系统旨在为应用程序提供一个简洁、高速、低内存消耗的XML解析器,为了达到这个目标,我们必须对XML标准进行裁减,在此基础上,提供一个便于使用的接口,前提是该接口不能带来太多性能的下降。因此在这个版本的XML解析器实现过程中,我们将XML标准中的DTD部分省去,以流的方式来解析XML文档,解析的结果以内部数据格式(二维表)保存,并采用轻量级的DOM Level 1 Core来对内部数据进行包装,提供一个便于理解和使用的编程接口。
为了节约开发时间并使系统结构明晰,我们采用了LEX和YACC的组合来生成这个解析器。
开发模型
系统采用层的结构作为开发模型,这些层自下而上分别是操作系统文件层、编码层、词法分析层、语法分析层、内部数据层、DOM接口层,如图所示:
各个层的作用如下:
操作系统文件层:负责读取应用程序所指定的
文档评论(0)