解析器与应用程序接口.pptxVIP

  • 0
  • 0
  • 约4千字
  • 约 36页
  • 2022-04-13 发布于上海
  • 举报
1 解析器与应用程序接口 6.1 解析器 处理一个XML文档的第一步是解析,解析的结果通常是创建一个文档对象模型DOM或者产生一系列的简单应用程序接口SAX事件. 第1页/共36页 在利用程序处理XML文档时,如果要程序能够理解XML文档的含义,则必须要书写一个能够识别XML文档信息的语法分析程序,即所谓的XML解析器(也称为XML处理程序). XML解析器的作用是用来检查一个XML文档,确保其格式是正确的.当XML文档有一个相关的DTD或者模式XML Schema时,解析器也要确保文档是有效的.同时把XML数据的内容和结构以规定的方式送到第二层(即XML应用层) 第2页/共36页 6.1.1 XML文档的解析过程 (1)读入一个XML文档; (2)检查XML文档是否合乎语法规则; (3)检查是否有错误,则将XML文档转变成为可被应用程序使用的格式,即构建一个应用程序能使用数据结构,如果有错误,解析器必须分析处理错误; (4)解析输出 第3页/共36页 6.1.2 验证解析器和非验证解析器 一个XML文档可以分成三种:非法的,格式正确的,有效的. 格式正确的文档如果符合DTD或 XML Schema规则,就称为”有效的文档” 第4页/共36页 XML解析器也可以分成两大类: (1)进行有效性验证的:这类解析器在检查文档是否符合”格式正确的”基本要求的基础上,进一步检查看文档是否符合DTD或XML Schema定义中对文档结构的要求,从而判断文档是否有效。 第5页/共36页 (2) 不进行有效性验证的解析器 这一类解析器只负责检查XML文档是否是否满足“格式正确”的有关规定,但不会对XML文档所引用的外部DTD进行分析,检查。 在XML规范中规定,不论进行有效性检验的解析器,还是不不进行有效性验证的解析器,如果有发现文档内容有违反格式正确性约束的地方,都必须报告。 第6页/共36页 6.1.3 解析器和应用程序 XML是用来表示数据的,但最终数据还得处理,需要编写程序来进行。有时,也需要动态生成XML文档,这时,需要编写一段程序或一个脚本去创建一个XML文档。 解析是最基本的可重用服务,要实现代码的重用,就必须解决接口的标准化问题,W3C制定了一套书写XML解析器的标准接口—DOM.其它人员也开发了一些规范,如SAX 第7页/共36页 DOM和SAX都是应用程序对XML文档的操作接口规范。但两者的侧重点不同: 一般说来,DOM适用于不断地寻找一些元素、修改文档或随机地访问文档; SAX一般用于应用程序只需要单遍读取文档内容,不需要在开始处理前建立整个数据结构。 第8页/共36页 DOM模式图 第9页/共36页 SAX模式 第10页/共36页 6.2 文档对象模型DOM 1 什么是DOM W3C文档对象模型(DOM)是一个能够让程序和脚本动态访问和更新文档内容、结构和样式的语言平台” 2 DOM用来做什么? W3C DOM提供了标准的HTML和XML对象集,并有一个标准的接口来访问并操作他们 第11页/共36页 3 DOM的版本有哪些? DOM被分为不同的部分(核心,XML和HTML)和不同的版本(DOM 1/2/3) 第12页/共36页 6.2.2 DOM解析器 DOM解析器把XML文档转化为可以通过程序访问的结点树。它读入并分析整个文档,然后构建一个驻留内存的该文档的DOM结点树。此后,应用程序就可以使用DOM接口通过结点树访问文档的内容,并根据需要修改文档。 第13页/共36页 一个XML文档不论简单还是复杂,经过DOM解析器解析后,其中的信息都会被转化成一棵结点树。在这棵结点树中,有一个称为“Document”的根结点,这个结点作为整个文档的入口。所有其它结点包括文档的根元素结点都是这个结点的后代结点。结点树生成之后,就可以通过DOM接口访问、修改、添加、删除、创建树的结点和内容。 第14页/共36页 DOM的基本结点类型包括: 文档结点、元素结点、属性结点、文本结点、CDATA、注释结点、处理指令、文档片段、其它类型结点共9种结点。 第15页/共36页 6.2.3 使用DOM接口访问文档 DOM提供的是一个与平台和语言无关的接口标准,它通过定义一系列的对象和方法,提供了对DOM树的结点进行各种随机操作。 第16页/共36页 DOM接口规范中的几个基本接口: (1)Document:代表整个XML或HTML文档 (2)Element:提供了获取,修改XML元素名称和属性的方法; (3)Node:一个Node接口实例代表了树中的一个结点; (4)NodeList:用于表示有顺序关系的一组节点,它提供了获得结点个数和当前结点的方法,这样就可以迭代访问各个结点; 第17页/共36页 (5)NameNodeMap:这种接口也

文档评论(0)

1亿VIP精品文档

相关文档