一、什么是 XML文件?css
XML便可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,经过此种标记,计算机之间能够处理包含各类信息的文章等。java
通俗的讲,XML文件通常用来保存有关系的数据。除此以外,在程序开发中,咱们一般用来作各类框架的配置文件。app
二、XML 文件由如下几个部分组成:框架
①、文档声明编码
②、元素3d
③、属性xml
④、注释blog
⑤、CDATA区、特殊字符utf-8
⑥、处理指令(processing intruction)开发
1、文档声明
在编写 XML 文档时,须要首先使用文档声明,声明 XML 文档的类型。
①、最简单的语法:
<?xml version="1.0" ?>
②、用 encoding 属性说明文档的字符编码:
<?xml version="1.0" encoding="utf-8" ?>
常见的字符编码:gbk,gb2312,utf-8,基本上咱们使用utf-8,全世界通用,不会出现乱码的现象。
③、用 standalone 属性说明文档是否独立:
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
standalone有两个属性,yes和no。若是是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;若是是no,则该XML文档不是独立的,表示能够用外部的DTD规范文档。
2、元素
①、XML 元素指的是 XML 文件中出现的标签,一个标签分为开始标签和结束标签,分为两种写法:
一、包含标签体:<user>Tom</user>
二、不包含标签体:<user></user>,也能够简写为<user/>
②、一个标签中也能够嵌套其余的若干个子标签。但全部的标签必须合理的嵌套,毫不容许交叉嵌套:
合理写法:<users>
<name>Tom</name>
</users>
错误写法:<users><name>Tom</users></name>
③、格式良好的 XML 文档必须有且仅有一个根标签,其余的标签都是这个标签的子孙标签。
④、对于 XML 标签中出现的全部空格和换行,XML 解析都会当作标签内容进行处理。好比下面两个是不同的
一、<name>Tom</name>
二、<name>
Tom
</name>
注意:因为在 XML 中,空格和换行都会做为原始内容被处理,因此在编写 XML 文件的时候使用换行和缩进等方式来让原文件中的内容清晰可读的良好习惯可能要被迫改变。
这和 HTML 标签的书写是有点区别的。
⑤、元素的命名规范:
一、区分大小写,例如:<P>和<p>是不同的
二、不能以数字或下划线“-”开头
三、不能以 xml(或XML,Xml)做为开头
四、不能包含空格
五、名称中间不能包含冒号“:”
3、属性
①、一个元素能够有多个属性,每一个属性都有它本身的名称和取值,好比:
<input name="tom" />
②、属性值必定要用双引号或单引号引发来
③、属性的命名规范和元素的命名规范同样
④、XML 文件中,元素属性所表明的信息,也能够改成用子元素来表示,好比:
<input name="tom" />
能够写为:
<input>
<name>tom</name>
</input>
4、注释
①、XML 文件中注释采用:"<!-- 注释 -->" 这样的格式
②、XML 声明以前不能有注释
③、注释不能嵌套,好比下面不合规范:
<!-- 全局注释 <!-- 局部注释 -->-->
5、CDATA区和特殊字符
①、在编写 XML 文档时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,那么咱们就能够把这些内容放到 CDATA区里面,对于 CDATA 区里面的内容,XML 解析程序不会处理,而是原封不动的输出。
语法:<![CDATA[内容]]>
好比:<![CDATA[
<input>
<name>tom</name>
</input>
]]>
注意:CDATA和[内容]之间不能有空格
②、转义字符:对于一些单个字符,若是想显示其原始样式,可使用转义的形式
6、处理指令processing instruction
①、用来解析引擎如何解析 XML 文档内容
好比:在 XML 文档中可使用 xml-stylesheet 指令,通知 XML 解析引擎,应用 CSS 文件显示 XML 文档内容
<?xml-stylesheet type="text/css" href="a.css"?>
处理指令必须以<? 开头,以 ?> 结尾
三、XML 约束
1、什么是 XML 约束?
在 XML 文档中,能够编写一个文档来约束它的书写规范,这称为 XML 约束
2、为何须要 XML 约束?
由于每每咱们写一个 xml 文档,里面的元素基本上是须要肯定的,以便于咱们方便的解析数据。若是没有约束,那编写 XML 文档的人员能够随便写,并且万一元素不当心写错了,这也会对咱们后期解析形成困难。若是有 XML 约束之后,那 XML 文档的元素即是肯定的,不会发生写错的状况(写错了文档会提示报错的)
3、经常使用的约束技术
①、XML DTD(Document Type Definition)
一、引入 dtd 文件的两种方式:
当引用文件在本地时:<!DOCTYPE 文档根节点 SYSTEM "dtd文件的URL">
好比:<!DOCTYPE BookPlay SYSTEM "book.dtd">
当引用文件是一个公共文件时:<!DOCTYPE 文档根节点 PUBLIC SYSTEM "dtd名称""dtd文件的URL">
好比:<!DOCTYPE BookPlay PUBLIC SYSTEM
"-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/-app_2_3.dtd">