关于XML
HTML 最初是一种表义的标记语言,HTML 的发明人 Tim Berners-Lee 最初发明 HTML 的主要目的是为了与研究物理的同事交流方便(他当时是 CERN(欧洲粒子物理实验室)的研究人员)。超链接可以很方便地把关于物理学研究的各种资源连接起来。HTML 最初只是设计用来交流文本信息的,最初的 HTML 从外表上看就是简单的文本,没有多少表示显示格式的标记。后来 Marc Andreessen 发现了 HTML 和超链接的商业价值,开发出了世界上第一个图形界面的浏览器 NCSA Mosaic。Andreessen 随后与别人合作开了 Netscape 公司,并且制造出当时最成功的浏览器 Netscape Navigator。为了提高浏览器的表现能力,显示更加丰富的内容,就有必要扩充 HTML,添加各种与显示格式有关的标记和属性,并且把对多媒体的支持加进去。例如 <table>、<center>、<font>、<img>、align、bgcolor 等等。Netscape Navigator 大为成功,尤其是在其推出强大的脚本语言 JavaScript 和支持 plugin 并且能在页面中运行 Java Applet 后。甚至有人认为浏览器就是下一代的操作系统,将来开发的所有应用程序都应该是针对浏览器开发的。Netscape 是当年 NASDAQ IPO(新股上市)最成功的公司,Marc Andreessen 一夜之间成为了亿万富翁。这引起了软件之王 M$ 的注意和警觉,M$ 认为 Netscape 正在对其构成威胁,一定要把 Netscape 击垮,占据互联网这个战略制高点。而互联网最重要的应用软件就是浏览器,于是 M$ 推出了自己的浏览器 Internet Explorer,并且采用免费和捆绑等不正当竞争手段,在 4、5 年内将 Netscape 彻底赶出了浏览器市场。如今 Netscape 这个产品已经彻底消亡,只留下了它开源后浴火重生的 Mozilla 继续在与 IE 进行着顽强的抗争。不过由于 Linux 桌面应用已经走向成熟,所以将来 Mozilla 也会有很好的前景。在 Netscape 与 IE 角力的几年时间里,两大浏览器都为了提高自己的表现能力各出奇招。他们不断推出新的只有自己才支持的、互不兼容的 HTML 标记。W3C 为了考虑工业界的需求也在不断地扩充 HTML 规范,以求各种浏览器能够有一个兼容的基础。HTML 经历了 2.0、3.2、4.0 等重要版本后已经非常庞大,完全背离了 HTML 最初设计主要用来表义的初衷,其中含有大量表示显示格式的标记。结果是实现一个完全的 HTML 浏览器越来越困难和复杂,IE 和 Netscape 的规模都达到了 10M 以上。为 HTML 减肥的呼声越来越高。为了解决这个问题,以利于 Web 的健康发展,W3C 设计了 XML。
XML 的设计思想来自于古老的 SGML(其实 HTML 的设计思想也是来自于 SGML)。SGML 是 IBM 创造的一个用于出版业的文档格式标准,后来被 ISO 采纳作为国际标准(ISO8879)。SGML 把文档内容与文档格式完全分离开,使得内容提供者与排版人员的工作可以相互独立。SGML 是一种非常严谨的标记语言,但是 SGML 的问题是过于复杂,一个基于 SGML 的出版系统开发成本高昂,价格不菲,只有象 IBM 那样的大型企业才有能力购买这样的系统。SGML 过于重量级的特点使其完全不适合用于 Web 领域。而且 SGML 的设计完全是面向文档的,而不是面向数据的,大量基于 Web 的应用是面向数据的应用。W3C 参考 SGML 设计了新一代的标记语言 XML,XML——可扩展标记语言是一种元语言(我们使用的 Eclipse 也可以称做是一种元工具),它可以建造其它任意种类的标记语言。XML 实现了 W3C 最初设定的所有目标,轻量级、易于理解、扩展性好、平台中立、兼顾文档和数据。实际上 XML 规范只有几十页,只是 SGML 规范的 1/10 左右。