一、XML文档的组成
一个XML文件一般由以下几部分组成:
- 文档声明
- 元素
- 元素的属性
- 注释
- CDATA区
- 特殊字符
- 处理指令(PI:Processing Instruction)
二、文档声明
- 在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。
- 最简单的语法:<?xml version="1.0"?>
- 用encoding属性说明文档所使用的字符编码,默认为UTF-8。保存在磁盘上的文件编码要与声明的编码一致。
- 如:<?xml version="1.0" encoding="GB2312"?> 告诉浏览器用GB2312格式解析存储在磁盘上的xml文件。
- 用standalone属性说明文档是否独立,即是否依赖其他文档。
- 如<?xml version="1.0" standalone="yes"?>
三、元素
- XML元素指XML文件中出现的标签,一个标签分为起始和结束标签(不能省略)。一个标签有如下几种书写形式:
包含标签主体:<mytag>some content</mytag>
不含标签主体:<mytag/>
- 一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套。
<mytag1><mytag2></mytag1></mytag2> WRONG
- 一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签或孙标签。
- XML中不会忽略主体内容中出现的空格和换行。注:由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。
- 元素命名规范:元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点,但必须遵循下面的一些规范:
严格区分大小写:<P> <p>
只能以字母或下划线开头
不能以xml(或XML、Xml等)开头 ---- W3C保留日后使用
名称字符之间不能有空格或制表符
名称字符之间不能使用冒号
四、元素的属性
- 一个元素可以有多个属性,每个属性都有它自己的名称和取值,例如:<mytag name="value" .../>
- 属性值一定要用引号(双引号或单引号)引起来
- 属性名称的命名规范与元素的命名规范相同
- 元素中的属性是不允许重复的
- 在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描述,例如:
<mytag>
<name>
<firstName/>
<lastName/>
</name>
</mytag>
五、注释
- XML中的注释语法为:<!-- 这是注释 -->
- 注意:1. XML声明之前不能有注释。2. 注释不能嵌套。
六、CDATA区
- CDATA是Character Data的缩写
- 作用:把标签当做普通文本内容
- 语法:<![CDATA[内容]]>
- 举例:<![CDATA[<student>www.student.com</student>]]> 红色部分被当做普通文本而不是标签
七、特殊字符
对于一些特殊字符,若要在元素主体内容中显示,必须进行转义。
八、处理指令
- 处理指令,简称PI(Processing Instruction)
- 作用:用来指挥软件如何解析XML文档
- 语法:必须以"<?"作为开头,以"?>"作为结尾
- 常用处理指令:
XML声明:<?xml version="1.0" encoding="GB2312"?>
xml-stylesheet指令:
作用:指示XML文档所使用的CSS样式XSL。
<?xml-stylesheet type="text/css" href="some.css"?>
注:对中文命名的标签元素不起作用
九、XML与HTML对比总结
- HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构。
- HTML是不区分大小写的,而XML是严格区分大小写的。
- HTML可以有多个根元素,而XML有且只能有一个根元素。
- HTML中,属性值的引号是可用可不用的,而XML中,属性值必须放在引号中。
- HTML中,空格是可用自动过滤的,而XML中,空格等部分则不会自动删除。
- HTML中的标记是预定义的,而XML中的标记是可以随便定义的,并且可扩展。