一、什么是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[ 内容 ]]>
  • 对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。如:&--&amp;  < -- &lt;和html中的一样
  • CDATA区与转义的不同:CDATA可以保留特殊符号而转义是使用其他的符号代替特殊符号。

8、处理指令

  • 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
  • 例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。<?xml-stylesheet type="text/css" href="1.css"?>
  • 处理指令必须以“<?”作为开头,以“?>”作为结尾
  • XML文档声明语句就是最常见的一种处理指令。