Java Web基础入门第一讲——XML语言

什么是XML?

学习一门新的技术,首先应该搞清楚两点,第一它是什么,第二为什么我们要学习它,带着这样的疑问,开始XML的学习之旅。

  • 什么是XML?
    Extensible Markup Language,翻译过来为可扩展标记语言。XML技术是W3C组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范。
  • 为什么学习XML?
    在现实生活中大量存在有关系的数据,如图所示:
    Java Web基础入门第一讲——XML语言
    由此引来一个问题:这样的数据如何交给计算机处理呢?

XML技术用于解决什么问题?

XML语言出现的根本目标在于描述上图那种,在现实生活中经常出现的有关系的数据。在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其它数据,以此来实现数据关系的描述。例如:

<?xml version="1.0" encoding="UTF-8"?>
<中国>
    <北京>
        <海淀></海淀>
        <朝阳></朝阳>
    </北京>
    <福建>
        <福州></福州>
        <龙岩></龙岩>
    </福建>
    <湖北>
        <武汉></武汉>
        <天门></天门>
    </湖北>
</中国>

XML常见应用

XML常见应用有以下两点:

  • XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系;

  • 在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定。例如一个软件在启动时,它需要启动A、B两个模块,而A、B这两个模块在启动时,又分别需要A1、A2和B1、B2模块的支持,为了准确描述这种关系,此时使用XML文件最为合适不过。

    <?xml version="1.0" encoding="UTF-8"?>
    <soft>
        <a>
            <a1></a1>
            <a2></a2>
        </a>
        <b>
            <b1></b1>
            <b2></b2>
        </b>
    </soft>
    

XML语法

一个XML文件分为如下几部分内容:

  • 文档声明;
  • 元素;
  • 属性;
  • 注释;
  • CDATA区 、特殊字符;
  • 处理指令(processing instruction)。

XML语法-文档声明

在编写XML文档时,需要先使用文档声明,声明XML文档的类型。最简单的声明语法为:

<?xml version="1.0" ?>

还可用encoding属性说明文档的字符编码,即告诉浏览器用哪个编码表来解析文档。

<?xml version="1.0" encoding="GB2312" ?>

当XML文件中有中文时,必须使用encoding属性指明文档的字符编码,例如:encoding="GB2312"或者encoding=“UTF-8”,并且在保存文件时,也要以相应的文件编码来保存,否则在使用浏览器解析XML文件时,就会出现解析错误的情况。例如,有如下XML文件,

<?xml version="1.0"?>
<softCompany>
	<company>MicroSoft</company>
	<company>google</company>
	<company>Apple</company>
	<company>百度</company>
</softCompany>

使用“记事本”来保存该XML文件时,没有使用encoding属性来指明文档的字符编码,但文档里面有“百度”这样的中文字符,在使用Chrome浏览器解析该XML文件时,Chrome就不知道该使用什么编码去解析该文件,就无法解析了,如下图所示:
Java Web基础入门第一讲——XML语言
要想正确解析该XML文档,就可以使用encoding属性指明该文档的字符编码。例如:

<?xml version="1.0" encoding="UTF-8"?>
<softCompany>
	<company>MicroSoft</company>
	<company>google</company>
	<company>Apple</company>
	<company>百度</company>
</softCompany>

并且使用“记事本”保存文件时,也要以相应的文件编码(UTF-8)来保存。此时再次使用Chrome浏览器来解析该XML文件,就可以正常解析出里面的中文字符了,如下图所示:
Java Web基础入门第一讲——XML语言
还可用standalone属性说明文档是否独立,即文档在工作的过程中是否依赖于另一个文档。

<?xml version="1.0" encoding="GB2312" standalone="no" ?>

浏览器打开之后,并不会将standalone属性解析出来。