1、基本概要:css
XML,全称是eXtensible Markup Language,可扩展的标记语言,是Web服务的基础之一,使用XML,用户能够定义本身须要的标记。而用户建立的标记可使用文档类型定义DTD(Document Type Definition)来定义,可是若是须要准确地描述数据的类型信息,而且便于计算机程序处理XML,则应该使用XSD大纲来定义新的标记。函数
2、XML的做用编码
1.存取数据:spa
将数据存储到XML文件中供应用程序使用,例如:要在Web应用程序中显示页面的当前位置,能够将全部的页面信息存储到一个XML文件中,XML文件中元素之间的关系对应着页面之间的关系,而后应用程序读取XML文件中元素内容就可获得当前页面信息。orm
2.使内容与表示分离:xml
XML标记描述的是文档的结构和意义,也就是数据的实际内容,它不描述如何格式化并显示这些数据,显示数据的任务须要其余语言来描述。对象
3.提升数据共享的兼容性:blog
不兼容的两个系统可使用同一XML文件来交互数据,不一样的应用程序均可以使用同一XML来访问数据。继承
3、XML文挡结构接口
XML文档结构内容主要包括序言和文档元素,区分字母大小写.
1.XML声明:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
version 表示版本,encoding表示编码,standalone表示该XML文件是否与其余文件关联使用(yes表示不关联使用,默认是no:可关联使用)。
2.处理指令:<?Processing_Instruction_target Processing_Instruction_Information>
处理指令能够不遵照XML语法规则,是用来处理XML文档的应用程序提供信息的,XML解析器将其原封不动的交给应用程序处理。
好比在XML文档中,有可能包含一些非XML格式的数据(如:样式表),这些数据XML处理器没法处理,咱们就能够经过处理指令来通知其余应用程序来处理这些数据,如:
<?xml-stylesheet href="hello.css" type="text/css"?> ,其中"xml-stylesheet"叫作处理指令的目标,它必须标识到用到的应用程序
3.注释:<!--注释的内容 -->,注释是对文档结构或内容的解释,他们不属于XML文档的内容,XML解析器不会处理他们。
4.字符和实体引用:相似HTML中的 这种东东,XML五个字符实体引用:
实体 | 实体引用 | 意义 |
lt | < | <(小于号) |
gt | > | >(大于号) |
amp | & | &(和) |
apos | ' | ' (单引号) |
quot | " | " (双引号) |
5.CDATA区:相似于HTML中的<pre></pre>标签的做用,在CDATA区内,全部的标记和实体引用都被忽略,而被XML处理程序一视同仁地看成字符数据对待。当须要在XML文档中显示包含标记的文本时,就可用CDATA区。CDATA区的使用形式以下:<![CDATA[ 内容 ]]>。注意:CDATA区不能嵌套使用
6.元素:XML文件的主要结构,一个元素就表明一项信息。元素一般包括 元素名称、开始标记、属性、文本内容、结束标记。
<elementName attlName="att1Value" att2Name="att2Value" ... />或<elementName ...>文本内容</elementName>
4、XML命名空间
1.什么是XML命名空间:相似于C#中的命名空间,是XML文档中添加在同名元素前的标识符,用于区分不一样意义的同名元素,固然任何元素前均可以添加命名空间用以区分同类元素集合,任何合理的惟一的字符串均可以作XML命名空间,如统一资源定位符(URI)、统一资源名称(URN)、全局惟一标识符(UUID)、全球惟一标识符(GUID)等等。
2.XML命名空间的做用:区分不一样意义的同名的元素,防止同名元素解析错误
3.使用方法:<namespacePrefix:elementName xmlns:namespacePrefix="命名空间">...</namespacePrefix:elementName>
其中的namespacePrefix叫作命名空间前缀,是表明该命名空间的一个字符串,这样写可以避免长度较大的命名空间写在元素前头影响解析和阅读。
4.做用范围:命名空间都是在某个元素内声明的,而它的做用范围就是该元素。该元素以及它的子元素中没有其余限定的元素均可以引用这个命名空间。
5、XML经常使用的两种解析机制
1.DOM
DOM即文档对象模型,基于DOM的XML解析器会将XML文档转换为一个对象模型的集合(即DOM树)加载在内存,应用程序就是经过操做DOM树来实现对XML文档任意数据进行随机操做的,利用DOM接口的机制也称做随机访问机制。
DOM四个基本接口:①Document接口:对文档进行操做的入口,继承于Node接口;②Node接口:其余接口的父类;③NodeList接口:一个节点的集合,包含该节点的全部子节点;④NamedNodeMap接口:一个节点的集合,经过该接口,能够创建节点与节点之间的一一映射的关系,从而用节点名能够直接访问特定的节点。
优势:操做随机性、灵活性
缺点:当XML文档内容较大时,对内存的需求很高,且操做效率低下
2.SAX
SAX,XML简单应用程序接口,即事件驱动接口,SAX会从头至尾顺序解析整个XML文档,当遇到一个节点的开始或结束时,会触发事件,并激活相应的事件处理函数,应用程序经过这些事件处理函数实现对XML文档的访问。SAX提供的是顺序访问机制,对于已经分析过的部分,不能再倒回去从新处理,SAX分析器只是顺序的检查XML文档中的字节流,判断当前字节的合法性,再触发事件,而事件处理函数自己是由应用程序来实现的。
优势:对内容较多的XML文档解析效率高
缺点:只适合对XML文档进行"读"的操做,不适合"写“,操做缺少灵活性