Java Web基础入门第一讲——XML语言
什么是XML?
学习一门新的技术,首先应该搞清楚两点,第一它是什么,第二为什么我们要学习它,带着这样的疑问,开始XML的学习之旅。
- 什么是XML?
Extensible Markup Language,翻译过来为可扩展标记语言。XML技术是W3C组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范。 - 为什么学习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就不知道该使用什么编码去解析该文件,就无法解析了,如下图所示:
要想正确解析该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文件,就可以正常解析出里面的中文字符了,如下图所示:
还可用standalone属性说明文档是否独立,即文档在工作的过程中是否依赖于另一个文档。
<?xml version="1.0" encoding="GB2312" standalone="no" ?>
浏览器打开之后,并不会将standalone属性解析出来。