1. XML介绍
1.1. 什么是XML
(1)XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种很像HTML的标记语言。
(2)XML 的设计宗旨是传输数据(目前主要是作为配置文件),而不是显示数据。
(3)XML 标签没有被预定义。您需要自行定义标签。
(4)XML 被设计为具有自我描述性。
(5)XML是W3C的推荐标准。
可在不同的平台中使用,比如javaphp都可以使用xml作为文件配置和数据传输的工具。
1.2. 常见应用场景
XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享。
(1)存储数据,配置相关信息(目前主要应用范围)。
(2)传输数据的载体(现在很少使用,基本使用json传输数据。
1.3. XML的结构
XML是一种树状结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
1.4. XML语法
(1)所有XML元素都须有关闭标签(在HTL,经常会看到没有关书标签的元素)
(2)XML, 标签对大小写敏感,这是错误的</message)
(3)XML文档必须有根元素
(4)XML的属性值须加引号<note date=”12/11/2007">
(5)XML中的注释<!–This isacomment –
(在XML中编写注释的语法与 HTML的语法很相似)
1.5. XML元素
1.5.1. 什么是XML元素
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
一个元素可以包含:
(1)其他元素
(2)文本
(3)属性
1.5.2. XML命名规则
XML 元素必须遵循以下命名规则;
(1)名称可以包含字母、数字以及其他的字符;
(2)名称不能以数字或者标点符号开始;
(3)名称不能以字母xml(或者XML、Xml 等等)开始;
(4)名称不能包含空格。
1.6. XML属性
1.6.1. 什么是XML属性
XML元素具有属性,类似HTML。
属性(Attribute)提供有关元素的额外信息。
1.6.2. 属性使用规范
XML,属性必须加引号。
且不建议是用属性,因为元素基本可以完成属性的功能,且更易读。
1.7. XML解析
1.7.1. XML解析概述
当我们将数据存储在xm1文件之后,我们希望通过程序去读取xm1的内容,通过java基础的I0也是可以读取的,但是十分的麻烦。因此出现了一些解析的方式。
常见的有:DOM解析,SAX解析。
由于目前xml很少作为传输数据的方式,所以解析相关的方法用的也很少,作为了解内容。
1.7.2. 解析方式
(1)DOM解析:将整个xm1文件加载到内存中,并解析成一个Docunment对象。
优点:无素与元素之间保留了层级结构关系,可以进行增删改查。
缺点:xml文件过大时,可能产生内存溢出问题。
(2)SAX解析:速度更快,更有效的方式。它会逐行扫描文档,在扫描的同时进行解析。
优点:速度更快,可处理大的文件。
缺点:只能读取,无法修改,读取后将释放资源。
1.8 .XML约束
1.8.1. 什么是DTD
DTD:文档类型定义,用来约束XML文件,规定文档中元素名称,子元素的名称及顺序,元素的属性等。
我们并不要求学会编写DTD约束文档,能够看懂即可。
1.8.2. Schema
1.8.2.1. 什么是Schema
Schema是XML文档约束,它是DTD约束的替代品,相较于DTD更强大扩展名市xsd,通过命名空间引入使用。
1.8.2.2. 命名空间
如果一个文档中有多个Schema文件,而些文件如果定义了相同的名称的元素,就会出现名字冲突。这就类似于java中如果没有包名,那么class文件就很容易冲突是一样的道理。
引入方式:
默认隐式:xmins="http://xmns.jcp.org/xm1/ns/javaee"
显式方式:xmIns:xsd="http://xmlns.jcp.org/xml/ns/javaee"
1.8.2.3. 使用Schema
(1)将约東文件copy到对应工程中。
(2)打开Schema约束copy命名空间。
(3)编写xm1文件。