XML语法:
一、文档声明
二、元素
三、属性
四、注释
五、CDATA区、特殊字符
六、处理指令(processing instruction)
一、文档声明(没有声明的xml文档成为格式不良好的xml文档)
在编写xml文档时,需要先使用文档声明,声明xml文档的类型。
最简单的声明语法:
<?xml version="1.0"?>
用encoding属性说明文档的字符编码:
<?xml version="1.0" encoding="GB2312"?>(如果有中文一定要声明)
用standalone属性说明文档的是否独立(ie不关注此属性)
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
二、元素 (element)
xml元素指xml文件中出现的标签,一个标签分为开始标签和结束标签,一个标签如下几种书写形式,
例如:
包含标签体:<a>www.baidu.com</a>
不含标签体:<a></a> 简写:<a/>
一个标签中也可以嵌套若干子标签。但是所有标签必须合理嵌套,绝对不允许交叉嵌套,例如:
<a>welcome to <b>www.baidu.com</a></b>
格式良好的xml文档必须有且仅有一个个标签,其他标签都是这个跟标签的子孙标签。
对于xml标签中出现的所有空格和换行,xml解析程序都会当做标签内容进行处理。例如:下面两段内容的意义是不一样的。
第一段: 第二段:
<网址>www.baidu.com<\网址> <网址>
www.baidu.com
<\网址>
由于在xml中,空格和换行都作为原始内容被处理,所以,
在编写xml时,使用换行和缩进等方式来让源文件中的内容
清晰可读的"良好"书写习惯可能被迫改变。
一个xml元素可以包含字母、数字以及其他一些可见字符,但必须遵循下面的一些规范:
(1)区分大小写,例如:<P>和<p>是两个不同的标记
(2)不能以数字和"_"(下划线)开头。
(3)不能以xml(或XML、或Xml等)开头。
(4)不能包含空格
(5)名称中间不能包含冒号(:)。
三、属性
一个标签可以有多个属性,每个属性都有他自己的名称和取值,例如:
<input name="text">
属性值一定要用双引号("")或是单引号(')引起来
定义属性必须遵循与标签相同的命名规范
多学一招:
在xml技术中,标签属性所代表的信息,也可以被改成用子元素的形式来描述,例如
<input>
<name>text</name>
</input>
四、注释
Xml文件中的注释采用<!-- 注释 -->
注意:
xml声明之前不能有注释
注释不能嵌套,例如:
<!-- 大段注释
……
<!--局部注释 -->
……
-->
五.1、CDATA区
(1)在编写xml文件时,有些内容可能不想让解析引擎解析执行
,而是当做原始内容处理。
(2)遇到此种情况,可以把这些内容放在CDATA区里,
对于CDATA区域内的内容,xml解析程序不会处理,
而是直接原封不动的输出。
(3)语法:
<![CDATA[内容]]>
<![CDATA[
<nihao>
<\br>
</nihao>
]]>
五.2、转义字符
对于一些单个字符,若想显示其原始样式,也可以使用转义字符形予以处理。
特殊字符 替代符号
& &
< <
> >
" "
' '
六、处理指令(processing instruction)
简称PI(processing instruction)。处理指令用来指挥解析引擎如何解析xml文档内容。
例如:在xml文档中可以使用xml-stylessheet指定,
通知xml解析引擎,应用css文件显示xml文档内容。
<?xml-stylesheet type="text/css" href="1.css"?>
处理指定必须以<?作为开头,以?>作为结尾,
xml声明语句就是最常见的一种处理指令。
注:使用IE打开xml文档可以使用检测格式是否正常
常见错误:
1.全角符号(比如全角空格)
乱码:
问题:用记事本保存<?xml version="1.0" encoding="UTF-8"?>的xml文档,
用IE打开出现乱码问题。
分析:记事本保存时是按照系统默认的编码方式保存的,中文xp为gb2312,IE按照文档声明的UTF-8打开时出现乱码。
解决:
1.将xml文档说明改成<?xml version="1.0" encoding="GB2312"?>
2.记事本保存时,选择"另存为"指定特殊码表utf-8
3.使用Eclipse随意修改xml的编码方式,不会出现乱码问题,因为它会自动识别编码,保存文件。