XML基础
XML
指可扩展标记语言
W3C
指万维网联盟(World Wide Web
Consortium)
XSL
指扩展样式表语言(Extensible Stylesheet
Language)。XSLT 指 XSL
转换
一、XML
概念
XML 可扩展标记语言(Extensible Markup Language)
XML 是一种标记语言,很类似
HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 与 HTML 的主要差异
XML 被设计用来传输和存储数据。其焦点是数据的内容。
HTML 被设计用来格式化和显示数据。其焦点是数据的外观。
XML 不是 HTML 的替代。目的不同。
HTML 旨在显示信息,而 XML 旨在传输信息。
XML 是不作为的
XML 被设计用来结构化、存储以及传输信息。XML 不会做任何事情。
下面是 John 写给 George 的便签,存储为 XML:
George
John
Reminder
meeting!
上面的这条便签具有自我描述性。拥有标题以及留言,同时包含了发送者和接受者的信息。
但是,这个
XML 文档仍然没有做任何事情。
它仅仅是包装在 XML
标签中的纯粹的信息。
需要编写软件或者程序,才能传送、接收和显示出这个文档。
XML 仅仅是纯文本
有能力处理纯文本的软件都可以处理 XML。
不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。
标签的功能性意义依赖于应用程序的特性。
通过 XML 可以发明自己的标签
上例中的标签没有在任何 XML 标准中定义过(比如
和 )。这些标签是由文档的创作者发明的。
这是因为 XML 没有预定义的标签。
在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如
、
等等)。
XML 允许创作者定义自己的标签和自己的文档结构。
XML 是 W3C 的推荐标准
可扩展标记语言 (XML) 于 1998 年 2 月 10 日成为 W3C 的推荐标准。
对 XML 最好的描述是:XML 是独立于软件和硬件的信息传输工具。
二、XML
的用途
XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。
XML 把数据从 HTML 分离
问题:在HTML 文档中显示动态数据,但是每当数据改变时,将花费大量的时间来编辑 HTML。
解决:通过 XML,将数据存储在独立的
XML 文件中。
这样就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。
通过使用JavaScript,就可以读取一个外部
XML 文件,然后更新 HTML 中的数据内容。
XML 简化数据共享
XML 数据以纯文本格式进行存储,提供了一种独立于软件和硬件的数据存储方法。
使创建不同应用程序可以共享的数据变得更加容易。
XML 简化数据传输
通过 XML,可以在不兼容的系统之间轻松地交换数据。
XML 简化平台的变更
问题:升级到新的系统(硬件或软件平台),很费时,而且转换大量的数据,不兼容的数据经常会丢失。
解决:XML 数据以文本格式存储。使 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。
XML 使数据更有用
不同的应用程序不仅仅在 HTML 页中,也可以从 XML 数据源中访问数据。
通过 XML,数据可供各种阅读设备使用(手持的计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。
XML 用于创建新的 Internet 语言
包括:
XHTML - 最新的 HTML 版本
WSDL - 用于描述可用的 web service
WAP 和 WML - 用于手持设备的标记语言
RSS - 用于 RSS feed 的语言
RDF 和 OWL - 用于描述资源和本体
SMIL - 用于描述针针对 web 的多媒体
三、XML
树结构
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
一个 XML 文档实例
XML 使用简单的具有自我描述性的语法:
encoding="ISO-8859-1"?>
George
John
Reminder
the meeting!
第一行是
XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
下一行描述文档的根元素(像在说:“本文档是一个便签”):
接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
最后一行定义根元素的结尾:
从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。
XML 文档形成一种树结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素.
.....
所有元素均可拥有文本内容和属性(类似 HTML 中)。
实例
表示XML 中的一本书:
lang="en">Everyday
Italian
Giada De
Laurentiis
2005
30.00
lang="en">Harry
Potter
J K.
Rowling
2005
29.99
lang="en">Learning
XML
Erik T.
Ray
2003
39.95
例子中的根元素是 。文档中的所有
元素都被包含在
中。
元素有 4 个子元素:
、<author>、、。
四、XML 语法规则
XML 元素都须有关闭标签
在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签:
This is a
paragraph
This is another
paragraph
注释:
XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是
XML 元素,也不需要关闭标签。
XML 标签对大小写敏感
XML 中,标签
与标签
是不同的。
XML 中,必须使用相同的大小写来编写打开标签和关闭标签:
这是错误的。
这是正确的。
注释:打开标签和关闭标签通常被称为开始标签和结束标签。
XML
必须正确地嵌套
XML
文档必须有根元素
XML
的属性值须加引号
与 HTML 类似,XML 也可拥有属性(名称/值的对)。
错误的:
date=08/08/2008>
正确的:
实体引用
XML 中,一些字符拥有特殊的意义。
问题:把字符 "
错误:
if salary
< 1000
then
解决:使用实体引用来代替
"
if salary
< 1000
then
XML 中, 5 个预定义的实体引用:
<
<
小于
>
>
大于
&
&
和号
'
'
单引号
"
"
引号
注释:在
XML 中,只有字符 "
XML
中的注释
与 HTML 的语法很相似:
XML
中空格会被保留
HTML 会把多个连续的空格字符裁减(合并)为一个:
HTML: Hello my name is David.
输出: Hello my name is David.
XML 中,文档中的空格不会被删节。
XML
以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。
在 Unix 应用程序中,新行以 LF 字符存储。
而 Macintosh 应用程序使用 CR 来存储新行。