一、什么是XML
1、英文全称为Extensible Markup Language,翻译过来为可扩展标记语言。
- XML技术是W3C组织发布的,目前遵循的是W3C组织于2000发布的XML1.0规范
2、XML就是一种数据存储格式
- 这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系
3、XML保存数据的方法
- XML语言利用标签来保存数据内容,利用标签之间的嵌套关系来保存数据之间的层级关系
4、XML的应用场景
- XML本质上是一段字符串,具有跨平台性的特性,因此XML常被用来在不同系统之间进行数据交换。如果说java是一门跨平台的语言,那xml就是跨平台的数据。
- XML可以在保存数据的同时保存数据之间的关系。利用这一特点,它还经常用作应用程序配置文件来使用。
5、xml文件
- XML是一种存储数据的格式,我们可以将遵照这种数据格式写出来的XML数据保存到一个文件中去,并将文件的后缀名设定为.xml,那么这样的保存了XML数据的文件就叫做xml文件。
- xml文件是保存XML数据的一种方式,XML数据也可以以其他的方式存在(如在内存中构建XML数据),不要将XML语言狭隘的理解成xml文件。
6、XML校验
- 浏览器除了内置HTML解析器外还内置了XML解析器,因此我们可以使用浏览器对XML进行校验。
二、xml语法
1、一个XML文件分为如下几部分内容:
- 文档声明
- 元素
- 属性
- 注释
- CDATA区 、特殊字符
- 处理指令(processing instruction)
2、XML文档声明
- XML的文档声明是用来声明文档基本属性的,XML解析器将根据文档声明决定如何正确解析一个XML
注意:
- 通常来说一个XML必须包含且只包含一个文档声明
- 文档声明必须处在XML的第一行,前面不能有其他内容
- 如果一个XML不包含文档声明则称这样的XML为格式不良好的XML
- 在许多时候即使不包含文档声明,XML也可以被正常使用,但是这是不符合标准的,存在风险,因此强烈推荐大家在书写XML时写上文档声明。
写法:
- 最简单写法:<?xml version="1.0" ?>
- version 代表当前xml所遵循的xml标准
- encoding属性说明文档的字符编码:<?xml version="1.0" encoding="GB2312" ?>
- encoding告知解析器使用何种编码解析当前xml默认值为ISO8859-1
- standalone属性说明文档是否独立:<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
- standalone表示当前xml文档是否是一个独立文档,当为yes时表示是一个独立文档,当为no时表示当前文档需要其他文档支持。
3、XML元素
- 一个XML标签就是一个XML元素。分为开始标签和结束标签,在开始标签和结束标签之间的文本被称为标签体。
- 包含标签体:<a>www.itcast.cn</a>
- 如果一个不包含标签体也不包含其他元素,那么可以将开始标签和结束标签合并,这样的标签称为自闭标签
- 不含标签体及其他元素:<a></a>可以简写为自闭标签:<a/>
- 一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套
- 格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根标签的子孙标签。
- 对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理,但是现在很多解析器都能自动去掉多余的空格和换行
4、XML元素——命名规范
- 一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:
- 区分大小写,例如,<P>和<p>是两个不同的标记
- 不能以数字或标点符号或"_"开头。
- 不能以xml(或XML、或Xml 等)开头。
- 不能包含空格
- 名称中间不能包含冒号(:)
5、属性
- 一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:<china capital="beijing"/>
- 属性值一定要用双引号(")或单引号(')引起来<china capital='beijing'/>
- 定义属性名必须遵循与元素相同的命名规范
6、XML注释
- Xml文件中的注释采用:“<!--注释-->” 格式
- 注释不能出现在文档声明之前(因为XML要求文档声明必须在第一行,之前不能有其他内容)
- 注释不能嵌套
7、CDATA区
- 当XML中一段内容不希望被解析器解析时可以使用CDATA区将其包住
- 当解析器遇到CDATA区时会将其内容当作文本对待,不会进行解析
- 语法:<![CDATA[ 内容 ]]>
- 对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。如:&--& < -- <和html中的一样
- CDATA区与转义的不同:CDATA可以保留特殊符号而转义是使用其他的符号代替特殊符号。
8、处理指令
- 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
- 例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。<?xml-stylesheet type="text/css" href="1.css"?>
- 处理指令必须以“<?”作为开头,以“?>”作为结尾
- XML文档声明语句就是最常见的一种处理指令。