XML学习笔记之基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XML学习笔记(一)
——基础知识
1、什么是XML
1)XML的来源:
XML是由万维网协会(W3C)推出的新一代数据交换标准。可以用于定义Web网页上的文档元素和商业文档,同时还可以用于
复杂数据的表达和传输。它在结构上有些类似于HTML。XML前身是SGML(The Standard Generalized Marked Language),
是自IBM从60年代就开始发展的GML(Generalized Marked Language)。
2)XML简介
XML不是一种可执行的程序,也没有可执行的代码,不能实现任何功能,它只是一种文件载体。
XML是Extensible Marked Language的简写,是一种可扩展性标记语言,它是一种能够让用户自己创造标志的语言,可以存储
和共享数据。
XML最大的特点就是它的可扩展性,当使用XML表示某个数据时,用户可以根据需要,组织成任何符合XML规范的形式,并且标
记的名称可以根据用户的需要任意指定。
首先看一段简单的XML定义格式:
它定义的是一个人的基本信息,包括姓名,性别和年龄,其中的person,sex,age都是用户随意定义的名称。
2、XML的用途
1)存储数据
这是XML最根本的用途,由于它可以保存为数据文件,对于一些需要持久化保存的数据可以使用XML格式的方式存储。例如Web应用程序中的各种配置文件,web.xml,hbm.xml等。
2)分离数据
XML可以将数据和XML的展现相分离,使数据的组织人员能够更加集中精力组织数据,使数据的展示人员能够更加集中精力设计数据的
展现形式,真正实现了人员的不同分工,大大加快了开发的效率。
3)交换数据
通过XML可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有很多种形式,对于开发者来说,最耗时的就是在遍布网络的系统之间交换数据。如果把数据转换成XML格式存储将大大减少交换数据时的复杂性,并且还可以使得这些数据能被不同的程序读到。
4)共享数据
通过XML,纯文本文件可以用来共享数据。既然XML数据是以纯文本格式存储的,那么XML提供了一种与软件和硬件无关的共享数据方法。这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。例如:有一个Word文档,它只能使用Office Word打开使用,那其他软件需要读取这个文档时就很麻烦,但是如果使用XML文件保存数据,那么另外一个应用系统要读取也很简单了
,这样就达到了数据共享的目的。
3、XML的基本语法
1)XML文档的基本结构
基本结构主要由两部分组成:XML标记和内容(也叫实体,被标记包围的由字符数据组成的文本)
逻辑结构由5部分组成:XML声明,文档类型
声明,元素,注释和处理指令
2)XML声明
必须放在文档的开头,一般包含文档的版本号和编码等信息
如:
3)XML标记
以一对尖括号为界定:“<”和“>”,“<”代表标记开始,“>”代表标记结束
标记可以分为两类:开始标记和结束标记,如:
标记的要求:
标记必须闭合,有开始标记就要有结束标记
标记必须合理嵌套,不可交叉嵌套
如:
这是不合法的交叉嵌套
4)XML元素
命名规范:
名称可包含字母,数字和其他字符
名称以字母,下划线(_)或者冒号(:)开头
名称不能以数字、标点符号或者XML,xml,Xml,xML……开头
名称不能包含空格,也不能包含特殊字符,如:&,=,<,>,/等
名称大小写敏感
元素的组成:
开始标记
文本数据内容(元素的值)
结束标记
元素的分类:
按照元素值的有无进行分类:
非空元素,如:
空元素,如:
按照元素嵌套关系进行分类:
根元素,每个XML文档都包含一个根元素,而且只有一个根元素,其他元素都包含在这个根元素里
父元素
子元素
如上例中的
5)XML属性
如:
6)注释
XML的注释和HTML注释相同,如下所示:
7)转义字符
如果想在XML文档中显示“x < y”,不能这样写,因为小于号“<”会引起XML的解析错误,因为解析器会认为这是一个新的元素的开始。为了避免这种错误,需要将“<”进行转义,如:
以下是常用的几个转义字符:
符号 转义字符 说明
< < 小于号
> > 大于号
& & 和
' ' 单引号
" " 双引号
8)CDATA的使用
当某个元素的元素值包含大量需要转义的字符时,可以使用CDATA部件来避免逐一转义的麻烦。CDATA部件以“”结束,其包含的所有文本都会被当做普通文本处理,所有特殊符号都会被忽略。如下所示:
if(aout.println(a);
}
]]>
注:CDATA部件之间不能再包含CDATA部件(即:不能嵌套),“”中都不能有空格或者换行符。