新標準的熟悉和入門
內(nèi)容: 還在用 HTML 編寫文檔?如果是的話,就不符合當前標準了。2000 年 1 月 26 日,XHTML 1.0 成為萬維網(wǎng)聯(lián)盟(W3C) 的建議。根據(jù) W3C,HTML 不再是 Web 標記標準。取而代之,XHTML 1.0 已替代舊寵兒,標志著通信技術(shù)令人興奮的新時代已經(jīng)來臨。
那么,XHTML 1.0 到底是什么?對 Web 開發(fā)人員來說,它意味著什么?下面從 W3C 的描述講起:XHTML 1.0 是 XML 應用程序的 HTML 再形成。這意味著,如果用 XHTML 1.0 編制文檔,則將 XML 固有的規(guī)則和概念應用到 Web 標記。很自然,還有個搖擺的問題:現(xiàn)在可以用 XHTML 1.0 標記 Web 文檔嗎?答案很明確:“是的”。所要做的全部只是學會正確組織文檔結(jié)構(gòu),選擇所需的正確文檔類型定義 (DTD),以及學會幾種管理代碼開發(fā)的新方法。
但是,XHTML 1.0 怎么會如此輕易上手呢?在編寫文檔時,您將看到,它使用您所熟悉的 HTML 作為其詞匯。在方法上有較小的變化,而在思路上有主要的不同,XHTML 1.0 允許 Web 作者依據(jù)標準進行編碼,并開始改變有關(guān)未來發(fā)展和更改的 觀點。
為什么需要另一種標記語言? HTML 使用起來相當好。確實,我們一直受到提出確實管用的跨瀏覽器、跨平臺解決方案的挑戰(zhàn)。但是,在 Web 從 90 年代的早期形式發(fā)展到今天我們所知的充滿活力的活動 Web 的過程中,也意味著在前進途中消耗、破壞甚至制造了新的HTML 規(guī)則。
學過 HTML 4.0 準則的開發(fā)人員都知道,在 HTML 4.0 標準出現(xiàn)時,已經(jīng)確定了改進 HTML 準則的最終目標。HTML 4.0 的一些主要考慮包括:
通過將基本格式化與樣式分離,來整理文檔反對使用隨心所欲或有問題的元素 要求聲明文檔類型(并希望在聲明中,作者遵循 HTML 4.0 的三個 DTD 中的規(guī)則) 這些原則都在 XHTML 1.0 中存在,但是它們與 XML 中的概念組合在一起,這些概念幫助改進標記超出只加強其基本語法的作用。XHTML 1.0 的目標很多,但是,包括以下幾個:
提供 Web 標記中可擴展性的基礎 通過過去、現(xiàn)在和將來的瀏覽器,提供相同或更好的互操作性 通過即將來臨的 XHTML 版本、其它 XML 應用和剛剛出現(xiàn)的技術(shù)(如無線和新型設備開發(fā)),使作者為不斷發(fā)展的機遇作好準備。采用 XHTML 1.0 最有說服力的理由恐怕是:開發(fā)人員(特別是通過 HTML 自學、或依靠可視設計工具來實現(xiàn)其目標的開發(fā)人員)可以通過學習該標準,來輕易地移至其它 XML 應用。然后,他們就可以看到 XML 和可擴展性的力量。因為過程相似:即 HTML 詞匯加上一些新的結(jié)構(gòu)和語法方法,所以,XHTML 1.0 使 XML 及其應用的領域不再令人畏懼。
通過使用熟悉的語言和一些新的概念,很容易轉(zhuǎn)入不太熟悉的領域。例如,XHTML 1.0 的知識可以簡化轉(zhuǎn)移到即將出現(xiàn)的XHTML 版本以及無線和其它應用的相關(guān) XML 技術(shù)的過程(如 WML(無線標記語言)、SMIL(同步多媒體語言)和 SVG(可伸縮矢量圖形))。
探詢根源 探詢 XHTML 根源有助于理解 XHTML 的基本原理及指引它的規(guī)則。 XML 和 HTML 的根源相同,都是 SGML,即標準通用標記語言 (Standardized General Markup Language)。有一點很重要:SGML 本身不是一門語言。它是人們所知的元語言 -- 即包含開發(fā)其它語言所依據(jù)規(guī)則的語言。
XML 與其根源 SGML 一樣,也是元語言。正如這樣,其規(guī)則用于創(chuàng)建 XML 應用。而 XHTML 是將另一門 SGML 語言,HTML,用作其詞匯的 XML 應用。
如果關(guān)系看起來有些復雜,那是因為它確實有些復雜。SGML 首先產(chǎn)生 HTML,然后是 XML。當覺察到 HTML 的擔心和限制時,XML 規(guī)則就很明顯地可以使 HTML 成長為幫助開發(fā)人員脫離這些限制的標記語言。
首先,需求 為了使 XHTML 1.0 文檔符合其元語言 (XML),必須考慮幾個需求和規(guī)則。如下所示:
建議、但不要求使用 XML 聲明將 XHTML 1.0 文檔聲明成 XML 文檔。 要求 XHTML 1.0 文檔包含一個 DOCTYPE,指明這是 XHTML 1.0 文檔,并指出該文檔所用的 DTD。 XHTML 1.0 文檔有一個根元素 <html>。該 HTML 元素的開始標記應該包含 XML 名稱空間 xmlns 和該名稱空間的合適值。 文檔的語法和結(jié)構(gòu)必須符合 XHTML 語法規(guī)則。 實現(xiàn)該目標的第一步是正確組織 XHTML 1.0 文檔的結(jié)構(gòu)。將從添加正確的聲明和文檔信息開始。
文檔聲明、類型和名稱空間 XHTML 1.0 文檔可以包含幾個結(jié)構(gòu)元素,以便被認為是正確的:一個 XML 聲明、一個 DOCTYPE 聲明,并包括名稱空間。 XML 聲明允許作者將其文檔聲明成 XML,并包括文檔所用的編碼。 <?xml version="1.0" encoding="UTF-8"?> 如前面提到的,建議使用此聲明,但這不是必需的。不強制使用的部分原因是:如果使用,則某些瀏覽器(包括 IE 4.5for Mac 和 Netscape 4.0 for Windows)將顯示不正確的 XHTML 頁面。因此,大多數(shù)對互操作性感興趣的 XHTML 1.0 作者不使用它。但是,因為編碼信息在很多情況下很重要(特別在使用國際化文檔時),所以,如果不使用 XML 聲明,則鼓勵在 meta 標記中添加編碼信息(在后面的清單 2 中顯示)。
在 XML 文檔聲明的下面 - 如果選擇不使用它,則位于文檔頂部 - 必須放置 DOCTYPE 聲明。DOCTYPE 允許作者聲明所用的文檔類型。在本例中,文檔類型是 XHTML 1.0,該文檔要符合的特定 XHTML 1.0 DTD 為 strict。
XHTML 1.0 中只有三種 DTD。它們來自 HTML 4.0,其內(nèi)容如下:
Strict:Strict 遵循最嚴格的 XHTML 規(guī)則。在以該類型編寫的文檔中,只允許出現(xiàn)當前元素、屬性和字符實體。不允許出現(xiàn) HTML 4.0 所反對的元素(如 font 或 center)。也不允許過時的元素。Strict 聲明如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- strict.dtd"> Transitional:transitional XHTML 1.0 文檔更寬容一些,它允許作者使用所反對的和當前的方法?梢栽趖ransitional 文檔中使用 font 或 center,或任何其它所反對的標記,只要文檔本身標記正確即可。不應該使用過時的元素。如果在用 XHTML 1.0 編寫 transitional 文檔,將包括以下聲明: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> Frameset: frameset DTD 只為 frameset 文檔保留。符合該 DTD 的 frameset 文檔可以使用 strict 或 transitional標記。要以 XHTML 1.0 創(chuàng)建 frameset 文檔,在文檔頂部包括這個 DOCTYPE: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 確定了是否使用 XML 聲明,并且添加了定義要遵循的標記規(guī)則的 DOCTYPE 聲明之后,需要將 HTML 根添加到文檔,并相應設置 XHTML 名稱空間: <html xmlns="http://www.w3.org/1999/xhtml"> 此時,要添加一些必需的結(jié)構(gòu)元素,如 head、title 和 body。清單 1 顯示包括 XML 聲明的 XHTML 1.0 transitional文檔外殼。在清單 2 中,將看到不帶 XML 聲明的 transitional 文檔,但是,有一個 meta 標記來聲明所用字符集。
清單 1:帶有 XML 聲明的 Transitional DTD 格式的 XHTML 1.0 文檔 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Transitional Document with XML Declaration</title> </head> <body> </body> </html> 在清單 2 中,將看到不帶 XML 聲明的 transitional 文檔,但是,有一個 meta 標記來聲明所用字符集。
清單 2:不帶 XML 聲明的 Transitional DTD 格式的 XHTML 1.0 文檔 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Transitional Document without XML Declaration</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> </head> <body> </body> </html>
語法事項 一旦 XHTML 文檔包含必需的聲明和結(jié)構(gòu)信息,就可以檢查由 XML 在 Web 標記上的影響而導致的語法更改。這些語法更改包括是否區(qū)分大小寫、正確格式的標記元素、空和非空元素,以及引號的使用。
大小寫 如您所知,HTML 不區(qū)分大小寫。這意味著,HTML 元素和屬性名稱可以是大寫、小寫或大小寫混合的。因此,可以寫成: <body background="my.gif"> 或 <BODY BACKGROUND="my.gif"> 甚至 <BoDy background="my.gif"> 所有這些示例的功能相同。另一方面,XML 卻是區(qū)分大小寫的。因此,XHTML 要求有特定的大小寫。在 XHTML 1.0 中,所有元素和屬性名稱必須是小寫的: <body background="my.gif"> 除元素和屬性名稱之外,其它不必遵循 XHTML 1.0。請注意,屬性值(例如 "my.gif")可以是大小寫混合的。如果文件所在服務器的文件系統(tǒng)是區(qū)分大小寫的,或者在應用中使用大小寫混合的代碼(例如那些用 Microsoft 的活動服務器頁面 (ASP)、ASP+ 或 ColdFusion 編寫的代碼),則尤其如此。
良好的格式 雖然很多 HTML 瀏覽器很寬容,但是,很多 HTML 工具不符合標準。就這樣,某些作者養(yǎng)成了壞習慣,如不正確的標記嵌套。下例在很多瀏覽器中可以使用: <b><i>Welcome to MySite.Com</b></i> 在寬容的瀏覽器中,它將顯示粗體和斜體。但是,如果拿起筆來,從粗體的開始標記到其結(jié)束標記畫一個弧,然后,再從斜體的開始標記到其結(jié)束標記畫一個弧,將看到,兩條弧線相交。這展示了不正確的標記嵌套,我們認為,這是壞格式。
在 XHTML 1.0 中,不接受這樣的壞格式標記。必須在“每個元素必須正確嵌套”方面符合良好格式的概念。前面示例用XHTML 1.0 表示為: <b><i>Welcome to MySite.Com</i></b> 現(xiàn)在,再畫弧,將看到,弧線不再相交。這些標記以正確順序放置,并被認為是正確的格式。
非空和空元素 非空元素包含一個元素和一些內(nèi)容: <p>This is the content within a non-empty element.</p> 相反,空元素沒有內(nèi)容,只有元素及其屬性,如 <hr> 和 <img>。
XML 規(guī)則指出,空元素和非空元素必須完全關(guān)閉。在 HTML 中,可以看到非空元素通常有一些可選的結(jié)束標記。上段可以這樣寫: <p>This is the content within a non-empty element. 在 HTML 中,認為這是正確的。XHTML 1.0 要求,非空元素要完全關(guān)閉。另一個例子是 <li>(列表項)元素。在 HTML中,可以寫成: <li>The first item in my list. <li>The second item in my list. 或 <li>The first item in my list. </li> <li>The second item in my list. </li> 在 XHTML 1.0 中,只允許后一種方法。
在 XML 中,用斜杠終止空元素。因此,變成 <br/>。由于某些習慣于解釋 HTML 的瀏覽器在使用該方法時有問題,所以,引入了替代方法,即在斜杠之前添加一個空格:<br />。
這是一個圖像元素的 XHTML 示例,它是空元素: <img src="my.gif" height="55" width="25" border="0" alt="picture of me" /> 其它要注意的空元素是 meta 和 link。
引號 HTML 中的引號是任意的,即,可以在屬性值前后使用引號,也可以不使用,并且不會導致太多麻煩。沒有規(guī)則說:不用引號將值括起為非法。下例在 HTML 中完全可接受: <table border=0 width="90%" cellpadding=10 cellspacing="10"> 盡管有些屬性值用引號括起,有些沒有,但瀏覽器將正確顯示該標記。但是,如果要遵循 XHTML 1.0,則必須將所有屬性值用引號括起。 <table border="0" width="90" cellpadding="10" cellspacing="10"> 如您可見,這些更改都不大。還有點兒煩,是的,但是,一旦開始使用這種方法,將會發(fā)現(xiàn),這種標記要方便得多。一致 性是使 XHTML 1.0 如此吸引人的原因之一 -- 它提供了構(gòu)建未來結(jié)構(gòu)的堅實基礎。
XHTML 的未來 既然 XHTML 如此易用,為什么這么長時間才被采用呢?這是很多關(guān)心標準的人在問的問題。該問題的部分原因可能是宣傳得不夠 -- 沒有太多人了解 XHTML 1.0。甚至即使聽說過,也可能沒意識到:現(xiàn)在使用它有多簡單。
另一個原因是:目前用于 HTML 開發(fā)的軟件工具(如 Adobe GoLive、Macromedia Dreamweaver、Microsoft FrontPage 等)不支持 XTHML,很多喜愛這些工具或必須在工作中使用這些工具的 Web 作者對此感到擔心。
但是,盡管有這些困難,XHTML 1.0 正在前進。事實上,下一版本,XHTML 1.1,已經(jīng)相當完善,并包含 Web 標記作者某些新的、不同的概念。模塊化(將語言分成彼此獨立的模塊)是 XHTML 1.1 的主要部分。而且,更多類似于 XML 的優(yōu)勢在發(fā)揮作用。例如,為 XHTML 文檔編寫自己的 DTD 或者使用模式 (schema) 的能力將帶來真正的可擴展性。
XHTML 1.0 是當今的 Web 標記標準。如果還沒使用它,至少應該好好嘗試一下。在與 XML 相關(guān)的技術(shù)領域發(fā)生的進展(特別是無線領域)強有力而令人信服地表明:標記語言的作者越靈活,其前景就越被看好。XHTML 1.0 是開闊您眼界的極佳方法。夠熟悉,就有意義;夠強大,可以幫助您創(chuàng)建適用于今天、更為明天激動人心的機遇作好準備的穩(wěn)定、可互操作的 Web 站點。
參考資料
World Wide Web Consortium XHTML Recommendation。這是 W3C 站點上詳細解釋 XHTML 1.0 的標準文檔 XHTML 1.1。正在討論中,XHTML 的這個下一版本涉及到 XHTML 1.0 的模塊化方面。 可以在這里找到 Chuck Musciano 所著的 Web Review series on XHTML 1.0。 Mozquito.Com 是 Mozquito Technologies 的 Web 站點,他專為 XHTML 制作軟件產(chǎn)品。還可以在他們的站點找到很好的 教程和大量資源鏈接。 關(guān)于作者 作為作家、講師和設計人員,Molly E. Holzschlag 將其觀點和熱情帶入書籍、雜志和 Web 站點。被 Webgrrls 評為 Web 上最有影響的 25 位女性之一,Molly 在聯(lián)機世界已工作 10 年之久。她寫了 15 本關(guān)于 HTML 和 Web 設計與開發(fā)主 題方面的書籍,包括即將出版的 Que 的 Special Edition Using XHTML 1.0、最暢銷的 Special Edition Using HTML 4.0 和得到國際上普遍贊譽的 Web by Design。她的流行欄目,Integrated Design,每月出現(xiàn)在 WebTechniques 雜志。 她還是 Web Review 的執(zhí)行編輯,也是 Adobe Magazine、Builder.Com、DesignShops.com、Digital Chicago、Digital New York、IBM developerWorks、MacWorld、MSDN、PlanetIT 的作家,還是其它開發(fā)人員資源的成員之一?梢栽煸L她的 Web 站點 http://www.molly.com/。
出處:藍色理想
責任編輯:panliu888
◎進入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|