XHTML:两种语言的力量    
可扩展超文本标记语言是用 XML 对 HTML 4 的改良

Sathyan Munirathinam
软件工程师, Aztec Software
2002 年 7 月

本文从实际角度对 XHTML 进行了研究,它是有效地结合 HTML 的简单性和 XML 的可扩展性的一种标记语言。本文还涵盖了 XHTML 各种风格的基本特性并包括对语言和大量实际应用程序的讨论。

作为一名 Web 开发人员是项很艰苦的工作。您不仅必须每天避开流行浏览器引起的陷阱和缺陷,还必须至少留意可能(或不可能)对您的工作产生影响的众多技术上的新发展。您可能刚刚掌握了样式表和 DHTML,而新的技术又要求您关注。您需要立刻学哪一个呢?现在可以放弃哪一个呢?随着可扩展超文本标记语言(Extensible Hypertext Markup Language,简称 XHTML)的出现,最终可能让传统的 HTML 马放南山了。

XHTML 概述
XHTML 是 HTML 和 XML 的混合物,它是为网络设备显示(包括 Web 浏览器、PDA 设备和移动电话)而特别设计的。2002 年 1 月 26 日标志了 XHTML 1.0 作为 Web 标记的正式 W3C 推荐的第二个生日。但是,XHTML 仍然要蹒跚学步,学着用微笑和大喊大叫来引起大多数 Web 设计人员的注意。

W3C 主管 Tim Berners-Lee 这样评价 XHTML:“XHTML 1.0 连接了现在的 Web 和将来的 Web …… 它为页面和网站作者提供了进入结构化数据 XML 世界的桥梁,同时仍然能够保持与支持 HTML 4 的用户代理的可操作性。"

XHTML 是非常严格的标记语言。它的规则很简单,并且事实上,它的可扩展性很小 ― 即,不能编写您自己的定义来表示语言如何动作;您必须遵循其规则。XHTML 1.0 采用 HTML 4.0 中引入的概念,这些概念在其生效之前,需要按结构化的和方法论的行为进行处理。

XHTML 可以与级联样式表(CSS)一起使用以完成显示目的。XHTML 还允许您将可扩展样式表(Extensible Stylesheet Language (XSL))用于转换。通过使用这个基于 XML 的样式技术,您实际上可以将一个文档从一种类型转换成另一种类型 ― 例如,从 HTML 文档转换成 PDF 文档。

为什么要使用 XHTML?
通常,您可能为新增功能或者因为已经修正了以前版本的问题而将技术更新到新的版本。但就标记功能而言,XHTML 是非常类似于 HTML 4 的副本,所以不要期望存在任何新奇的标记。

W3C 声称 XHTML 的主要优点是 可扩展性可移植性

可扩展性
XML 文档要求格式良好(元素嵌套正确)。使用 HTML,添加新的元素组需要更改整个 DTD。在基于 XML 的 DTD 中,新的元素组只需要内部一致并且格式良好,就可以添加到现有的 DTD 中。这极大地简化了新元素集合的开发和集成。

可移植性
越来越频繁地使用非台式设备来访问因特网文档。在大多数情况下,这些设备不具备台式计算机的计算能力,并且不象标准桌面浏览器那样可适用于格式差的 HTML。实际上,如果这些非桌面浏览器没有接收到格式良好的标记(HTML 或 XHTML),它们可能根本无法显示文档。

XHTML 文档结构
XHTML 文档由三个主要部分构成:

  • DOCTYPE
  • Head
  • Body

基本文档结构是:




 ... 
 ... 

区域包含关于文档的信息,如所有权、版权和关键字;而 区域包含要显示的文档内容。

清单 1 向您显示实际中如何使用这个结构:

清单 1. XHTML 示例

1.  
2.  
3.  
4.  
    My XHTML Sample Page
    
5.  
    

Welcome to XHTML !

6.

第 1 行:由于 XHTML 是以 XML 文档表示的 HTML,所以它必须在文档的顶部包括初始 XML 声明

第 2 行:XHTML 文档必须由三组标准规则的其中一组来标识。这些规则存储在一个称为“文档类型声明(Document Type Declaration (DTD))”的单独文档中,并且使用这些规则验证 XHTML 文档结构的准确性。准确地说,DTD 的目的是描述 XHTML 中允许的语言和语法。

第 3 行:XHTML 文档中的第二个标记必须包括带有由 xmlns=http://www.w3.org/1999/xhtml 属性标识的 XML 名称空间的开始 标记。XML 名称空间标识 XHTML 文档使用的标记的范围。它用来确保一个 DTD 使用的名称不与用户定义的标记或其它 DTD 中定义的标记冲突。

第 4 行:XHTML 文档必须包括完整的头部区域。这个区域包含开始 标记和标题标记( ),然后以结尾 标记结束。

第 5 行:XHTML 文档必须包含开始和结尾 标记。在这些标记中,您可以放置传统的 HTML 编码标记。要与 XHTML 符合,这些标记的编码必须是格式良好的。

第 6 行:最后,使用结尾 标记结束 XHTML 文档。

XHTML DTD
在创建 XHTML 文档时,在该文档的顶部声明了它应符合的 DTD。每个 DTD 可能由一个称为 正式公共标识(Formal Public Identifier,简称 FPI)的唯一标号识别。字 PUBLIC 后面的文字文本或引用文本是表示 W3C 的 XHTML 1.0 DTD 的 FPI。

目前,有三种 XHTML 文档类型:

  • Strict
  • Transitional
  • Frameset

Strict DTD



当您想要真正清晰的标记、避免表示上的混乱时,将此与 CSS 一起使用。已经从该语言中除去了几个标记(如

),甚至还除去了其它标记的某些属性(如 H1 标记的 align 属性)。

Transitional DTD



当您需要利用 HTML 的表示特性时,使用它;您的许多读者都没有能理解 CSS 的最新浏览器。过渡的 DTD 支持大部分标准的 HTML 4 标记和属性。

Frameset DTD



这使您能够使用 HTML 框架将浏览器窗口分成两个或更多框架。这个 DTD 保存框架集定义。

XHTML 验证规则
XHTML 文档 必须是格式良好的 XML。它必须符合基本 XML 语法:

必须用小写书写标记和属性名称。

HTML XHTML
< td bgcolor="#ffcc33">

元素必须嵌套;而不能交错。对于 XML 和 XHTML,您需要以逆序关闭标记 ― 换言之:后开先关。

HTML XHTML

Be bold!

Be bold!

所有非空元素必须是关闭的。例如,对于 HTML,许多人使用

标记分段。这个标记设计用于标记一段的开始和结尾(使用结尾

标记)。这使它成为 非空标记,因为它包含段文本。

HTML XHTML
First paragraph

Second paragraph

First paragraph

Second paragraph

受影响的元素:、、、

、、、
  • 、、、、、 和 。

    必须终止空元素。所有空元素必须使用 XML 空标记语法,在右括号前有一个结尾的正斜杠(例如,
    becomes
    )。请注意元素文本后面的空格和结束定界符 /> 。这是为了与当前浏览器兼容。

    HTML XHTML




    受影响的元素:
    、、、