級別: 初級
Sathyan Munirathinam, 軟件工程師, Aztec Software
2002 年 7 月 01 日
本文從實際角度對 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 ...> <html ... > <head> ... </head> <body> ... </body> </html>
|
<head>
區域包含關于文檔的信息,如所有權、版權和關鍵字;而
<body>
區域包含要顯示的文檔內容。
清單 1 向您顯示實際中如何使用這個結構:
清單 1. XHTML 示例
1. <?xml version="1.0"?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4. <head> <title>My XHTML Sample Page</title> </head> 5. <body bgcolor="white"> <center><h1>Welcome to XHTML !</h1></center> </body> 6. </html>
|
第 1 行:由于 XHTML 是以 XML 文檔表示的 HTML,所以它必須在文檔的頂部包括初始 XML 聲明
<?xml version="1.0"?>
。
第 2 行:XHTML
文檔必須由三組標準規則的其中一組來標識。這些規則存儲在一個稱為“文檔類型聲明(Document Type Declaration
(DTD))”的單獨文檔中,并且使用這些規則驗證 XHTML 文檔結構的準確性。準確地說,DTD 的目的是描述 XHTML
中允許的語言和語法。
第 3 行:XHTML 文檔中的第二個標記必須包括帶有由
xmlns=http://www.w3.org/1999/xhtml
屬性標識的 XML 名稱空間的開始 <html> 標記。XML 名稱空間標識 XHTML 文檔使用的標記的范圍。它用來確保一個 DTD 使用的名稱不與用戶定義的標記或其它 DTD 中定義的標記沖突。
第 4 行:XHTML 文檔必須包括完整的頭部區域。這個區域包含開始
<head>
標記和標題標記(
<title></title>
),然后以結尾
</head>
標記結束。
第 5 行:XHTML 文檔必須包含開始和結尾
<body></body>
標記。在這些標記中,您可以放置傳統的 HTML 編碼標記。要與 XHTML 符合,這些標記的編碼必須是格式良好的。
第 6 行:最后,使用結尾
</html>
標記結束 XHTML 文檔。
XHTML DTD
在創建 XHTML 文檔時,在該文檔的頂部聲明了它應符合的 DTD。每個 DTD 可能由一個稱為
正式公共標識(Formal Public Identifier,簡稱 FPI)的唯一標號識別。字
PUBLIC
后面的文字文本或引用文本是表示 W3C 的 XHTML 1.0 DTD 的 FPI。
目前,有三種 XHTML 文檔類型:
- Strict
- Transitional
- Frameset
Strict DTD
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
|
當您想要真正清晰的標記、避免表示上的混亂時,將此與 CSS 一起使用。已經從該語言中除去了幾個標記(如
<center>
),甚至還除去了其它標記的某些屬性(如 H1 標記的
align
屬性)。
Transitional DTD
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
|
當您需要利用 HTML 的表示特性時,使用它;您的許多讀者都沒有能理解 CSS 的最新瀏覽器。過渡的 DTD 支持大部分標準的 HTML 4 標記和屬性。
Frameset DTD
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
|
這使您能夠使用 HTML 框架將瀏覽器窗口分成兩個或更多框架。這個 DTD 保存框架集定義。
XHTML 驗證規則
XHTML 文檔
必須是格式良好的 XML。它必須符合基本 XML 語法:
必須用小寫書寫標記和屬性名稱。
HTML
|
XHTML
|
<TD BGCOLOR="#ffcc33">
|
<
td bgcolor="#ffcc33">
|
元素必須嵌套;而不能交錯。對于 XML 和 XHTML,您需要以逆序關閉標記 ― 換言之:后開先關。
HTML
|
XHTML
|
<p>Be <b>bold!</p></b>
|
<p>Be <b>bold!
</b></p>
|
所有非空元素必須是關閉的。例如,對于 HTML,許多人使用
<p>
標記分段。這個標記設計用于標記一段的開始和結尾(使用結尾
</p>
標記)。這使它成為
非空標記,因為它包含段文本。
HTML
|
XHTML
|
First paragraph<p>
Second paragraph<p>
|
<p>First paragraph</p>
<p>Second paragraph
</p>
|
受
影響的元素:<basefont>、<body>、<colgroup>、<dd>、<
dt>、<head>、<html>、<li>、<p>、<tbody>、<
thead>、<tfoot>、<th>、<td> 和 <tr>。
必須終止空元素。所有空元素必須使用 XML
空標記語法,在右括號前有一個結尾的正斜杠(例如,
<br>
becomes
<br />
)。請注意元素文本后面的空格和結束定界符
/>
。這是為了與當前瀏覽器兼容。
HTML
|
XHTML
|
<hr>
|
<hr />
|
<br>
|
<br />
|
<input ... >
|
<input ... />
|
<param ... >
|
<param ... />
|
<img src="valid.gif">
|
<img src="valid.gif" />
|
受
影響的元素:<area>、<base>、<br>、<col>、<frame>、
<hr>、<img>、<input>、<isindex>、<link>、<
meta>、<option> 和 <param>。
屬性值必須加引號。不再有
<img ... border=0>
了?,F在,您需要給每個屬性加引號,即使它是數字。
HTML
|
XHTML
|
<img ... border=0>
|
<img ... border=
"0" />
|
不能最小化屬性值對。不允許單獨屬性(也稱為最小化的屬性)。例如,
<option selected>
不再有效了。而您必須使用
<option selected="selected">
。
內聯標記不能包含塊級別標記。例如,錨點標記不能括起表。
腳本編制元素引起了 XHTML 兼容性問題。XML 解析器將腳本解析成 XML 文檔,除非您將腳本封裝入 CDATA 塊中。因此,JavaScript 元素現在將類似于:
<script type="text/javascript"> <![CDATA[ alert("hello"); ]]> </script>
|
這對于大多數的當前瀏覽器來說,可能都有問題,因為它們不喜歡 CDATA 塊。目前,唯一的解決方案是從外部文件調用 JavaScript。例如:
<script language="JavaScript" type="text/javascript" src="main.js"></script>
|
對于服務器端程
序員,當動態修改 JavaScript 時,這會產生問題。對您的 JavaScript 使用獨立的文件源會阻止您動態地更改
JavaScript。因為 JavaScript 包括在客戶機端,所以服務器端不能接觸到它。當使用 ASP、JSP 或 PHP 腳本編制修改
JavaScript 時使用腳本聲明的標準 HTML 方法。這正是在使 JSP 或 ASP 100% 與 XHTML
兼容時最可能產生問題的地方。不過,請記住,目的并不是與 XHTML 100% 兼容,而是在可行的情況下開始結合
XHTML,使得需要時允許快速和簡單的過渡。那時,應該可以使用新的兼容瀏覽器,您將開始跨越到 100% 兼容性。
代替 CHTML 和 WML 的 XHTML Basic
對于想創建網站移動版本的開發人員來說,根本問題是他們當前必須用 HTML 將頁面格式化以便進行桌面瀏覽,對于 WAP
設備,可以用無線標記語言(Wireless Markup Language (WML));對于 iMode 設備可以用壓縮
HTML(Compact HTML (CHTML))。這已經產生了一個新的行業,致力于將現有的網站轉換成 WML 或 CHTML。WML 基于
XML,并且取代了快過時的手持設備標記語言(Handheld Device Markup Language (HDML)),而 CHTML
是基于 HTML 的。雖然這些標記語言很相似,但它們之間的區別使得 WAP 和 iMode 設備都不能看見 Web 頁面。而所有設備都將理解
XHTML Basic,并且它將成為一種通用標記語言。
可以獲取多種格式的完整 XHTML Basic 英文規范(請參閱
參考資料),這些格式包括 HTML、純文本、PostScript 和 PDF??梢灶A見 XHTML Basic 代替諸如 HDML 和 WML 的語言將是不可避免的。但是,重要的是記住 WML 和 HDML 還定義
操作和內容。目前,這些在 XHTML 中還沒有等價定義。因此,至少在短期內,WML 和 HDML 將不會消失。看誰會最終勝出將很有意思。在某種程度上計劃支持所有這三種標記語言。
XHTML 中的未來工作
XHTML 中仍在開發的一方面是
設備概要,
也稱為復合能力首選項概要文件(Composite Capability Preference Profiles (CCPP))。CCPP
允許諸如移動電話之類的設備向 Web 服務器標識自己、描述其限制并只下載其能夠顯示的信息。因為可以將 XHTML
文檔分割成能夠被單獨下載的多個模塊,所以 CCPP 能起作用。
W3C 正在與 WAP Forum 等合作開發 CCPP。2001
年夏季,開始 XHTML 2.0 開發,它是結合 HTML 和 XML 的最后一步。XHTML 2.0 是前瞻性的,因為它是幾種 XML
技術的結合體,例如 XLink、XPointer、XPath 和 XInclude ― 所有這些技術當前處于開發過程中或者最近由 W3C
發布(請 參考資料中的路標)。
結束語
XHTML 開辟了 Web 的新領域,為作者提供了在其 Web 頁面上混合和匹配各種基于 XML 的語言和文檔的方法。它還為非傳統 Web
訪問設備(從烤箱到電視機)提供了框架以向 Web 服務器標識它們自己及其能力,只要下載那些設備能顯示的信息。多虧有了
XHTML,您可以繼續使用您已經熟悉和喜愛的 HTML 編寫??赡苤恍枰晕⒄硪幌隆N也聹y XHTML 2.0(請參閱 參考資料)將具體地整理 HTML 標記及其用法。
總之,XHTML 簡化了可以讓各種新設備瀏覽的文檔的創建。另外,經過少許學習,您可以創建比以往功能強大得多的頁面。最后,XHTML 是通向 XML ― 因特網的未來語言的橋梁。
參考資料
關于作者
|
|
|
Sathyan
Munirathinam 擁有 Madurai Kamaraj 大學計算機科學學士學位和計算機應用碩士學位。作為 Aztec Software
的一名軟件工程師,他有兩年多的信息技術工作經驗。他的專業興趣是數據庫系統和聯網,他的個人興趣是閱讀技術期刊,入侵網絡系統和打板球??梢酝ㄟ^ sat_hyan@yahoo.com與他聯系。
|