XML
1 概述:
XML(Extensible Markup Language):可扩展标记语言
文件后缀名:.xml
作用:①作为使用框架的配置文件 ②用于传输数据
2 XML 与 HTML
区别 | XML | HTML |
---|---|---|
语法 | 语法松散,标签自定义 | 语法严谨,开闭严格,大小写敏感,标签预定义 |
作用 | 传输和存储数据 | 前端显示页面 |
3 XML组成部分
3.1 文档声明
<?xml version="1.0" encoding="utf-8"?>
- 文档声明必须放在第一行
- 属性列表
- version –文档符合XML1.0规范,我们学习1.0
- encoding –文档字符编码,比如”GB2312”或者”UTF-8”
- standalone –文档定义是否独立使用
- standalone=”no”为默认值。yes代表是独立使用,而no代表不是独立使用
3.2 标签名定义要求
- 包含数字、字母、其他字符
- 不能以数字和标点符号开头 (但是可以以
_
和$
开头) - 不能包含空格
3.3 属性
-
属性值必须用引号(单双都可)引起
-
一个元素可以有多个属性
<元素名 属性名1="属性值1" 属性名2="属性值2">
3.4 CDATA
有些内容可能不想让解析引擎解析执行,想要原样展现文本,需要设置CDATA区
<![CDATA[
文本......
]]>
4 约束
4.1 约束的作用
约束文件用于规定xml文档的书写规则
约束文件类型:①DTD文件 ②Schema
4.2 DTD约束 (Document Type Definition)
- 本地DTD文档
<!DOCTYPE 根标签名 SYSTEM "dtd 文件的位置">
- 网络DTD文档
<!DOCTYPE 根标签名 PUBLIC "dtd 文件的位置">
- 局限性
4.3 Schema约束(xsd文件)
- 引入
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>
xmlns
:表示默认的命名空间
xmlns:xsi
:确定 Schema 文件的版本
xmlns:aop
:表示使用xsi作为前缀的命名空间
xsi:schemaLocation
:命名空间 - XDS文件位置
5 XML解析
5.1 DOM解析(Document Object Model)
在应用程序中,基于 DOM 的 XML 分析器将一个 XML 文档转换成一个对象模型的集合(通常称 DOM 树),应用程序正是通过对这个对象模型的操作,来实现对 XML 文档数据的操作。通过 DOM 接口,应用程序可以在任何时候访问 XML 文档中的任何一部分数据,因此,这种利用 DOM 接口的机制也被称作随机访问机制。
然而,由于 DOM 分析器把整个 XML 文档转化成 DOM 树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。所以,DOM 分析器对机器性能的要求比较高,实现效率不十分理想。
优点:操作方便,可以对文档进行 CRUD 的所有操作
缺点:占内存
5.2 SAX解析(Simple APIs for XML)
与 DOM 不同,SAX 提供的访问模式是一种顺序模式,这是一种快速读写 XML 数据的方式。当使用 SAX 分析器对 XML 文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
优点:不占内存,一般用于手机 APP 开发中读取XML
缺点:只能读取,不能增删改