本节要点:css
1 XML文档声明编码
表示该文档是一个XML文档,以及遵循哪一个XML版本的规范。3d
规范:<?xml 版本信息(编码信息)(文档独立性信息)?>code
文档声明在XML文件中是可选的第一项,推荐在每一个XML文档中都包含文档声明。若是在XML文件中写出了声明就必须包含version属性,表示XML的版本,截止目前XML只有一个版本,即1.0。在XML声明以前不准有任何内容,包括空格。xml
示例:<?xml version=“1.0” encoding=”UTF-8” standalone=”no”?>blog
文档声明属性:ip
encoding属性(可选的):注明XML文档使用的字符编码方式。采用Unicode编码时能够在XML文档声明中省略字符集编码,当XML文档使用非Unicode编码时,必须在XML文档声明中指定其字符集编码utf-8
如:< ?xml version=“1.0” encoding=”gb2312”?>文档
standalone属性(可选的):说明文档是不是独立的,yes(缺省)——该文档没有依赖外面的任何文件而能够独立存在,no——该文档依赖于外面的某个文件字符串
若是同时设置了encoding和standalone属性,standalone属性要位于encoding属性以后。
2 元素
XML的基本组成单位是元素,元素由标记来定义,标记包括起始标记<>和结束标记</>,属性要写在起始标记内。在XML中,全部元素必须有结束标记。
语法样式:
<元素名 属性名=“属性值”>
元素内容
</元素名>
1) 元素内容
能够是其余元素标记、简单的文本、没有任何信息、其余元素标记和文本内容混合等。
嵌套
在一个元素中能够嵌套若干个子元素,以下:
XML标记不能交叉,以下:
2) 元素关系
在XML中,各元素之间是相互关联的。包含在另外一个元素中的元素称为子元素,包含子元素的元素称为父元素。嵌套子元素必须完整地包含在它的父元素中
3) 根元素
根元素指没有被嵌套在其余元素内的元素,最高层元素,仅一个。XML文档中全部元素都是根元素的子孙元素。
4) 空元素
不包含任何内容的元素。
3 命名规则
在XML中,可使用本身须要的元素来扩展标记语言。
命名基本规则:
判断对错,如:
区分大小写:
流行的命名规则:
4 元素属性
元素属性是用来对元素作进一步说明的:
在XML中,属性值必定要用双引号或者单引号引发来,不然将被视为错误,推荐先使用双引号。属性区分大小写。
属性也能够被改成使用子元素来描述,可是推荐使用子元素描述数据。
属性不能包含多个值。
5 CDATA & PCDATA
5.1 CDATA
术语 CDATA 指的是不该由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,由于解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,由于解析器会把该字符解释为字符实体的开始。
某些文本,好比 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了不错误,能够将脚本代码定义为 CDATA。
CDATA 部分中的全部内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束,能够在CDATA区嵌入其它语言的代码。
示例:
<?xml version="1.0" encoding="utf-8" ?>
<people>
<![CDATA[ <!-- !和[之间不要有空白 -->
<teacher>
<name>yeah</name>
<sex>Boy</sex>
<age>22</age>
<add>&address;</add>
</techer>
]]>
</people>
5.2 PCDATA
PCDATA指的是由XML解析器解析的内容,看成通常的文字资料来解读。
PCDATA区是指:
有些字符不能直接写在pcdata区,如<、&等。
6 注释
注释的内容会被程序忽略而不作解释和处理。
注:不要把注释放在XML的声明以前;注释不能嵌套使用。
7 处理指令
为处理XML文档的应用程序提供提示信息
处理指令格式:
<?处理指令名 处理指令信息?>
<?xml-stylesheet type=“text/css” href=“book.css”?>
XML解析器会把处理指令原封不动地传送给应用程序,由应用程序来解释这个指令,按照它所提供的信息进行处理。