XHTML:兩種語言的力量:可擴(kuò)展超文本標(biāo)記語言是用 XML 對(duì) HTML 4 的改良
級(jí)別: 初級(jí)
Sathyan Munirathinam, 軟件工程師, Aztec Software
2002 年 7 月 01 日
本文從實(shí)際角度對(duì) XHTML 進(jìn)行了研究,它是有效地結(jié)合 HTML 的簡單性和 XML 的可擴(kuò)展性的一種標(biāo)記語言。本文還涵蓋了 XHTML 各種風(fēng)格的基本特性并包括對(duì)語言和大量實(shí)際應(yīng)用程序的討論。
作為一 名 Web 開發(fā)人員是項(xiàng)很艱苦的工作。您不僅必須每天避開流行瀏覽器引起的陷阱和缺陷,還必須至少留意可能(或不可能)對(duì)您的工作產(chǎn)生影響的眾多技術(shù)上的新發(fā)展。您 可能剛剛掌握了樣式表和 DHTML,而新的技術(shù)又要求您關(guān)注。您需要立刻學(xué)哪一個(gè)呢?現(xiàn)在可以放棄哪一個(gè)呢?隨著可擴(kuò)展超文本標(biāo)記語言(Extensible Hypertext Markup Language,簡稱 XHTML)的出現(xiàn),最終可能讓傳統(tǒng)的 HTML 馬放南山了。
XHTML 是 HTML 和 XML 的混合物,它是為網(wǎng)絡(luò)設(shè)備顯示(包括 Web 瀏覽器、PDA 設(shè)備和移動(dòng)電話)而特別設(shè)計(jì)的。2002 年 1 月 26 日標(biāo)志了 XHTML 1.0 作為 Web 標(biāo)記的正式 W3C 推薦的第二個(gè)生日。但是,XHTML 仍然要蹣跚學(xué)步,學(xué)著用微笑和大喊大叫來引起大多數(shù) Web 設(shè)計(jì)人員的注意。
W3C 主管 Tim Berners-Lee 這樣評(píng)價(jià) XHTML:“XHTML 1.0 連接了現(xiàn)在的 Web 和將來的 Web …… 它為頁面和網(wǎng)站作者提供了進(jìn)入結(jié)構(gòu)化數(shù)據(jù) XML 世界的橋梁,同時(shí)仍然能夠保持與支持 HTML 4 的用戶代理的可操作性。"
XHTML 是非常嚴(yán)格的標(biāo)記語言。它的規(guī)則很簡單,并且事實(shí)上,它的可擴(kuò)展性很小 ― 即,不能編寫您自己的定義來表示語言如何動(dòng)作;您必須遵循其規(guī)則。XHTML 1.0 采用 HTML 4.0 中引入的概念,這些概念在其生效之前,需要按結(jié)構(gòu)化的和方法論的行為進(jìn)行處理。
XHTML 可以與級(jí)聯(lián)樣式表(CSS)一起使用以完成顯示目的。XHTML 還允許您將可擴(kuò)展樣式表(Extensible Stylesheet Language (XSL))用于轉(zhuǎn)換。通過使用這個(gè)基于 XML 的樣式技術(shù),您實(shí)際上可以將一個(gè)文檔從一種類型轉(zhuǎn)換成另一種類型 ― 例如,從 HTML 文檔轉(zhuǎn)換成 PDF 文檔。
![]() ![]() |
![]()
|
通常,您可能為新增功能或者因?yàn)橐呀?jīng)修正了以前版本的問題而將技術(shù)更新到新的版本。但就標(biāo)記功能而言,XHTML 是非常類似于 HTML 4 的副本,所以不要期望存在任何新奇的標(biāo)記。
W3C 聲稱 XHTML 的主要優(yōu)點(diǎn)是 可擴(kuò)展性和 可移植性:
XML 文檔要求格式良好(元素嵌套正確)。使用 HTML,添加新的元素組需要更改整個(gè) DTD。在基于 XML 的 DTD 中,新的元素組只需要內(nèi)部一致并且格式良好,就可以添加到現(xiàn)有的 DTD 中。這極大地簡化了新元素集合的開發(fā)和集成。
越來越頻繁地使用非臺(tái)式設(shè)備來訪問因特網(wǎng)文檔。在大多數(shù)情況下,這些設(shè)備不具備臺(tái)式計(jì)算機(jī)的計(jì)算能力,并且不象標(biāo)準(zhǔn)桌面瀏覽器那樣可適用于格式差的 HTML。實(shí)際上,如果這些非桌面瀏覽器沒有接收到格式良好的標(biāo)記(HTML 或 XHTML),它們可能根本無法顯示文檔。
![]() ![]() |
![]()
|
XHTML 文檔由三個(gè)主要部分構(gòu)成:
- DOCTYPE
- Head
- Body
基本文檔結(jié)構(gòu)是:
|
<head>
區(qū)域包含關(guān)于文檔的信息,如所有權(quán)、版權(quán)和關(guān)鍵字;而
<body>
區(qū)域包含要顯示的文檔內(nèi)容。
清單 1 向您顯示實(shí)際中如何使用這個(gè)結(jié)構(gòu):
清單 1. XHTML 示例
|
第 1 行:由于 XHTML 是以 XML 文檔表示的 HTML,所以它必須在文檔的頂部包括初始 XML 聲明
<?xml version="1.0"?>
。
第 2 行:XHTML 文檔必須由三組標(biāo)準(zhǔn)規(guī)則的其中一組來標(biāo)識(shí)。這些規(guī)則存儲(chǔ)在一個(gè)稱為“文檔類型聲明(Document Type Declaration (DTD))”的單獨(dú)文檔中,并且使用這些規(guī)則驗(yàn)證 XHTML 文檔結(jié)構(gòu)的準(zhǔn)確性。準(zhǔn)確地說,DTD 的目的是描述 XHTML 中允許的語言和語法。
第 3 行:XHTML 文檔中的第二個(gè)標(biāo)記必須包括帶有由
xmlns=http://www.w3.org/1999/xhtml
屬性標(biāo)識(shí)的 XML 名稱空間的開始 <html> 標(biāo)記。XML 名稱空間標(biāo)識(shí) XHTML 文檔使用的標(biāo)記的范圍。它用來確保一個(gè) DTD 使用的名稱不與用戶定義的標(biāo)記或其它 DTD 中定義的標(biāo)記沖突。
第 4 行:XHTML 文檔必須包括完整的頭部區(qū)域。這個(gè)區(qū)域包含開始
<head>
標(biāo)記和標(biāo)題標(biāo)記(
<title></title>
),然后以結(jié)尾
</head>
標(biāo)記結(jié)束。
第 5 行:XHTML 文檔必須包含開始和結(jié)尾
<body></body>
標(biāo)記。在這些標(biāo)記中,您可以放置傳統(tǒng)的 HTML 編碼標(biāo)記。要與 XHTML 符合,這些標(biāo)記的編碼必須是格式良好的。
第 6 行:最后,使用結(jié)尾
</html>
標(biāo)記結(jié)束 XHTML 文檔。
![]() ![]() |
![]()
|
在創(chuàng)建 XHTML 文檔時(shí),在該文檔的頂部聲明了它應(yīng)符合的 DTD。每個(gè) DTD 可能由一個(gè)稱為
正式公共標(biāo)識(shí)(Formal Public Identifier,簡稱 FPI)的唯一標(biāo)號(hào)識(shí)別。字
PUBLIC
后面的文字文本或引用文本是表示 W3C 的 XHTML 1.0 DTD 的 FPI。
目前,有三種 XHTML 文檔類型:
- Strict
- Transitional
- Frameset
|
當(dāng)您想要真正清晰的標(biāo)記、避免表示上的混亂時(shí),將此與 CSS 一起使用。已經(jīng)從該語言中除去了幾個(gè)標(biāo)記(如
<center>
),甚至還除去了其它標(biāo)記的某些屬性(如 H1 標(biāo)記的
align
屬性)。
|
當(dāng)您需要利用 HTML 的表示特性時(shí),使用它;您的許多讀者都沒有能理解 CSS 的最新瀏覽器。過渡的 DTD 支持大部分標(biāo)準(zhǔn)的 HTML 4 標(biāo)記和屬性。
|
這使您能夠使用 HTML 框架將瀏覽器窗口分成兩個(gè)或更多框架。這個(gè) DTD 保存框架集定義。
![]() ![]() |
![]()
|
XHTML 文檔 必須是格式良好的 XML。它必須符合基本 XML 語法:
必須用小寫書寫標(biāo)記和屬性名稱。
HTML | XHTML |
<TD BGCOLOR="#ffcc33">
|
<
td bgcolor="#ffcc33">
|
元素必須嵌套;而不能交錯(cuò)。對(duì)于 XML 和 XHTML,您需要以逆序關(guān)閉標(biāo)記 ― 換言之:后開先關(guān)。
HTML | XHTML |
<p>Be <b>bold!</p></b>
|
<p>Be <b>bold!
</b></p>
|
所有非空元素必須是關(guān)閉的。例如,對(duì)于 HTML,許多人使用
<p>
標(biāo)記分段。這個(gè)標(biāo)記設(shè)計(jì)用于標(biāo)記一段的開始和結(jié)尾(使用結(jié)尾
</p>
標(biāo)記)。這使它成為
非空標(biāo)記,因?yàn)樗挝谋尽?
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
空標(biāo)記語法,在右括號(hào)前有一個(gè)結(jié)尾的正斜杠(例如,
<br>
becomes
<br />
)。請(qǐng)注意元素文本后面的空格和結(jié)束定界符
/>
。這是為了與當(dāng)前瀏覽器兼容。
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>。
屬性值必須加引號(hào)。不再有
<img ... border=0>
了。現(xiàn)在,您需要給每個(gè)屬性加引號(hào),即使它是數(shù)字。
HTML | XHTML |
<img ... border=0>
|
<img ... border=
"0" />
|
不能最小化屬性值對(duì)。不允許單獨(dú)屬性(也稱為最小化的屬性)。例如,
<option selected>
不再有效了。而您必須使用
<option selected="selected">
。
內(nèi)聯(lián)標(biāo)記不能包含塊級(jí)別標(biāo)記。例如,錨點(diǎn)標(biāo)記不能括起表。
腳本編制元素引起了 XHTML 兼容性問題。XML 解析器將腳本解析成 XML 文檔,除非您將腳本封裝入 CDATA 塊中。因此,JavaScript 元素現(xiàn)在將類似于:
|
這對(duì)于大多數(shù)的當(dāng)前瀏覽器來說,可能都有問題,因?yàn)樗鼈儾幌矚g CDATA 塊。目前,唯一的解決方案是從外部文件調(diào)用 JavaScript。例如:
|
對(duì)于服務(wù)器端程 序員,當(dāng)動(dòng)態(tài)修改 JavaScript 時(shí),這會(huì)產(chǎn)生問題。對(duì)您的 JavaScript 使用獨(dú)立的文件源會(huì)阻止您動(dòng)態(tài)地更改 JavaScript。因?yàn)?JavaScript 包括在客戶機(jī)端,所以服務(wù)器端不能接觸到它。當(dāng)使用 ASP、JSP 或 PHP 腳本編制修改 JavaScript 時(shí)使用腳本聲明的標(biāo)準(zhǔn) HTML 方法。這正是在使 JSP 或 ASP 100% 與 XHTML 兼容時(shí)最可能產(chǎn)生問題的地方。不過,請(qǐng)記住,目的并不是與 XHTML 100% 兼容,而是在可行的情況下開始結(jié)合 XHTML,使得需要時(shí)允許快速和簡單的過渡。那時(shí),應(yīng)該可以使用新的兼容瀏覽器,您將開始跨越到 100% 兼容性。
![]() ![]() |
![]()
|
對(duì)于想創(chuàng)建網(wǎng)站移動(dòng)版本的開發(fā)人員來說,根本問題是他們當(dāng)前必須用 HTML 將頁面格式化以便進(jìn)行桌面瀏覽,對(duì)于 WAP 設(shè)備,可以用無線標(biāo)記語言(Wireless Markup Language (WML));對(duì)于 iMode 設(shè)備可以用壓縮 HTML(Compact HTML (CHTML))。這已經(jīng)產(chǎn)生了一個(gè)新的行業(yè),致力于將現(xiàn)有的網(wǎng)站轉(zhuǎn)換成 WML 或 CHTML。WML 基于 XML,并且取代了快過時(shí)的手持設(shè)備標(biāo)記語言(Handheld Device Markup Language (HDML)),而 CHTML 是基于 HTML 的。雖然這些標(biāo)記語言很相似,但它們之間的區(qū)別使得 WAP 和 iMode 設(shè)備都不能看見 Web 頁面。而所有設(shè)備都將理解 XHTML Basic,并且它將成為一種通用標(biāo)記語言。
可以獲取多種格式的完整 XHTML Basic 英文規(guī)范(請(qǐng)參閱 參考資料),這些格式包括 HTML、純文本、PostScript 和 PDF。可以預(yù)見 XHTML Basic 代替諸如 HDML 和 WML 的語言將是不可避免的。但是,重要的是記住 WML 和 HDML 還定義 操作和內(nèi)容。目前,這些在 XHTML 中還沒有等價(jià)定義。因此,至少在短期內(nèi),WML 和 HDML 將不會(huì)消失。看誰會(huì)最終勝出將很有意思。在某種程度上計(jì)劃支持所有這三種標(biāo)記語言。
![]() ![]() |
![]()
|
XHTML 中仍在開發(fā)的一方面是 設(shè)備概要, 也稱為復(fù)合能力首選項(xiàng)概要文件(Composite Capability Preference Profiles (CCPP))。CCPP 允許諸如移動(dòng)電話之類的設(shè)備向 Web 服務(wù)器標(biāo)識(shí)自己、描述其限制并只下載其能夠顯示的信息。因?yàn)榭梢詫?XHTML 文檔分割成能夠被單獨(dú)下載的多個(gè)模塊,所以 CCPP 能起作用。
W3C 正在與 WAP Forum 等合作開發(fā) CCPP。2001 年夏季,開始 XHTML 2.0 開發(fā),它是結(jié)合 HTML 和 XML 的最后一步。XHTML 2.0 是前瞻性的,因?yàn)樗菐追N XML 技術(shù)的結(jié)合體,例如 XLink、XPointer、XPath 和 XInclude ― 所有這些技術(shù)當(dāng)前處于開發(fā)過程中或者最近由 W3C 發(fā)布(請(qǐng) 參考資料中的路標(biāo))。
![]() ![]() |
![]()
|
XHTML 開辟了 Web 的新領(lǐng)域,為作者提供了在其 Web 頁面上混合和匹配各種基于 XML 的語言和文檔的方法。它還為非傳統(tǒng) Web 訪問設(shè)備(從烤箱到電視機(jī))提供了框架以向 Web 服務(wù)器標(biāo)識(shí)它們自己及其能力,只要下載那些設(shè)備能顯示的信息。多虧有了 XHTML,您可以繼續(xù)使用您已經(jīng)熟悉和喜愛的 HTML 編寫。可能只需要稍微整理一下。我猜測(cè) XHTML 2.0(請(qǐng)參閱 參考資料)將具體地整理 HTML 標(biāo)記及其用法。
總之,XHTML 簡化了可以讓各種新設(shè)備瀏覽的文檔的創(chuàng)建。另外,經(jīng)過少許學(xué)習(xí),您可以創(chuàng)建比以往功能強(qiáng)大得多的頁面。最后,XHTML 是通向 XML ― 因特網(wǎng)的未來語言的橋梁。
![]() ![]() |
![]()
|
- 您可以參閱本文在 developerWorks 全球站點(diǎn)上的
英文原文.
- 請(qǐng)通過單擊本文頂部或底部的
討論來參與本文的
論壇。
- 查看
W3C XHTML 1.0 規(guī)范,它將 HTML 4 的改造定義成一種 XML 1.0 應(yīng)用程序,并且定義了三個(gè)與 HTML 4 定義的 DID 相應(yīng)的 DTD。
- 查看
XHTML.org以獲取關(guān)于 XHTML 的新聞和信息。
- 請(qǐng)閱讀
XHTML 的簡介和概述,它包括對(duì) XHMTL 和 HTML 4 之間區(qū)別的說明。
- 查找關(guān)于
XHTML Basic的更多信息。
- 查看
HTML Working Group Roadmap,它描繪了 XHTML 未來發(fā)展的清晰藍(lán)圖,包括關(guān)于 XHTML 2.0 的信息。
- 查看
Encyclozine.com,它是用 XHTML 構(gòu)建的站點(diǎn)示例。
- 要驗(yàn)證 XHTML 頁面,請(qǐng)嘗試
W3C HTML 驗(yàn)證服務(wù)。
- 在
developerWorks XML 技術(shù)專區(qū)中查找更多 XML 參考資料。
- 在
developerWorks 網(wǎng)站架構(gòu)主題中查找更多 Web 參考資料。
- 獲取
IBM WebSphere Studio Application Developer,它是一個(gè)易于使用的集成開發(fā)環(huán)境,用于構(gòu)建、測(cè)試和部署 J2EE 應(yīng)用程序,包括從 DID 和模式生成 XML 文檔。
- 查看如何成為
XML 和相關(guān)技術(shù)的 IBM 認(rèn)證開發(fā)人員。
![]() ![]() |
![]()
|
![]() |
||
|
![]() |
Sathyan Munirathinam 擁有 Madurai Kamaraj 大學(xué)計(jì)算機(jī)科學(xué)學(xué)士學(xué)位和計(jì)算機(jī)應(yīng)用碩士學(xué)位。作為 Aztec Software 的一名軟件工程師,他有兩年多的信息技術(shù)工作經(jīng)驗(yàn)。他的專業(yè)興趣是數(shù)據(jù)庫系統(tǒng)和聯(lián)網(wǎng),他的個(gè)人興趣是閱讀技術(shù)期刊,入侵網(wǎng)絡(luò)系統(tǒng)和打板球。可以通過 sat_hyan@yahoo.com與他聯(lián)系。 |
posted on 2006-03-18 20:51 Vincent.Chen 閱讀(354) 評(píng)論(0) 編輯 收藏 所屬分類: AJAX