1.1.4 HTML和XML
超文本置标语言(Hyper Text Markup Language,HTML)是编制Web页面文档的语言。HTML是标准通用型置标语言(Standard Generalized Markup Language,SGML)的一种。SGML是定义结构化文本类型和标识这些文本类型的标记语言系统。HTML的标记符定义了文档结构、字形字体、版面布局、超链接等超文本文档结构,使Web浏览器能够阅读和重新格式化任何Web页面。HTML支持Object标记和层叠风格表单(Cascading Style Sheets,CSS)。通过支持ISO 10646字符集,支持任何语言所需的标记,为编程者插入对象和脚本提供了方便,并在文件中支持格式项。HTML最新版本HTML 5.0增加了更多样化的API,提供了嵌入音频、视频、图片的函数、客户端数据存储,以及交互式文档。其他特性包括新的页面元素,如<header>、<section>、<footer>和<figure>。通过制定处理所有HTML元素的规则,以及从错误中恢复的规则,HTML 5.0改进了互操作性,并降低了开发成本。
HTML仅关注Web浏览器的页面安排,缺乏对结构化数据的表示能力,采用单一固定语法,缺乏可扩展性。因此,HTML难以用于显示除文本之外的其他需求,如数据处理、刷新排列、存储、转发、交换、加密及签名等;难以满足协同工作、信息重用对大量动态数据使用统一数据格式进行表示和管理的需要。
可扩充的置标语言(Extensible Markup Language,XML)是一种元语言(用来描述其他语言的语言)。它可以让用户定义自己的标记语言,在XML文件中描述并封装数据。XML实际上是SGML的一个优化子集。SGML是ISO在1986年推出的用来创建标记语言的语言标准,它提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序之外。SGML在大型文档管理、出版业等领域取得了非常好的应用,但它的复杂性使其难以直接应用到Internet上。基于SGML的HTML语言主要考虑数据的外观表示,在可扩展性、交互性和语义方面则先天不足,缺乏对结构化数据的表示能力。
鉴于SGML和HTML各自的优点与缺陷,WWW协会(World Wide Web Consortium,W3C)于1998年正式公布了XML 1.0规范。XML在数据交换、存储和描述等方面都具有自己的优点,它保留了SGML 80%的功能,但只有SGML约20%的复杂度,使之可以直接用于网上传输。XML突出了数据的语义与元素结构描述能力,从而可以解决协同工作、信息重用中面临的许多问题。
2001年5月W3C又推出了一个替代DTD(Data Type Definition)的建议标准,称为模式(Schema)。Scheme比DTD更具灵活性,功能也更强大。例如,支持多种数据类型、支持命名空间(Namespace)等。它将逐渐代替DTD,并进一步推动XML的广泛应用。
简而言之,XML和HTML的本质区别是:HTML标记是定义数据的,用来描述怎样在屏幕上显示信息,解决人机交互的问题,而XML是用来描述信息是什么,用来存储数据的,重在数据本身,解决机器之间的交互问题。