1.1 XML 技术概述

1.1.1 XML 的起源于作用

学习 XML 之前,我们先了解一下它的由来。

1. XML 是什么?

XML:Extensible Markup Language 可扩展标记语言,一种通用的数据交换格式。

2. XML 是哪来的?

XML 和 HTML 都衍生于 SGML(Standard Generalized Markup language,标准通用标记语言,简称 “通用标言”)。

3. SGML 又是哪来的?为什么人们要搞出来一个SGML(换句话说,SGML 是为了满足人们什么样的需求)?

SGML 是 1986 年国际标准化组织出版发布的一个信息管理方面的国际标准(ISO 8879:1986 信息处理)。

举个栗子,人们在商务活动中常常使用发票、采购订单、收据、货物清单等来描述和交换信息,这些纸质文档是由人制作,被人识别和解释。随着互联网的发展,这些商务活动(电子商务)都将在互联网上进行,所以就需要由计算机程序产生,且能被计算机程序识别和处理的电子文档。那么,这些电子文档必须遵循一个统一的标准。可见,统一电子文档的标准规范是电子商务发展的基础。

啰嗦一句,我国电子商务起步于1990-1993年,电子数据交换年代。

4. 既然已经有了 SGML,那么为什么又要衍生出 XML 呢?

首先,我们了解一下 SGML 的应用场景。SGML 从 20 世纪 80 年代初开始使用,多用于科技文献和政府办公文件中。但是,由于 SGML 非常复杂,其复杂程度无法适应网络上的日常应用,所以无法在小型的应用中普及。因此,XML 是为了简化 SGML,以便更加通用。

5. XML 在 web 应用中干什么呢?

目前很多系统的配置文件都使用 XML 格式。配置文件就是记录应用程序配置信息的文件。例如,某个程序连接数据库服务器的 IP 地址、服务器的网络监听端口号、数据库的名称、用户名、密码等等。这样做的好处是,如果连接数据库的信息发生了改变,则只需要修改配置文件,而不用修改源程序。

1.1.2 XML 文档结构

举个栗子:

<书架>

    <书>

        <书名>Java 就业培训教程</书名>

        <作者>张孝祥</作者>

        <售价>39.00元</售价>

    </书>

    <书>

         <书名>JavaScript 网页开发</书名>

        <作者>张孝祥</作者>

        <售价>28.00元</售价>

    </书>

</书架>

在这个例子中,<书架>、<书>、<书名>等都是用户自己创建的标记。我们知道,在 HTML 文档中,我们只能使用 HTML 规范已经定义好的标记,这是 XML 与 HTML 的不同之处。思考一下,为什么呢?因为 HTML 是为了显示数据,重点在显示,而 XML 是为了描述数据的结构和内容,重点在数据本身。

XML 允许用户随便发明和创建自己的标记,标记名可以是非英文字符,这就是 XML 的可扩展性。

XML 文档是树型结构的,这种“树”状的结构称为文档结构树。XML 的结构化主要体现在两个方面:

(1)每一个元素都和其他元素相关联,形成树结构。

(2)标记本身的含义和它所描述的信息相分离。

1.1.3 XML 与 HTML 的比较

相同点:

语法类似,都以一对相互匹配的起始和结束标记符来标记信息。

不同点:

(1)目的不同。XML 存储了数据本身和数据之间的关系,以数据为重点。HTML 将数据和其显示效果混在一起,以如何显示数据为重点。

(2)格式要求不同。XML 是非常严格的标记语言,例如严格区分大小写。HTML 的格式要求较松散,HTML 解释器通常采用尽量解释的机制,这样容易造成同一个页面在不同的浏览器中可能显示出大不相同的效果。

(3)标记集合不同。XML 的标记是可无限扩展的。HTML 的标记集合是固定的,不允许用户在自己的应用中扩展 HTML 标记。

(4)更新机制不同。XML 允许粒度更新,即当 XML 文档每次有局部改变时,不必发送整个文档的内容,只有改变的元素才必须从服务器发送到客户机上。HTML 不支持类似功能。

最后,我们要明确 XML 与 HTML 的关系。二者要衍生于 SGML,但是是因为不同的需求而产生,所以说 XML 与 HTML 是不可相互替代的关系,二者的应用领域完全不同。

1.1.4 XML 与数据库的比较

从上面的介绍,我们知道,XML 存储了数据和数据结构。也就是说,XML 和数据库一样具有存储信息的作用,可以认为 一个 XML 文档就像数据库中一个表。接下来,我们从 XML 的三要素上来比较 XML 与数据库。XML是一种文档,具有三要素:文档结构、文档数据和文档样式。

(1)文档结构。XML 文档结构就像数据库中的表结构,XML 文档中的标签就相当于数据库中表的字段名,标签之间的关系就形成了 XML 文档的结构。多个 XML 文档的元素之前还可以像数据库的表字段一样定义主外键关系。

(2)文档数据。在一个标签对中嵌套的数据就相当于数据库表的某一条记录中的某个字段的数据。

(3)文档样式。XML 文档本身没有包含文档样式,但是可以在 XML 文档中指定用来控制该文档显示的 CSS 或 XSL 文件。数据库表中的数据可以被各种应用程序使用,可以采用表格、表单或其他样式显示,也可以显示部分数据。数据库表中的数据可以被其他应用程序查询、修改、运算,XML 文档中的数据也可以。

最后,介绍一下应用场景。一些没有数据库系统的小型网站就使用 XML 文件来存储其信息,如留言板系统中的留言。XML 比数据库更适合人们阅读,它是一种通用存储格式,可以由一个应用程序交换给其他程序去处理,非常适合信息交换,但不适合大批量数据的存储和处理。在实际应用中也经常涉及到数据库表与 XML 文档之间的相互转换问题,并且有很多人正在从事这方面的研究工作。

====== 以上内容来源于 张孝祥老师的《深入体验Java Web开发内幕 》,记录下来,只作为个人读书笔记。===========

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值