刘春武汉理工大学计算机学院XML基础简介规范性有效性DTDXMLSchema转换XSLT解析DOMSAXXML应用数据存储与数据交换AJAXXML技术与应用(高等学校计算机专业规划教材)1.1XML与HTML的关系1.2什么是XML1.3XML解析器1.4XML的优点1.5XML的应用1.6习题HTML(HyperTextMarkupLanguage)超文本标记语言,是用于描述网页文档的一种描述标记语言。XML(ExtensibleMarkupLanguage)一种类似HTML的可扩展标记语言,它的标记都是自定义的,其设计宗旨是包含和传输数据。GML(1969)SGML(1985)XML(1998)HTML(1993)XHTMLSVGSMILHDML……OEBXMLHTML共同点HTML与XM都是标记语言,都是基于文本编辑和修改的目标显示数据并集中于数据外观描述数据并集中于数据的内容语法不是所有的都需要成对出现标记不区分大小写要求所有的标记必须成对出现大小敏感,即区分大小更新XML允许粒度更新不支持这样的功能标记XML没有固有标记HTML使用固有的标记eXtensibleMarkupLanguage(可扩展标记语言)XML是一种元语言,允许通过使用自定义的格式、标识,交换和处理数据库可以理解的数据基于文本格式,以结构化的方式描述各种类型的数据,并在各种应用之间发送和交换这些数据可以在不同的计算机平台和不同的计算机程序间方便、平稳的交换数据,从而提高了处理数据的效率和灵活性——XML的设计目的从以下四个方面理解XML:(1)XML是一种标记语言标记语言是一种存储结构化数据的规范,即存储数据和数据的含义未标记的数据张三计算机学院18利用标记语言标记数据studentname张三/namedepartment计算机学院/departmentage18/age/student从以下四个方面理解XML:(2)XML是可扩展的X代表“extensible”,这种语言能够根据需要进行扩展,以满足特定情况的需求。利用标记语言标记数据studentname张三/namedepartment计算机学院/departmentage18/age/student标签都是自己定义的从以下四个方面理解XML:(3)XML保持数据存储与显式相分离XML文档中数据存储对于数据的显示没有任何限制,允许用不同的方式来显示同一个XML文档。(4)XML是公共的和被广泛接受的标准有各种使用XML的工具创建XML工具:文本编辑器、XMLNotepad浏览XML工具:IE解析XML工具:MSXML,IE,Java的各种包XML文档示例?xmlversion=1.0encoding=gb2312?rosterstudentID=n101name李华/namesex男/sexbirthday1978.9.12/birthdayscore92/scoreskillJava/skill/studentstudentID=n102name倪冰/namesex女/sexbirthday1979.1.12/birthdayscore89/scoreskillVisualBasic/skill/student/roster?xmlversion=1.0encoding=UTF-8standalone=no??xml-stylesheettype=text/xslhref=show_student.xsl?!DOCTYPErosterSYSTEMstudent.dtd!--此处为注释信息--rosterstudentID=n101name李华/namesex男/sexbirthday1978.9.12/birthdayscore92/scoreskill此学生爱好编程,以下是它编的代码![CDATA[scriptfunctionf1(a,b){if(name=cai&&a0){return1}else{return0}}/script]]/skillskillVisualBasic&C#/skill/student/roster序言文档元素根元素元素注释文档类型声明XML声明属性预处理指令CDATA实体文本XML解析器是用来解析XML数据的程序,它是具有特定编程接口的程序,能把纯文本的XML文件解析成一个具有树形结构的对象,然后对其进行操作。DOMSAXJDOMDOM4JDOMSAXJDOMDOM4JDocumentObjectModuleW3C推荐的用于XML标准规划文档对象模型的接口SimpleAPIforXML用于对XML进行语法分析的事件驱动的XML简单API特定文档模型,它简化与XML的交互并且比使用DOM实现更快合并超出基本XML文档表示的功能,包括集成的XPath支持、XMLSchema支持以及用于大文档或流化文档的基于事件的处理。还提供构建文档表示的选项,通过DOM4JAPI和标准DOM接口具有并行访问功能1.3.1解析器类型1.3.2解析XML文档1、Dom解析(面向文档的对象式解析技术)DOM通过定义层次化对象模型来表示XML文档。解析器在读入XML文档的时候,会建立XML语法和对象模型之间的一一映射。rostern102n101李华男1978.9.1292Java倪冰女1979.1.1289VB1.3.2解析XML文档1.3.2解析XML文档1.3.2解析XML文档1、SAX解析(面向文档的流式解析技术)SAX解析是一种基于事件的解析过程,解析器顺序读取XML文档,产生一个对应的事件流,并向事件处理程序发送所捕获的各种事件。StartdocumentEndElementStartelementCharactersEnddocument主类Handler类实体对象类要解析XML文件实体对象类Handler类主类DOM和SAX的比较DOMSAX文档全部装入内存文档不需要全部装入内存适合对XML文档进行随机访问和修改适合顺序读取XML文档中的内容适合小XML文件适合大XML文件文档驱动模式事件驱动模式每种语言的产生都能完成某些特定的功能,XML作为一种标记语言也不例外。XML最大的优势在于它能对各种编程语言编写的数据进行管理,使得在任何平台下都能通过解析器来读取XML数据。它的优势可归纳为以下几点:良好的可扩展性内容与形式的分离遵循严格的语法要求便于信息的传输具有较好的保值性良好的可扩展性数据交换Web服务Web集成电子商务数据库应用网络出版特定文档的组织系统配置文件本章首先介绍了XML的基本概念,阐述了XML和HTML两者之间的关系,详细介绍了XML解析器的种类和两种解析方法DOM和SAX。最后简要介绍了XML的优点和应用领域。