本篇內(nèi)容主要講解“XHTML基礎(chǔ)入門知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習“XHTML基礎(chǔ)入門知識點有哪些”吧!
成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),雅安服務(wù)器托管、主機租用、主機托管,四川、重慶、廣東電信服務(wù)器租用,溫江服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
摘要
XHTML 1.0是作為XML1.0應(yīng)用而重新制定的HTML4。本規(guī)范書定義XHTML 1.0以及其中與HTML 4對應(yīng)的3種文檔類型定義(DTD,Document Type Definition)。 每個元素的語義和它們的屬性已經(jīng)在W3C Recommendation for HTML 4中定義,它們是XHTML將來擴展的基礎(chǔ)。只要遵循一小套指導(dǎo)方針,XHTML文檔就能和現(xiàn)存的HTML用戶代理程序兼容。
本文檔的狀況
本節(jié)描述本文檔發(fā)布時的狀況。其它的文檔也許會取代本文檔。W3C負責維護本文檔系列的最新狀況。本文檔由W3C的成員和一些對此感興趣的團體審閱,并經(jīng)主管認可而成為W3C推薦標準。 這是一個穩(wěn)定的文檔,可以作為參考材料或在其它文檔中作為標準引用。W3C制定本推薦標準的目的就是使大家注意到本規(guī)范說明書,使之廣泛傳播,增強Web的功能和互用性。
1. 什么是 XHTML?
XHTML是一系列當前和將來的文檔類型和程序塊,它由HTML 4 [HTML]再生和擴展而來,HTML 4是其子集。XHTML系列文檔基于XML,最終被設(shè)計用來與基于XML的用戶代理程序一起工作。XHTML家族的詳情及其發(fā)展過程在未來趨勢一節(jié)中詳述。
XHTML 1.0(本規(guī)范書)是XHTML家族的第一個文檔。它是將3種HTML 4文檔類型應(yīng)用到XML 1.0 [XML]之后重新形成的。其意圖是,作為一種語言,它的內(nèi)容既符合XML,并且如果依照一些簡單的指導(dǎo)方針,也能被HTML4用戶代理程序識別。開發(fā)者將它們的文檔移植成為XHTML 1.0,會得到以下好處:
XHTML文檔遵從XML。這樣,用標準的XML工具很容易查看,編輯和檢驗它們。
XHTML文檔可以在現(xiàn)有的HTML4代理用戶程序中使用,也可以在新的XHTML用戶代理程序中使用,在后者中可以達到與前者同樣或更好的效果。
XHTML 文檔中使用的應(yīng)用程序(如script 和 applet) 可以是HTML 的文檔對象模型(Document Object Model) ,也可以是 XML 的文檔對象模型 [DOM]。
隨著 XHTML 家族的發(fā)展,遵從XHTML 1.0的文檔更有可能運用在各種XHTML環(huán)境中。
XHTML家族是Internet發(fā)展的下一步。 將現(xiàn)在將文檔移植成XML,開發(fā)者在確保他們的文檔向前后兼容的同時,還能享有進入XML世界帶來的好處。
1.1 什么是HTML 4?
HTML 4 [HTML] 是SGML (Standard Generalized Markup Language) 的一個應(yīng)用,遵從國際標準ISO 8879,被廣泛的當作 World Wide Web上的標準出版語言。
SGML是一種描述標記語言,特別是那些用于電子文檔交換,文檔管理和文檔發(fā)布語言的語言。HTML是SGML定義的語言的一個實例。
SGML出現(xiàn)在80年代中期,一直保持得很穩(wěn)定。穩(wěn)定是原因是它有豐富的特征和具有靈活性。但是,靈活性的帶來一定程度的復(fù)雜性,限制了它在多種環(huán)境下的適應(yīng)性,包括World Wide Web。
HTML最初的構(gòu)想是作為一種交換科學(xué)和其它技術(shù)文檔的一種語言,供那些不熟悉書寫文檔的專家使用。HTML規(guī)定一小套結(jié)構(gòu)語義標簽,適于書寫相對簡單的文檔,從而解決了SGML復(fù)雜性的問題。除了簡化了文檔結(jié)構(gòu)外,HTML還加入了對超文本的支持,以后還增加了媒體功能。
在非常短的時間內(nèi),HTML變得廣泛流行,并且很快超出了其原來的目的。HTML(標準)內(nèi)部的新元素以很快的速度創(chuàng)造出來,HTML也被很快的改編以用于垂直的,高度專門化的市場。多余的新元素導(dǎo)致文檔在跨平臺時的兼容問題。
隨著軟件和平臺不一致性增加,很顯然,“經(jīng)典的”HTML 4在這些平臺上使用的適用性就會受到一些限制。
1.2 什么是 XML?
XML[XML]是Extensible Markup Language的縮寫,創(chuàng)造XML的目的是重新獲得SGML的能力和靈活性,而去除其大部分復(fù)雜的東西。盡管是一個受限制SGML的形式,但是XML仍保留了SGML的大部分功能和豐富性,還保留了SGML的所有常用特性。
在保留這些有用的特性的同時,XML去掉了SMGL中很多更復(fù)雜的特性,這些特性使得書寫和設(shè)計合適的軟件既困難又昂貴。
1.3 為什么需要XHTML?
上面已經(jīng)提到了移植到XHTML的好處,一般來說,移植到XHTML的好處有:
文檔開發(fā)者和用戶代理程序設(shè)計商常常用新方法,新標簽來表達它們的想法。用XML導(dǎo)入新元素和新的元素屬性相對來說更容易。XHTML家族被設(shè)計用來提供這些擴展,通過XHTML模塊和開發(fā)新的遵從XHTML的模塊的技術(shù)。(將在即將出臺的XHTML模塊化規(guī)范說明書中描述)。在開發(fā)文檔和設(shè)計新用戶代理程序時,這些模塊將允許混合使用現(xiàn)有的和新的特性集。
各種替代的訪問Internet的方法不斷的被提出。一些人估計,到2002年,internet上75%的文檔會在這些替代的平臺上被查看。XHTML 在設(shè)計時就考慮到用戶代理程序的協(xié)同工作性。通過一個新的用戶代理程序和文檔協(xié)議機制,服務(wù)器、代理程序和用戶代理程序?qū)⒛軌蜃罴训貪M足傳輸,最后,有可能開發(fā)出遵循XHTML的文檔,能被任何遵循XHTML的用戶代理程序使用。
2. 定義
2.1 術(shù)語
本規(guī)范書要用到下面的詞條。這些詞條基于ISO/IEC 9945-1:1990 [POSIX.1]中類似的定義,并擴展定義在[RFC2119]中:
執(zhí)行定義(Implementation-defined)
一個值或行為被執(zhí)行定義時,它由執(zhí)行來定義相應(yīng)的需要以正確解釋文檔。
可以(May)
在執(zhí)行時,詞“可以”被解釋為一個可選的特性,在本規(guī)范書中不是必須的,但是可以提供。對于文檔一致性來說,詞”可以”的意思是不能使用可選的特性。 ”可選的”(optional)和”可以”的定義是相同的。
必須(Must)
在本規(guī)范書中,“必須”被解釋為,在執(zhí)行時或?qū)τ趪栏褡裱璛HTML的文檔的強制需要。詞條”應(yīng)當”(shall)和”必須”的定義相同。。
保留(Reserved)
一個值或行為未被指定,但是不允許用于符合規(guī)范的文檔,也不被符合規(guī)范的用戶代理程序支持。
應(yīng)該(Should)
在執(zhí)行時,”應(yīng)該”被解釋為一個執(zhí)行時的建議,但不是一個必須。對于文檔來說,“應(yīng)該”被解釋為:編程練習時是推薦使用的,對于嚴格遵循XHTML的文檔,則是必須的。
被支持(Supported)
本規(guī)范書中某些功能是可選的,如果一個功能被支持,它的行為被本規(guī)范書規(guī)定。
未指定(Unspecified)
一個值或行為未被指定時,規(guī)范書不定義一個功能的可移植性要求,即使文檔中使用了這個功能。在這種情況下,一個需要指定的行為的文檔,而不是在使用這個功能時允許任何行為,不是一個嚴格遵循XHTML的文檔。
2.2 常見詞條
屬性(Attribute)
屬性是在DTD中聲明過的某個元素的一個參數(shù)。屬性的類型和取值范圍,包括它可能的缺省值,在DTD中定義。
DTD
一個 DTD,又稱文檔類型定義,是一個XML聲明集合,在其中定義遵從DTD的文檔中使用的合法的結(jié)構(gòu),元素和屬性。
文檔(Document)
文檔是一個數(shù)據(jù)流,還包括它引用的其它數(shù)據(jù)流。文檔的結(jié)構(gòu)是用相關(guān)的DTD定義的元素組織起來來保存信息。更多信息,請參看 Document Conformance 。
元素(Element)
元素是在DTD中聲明的文檔的結(jié)構(gòu)單位。元素的內(nèi)容模型在DTD中定義,額外的語義可以在另外的元素描述中定義。
功能(Facilities)
功能包括元素,屬性和與元素屬性相關(guān)的語義。支持這些功能的執(zhí)行說成提供了所需的功能。
執(zhí)行(Implementation)
執(zhí)行是指系統(tǒng)提供了功能和服務(wù)集以支持本規(guī)范書。更多信息,請參看User Agent Conformance。
分析(Parsing)
分析是掃描文檔的動作,文檔包含的信息被過濾成元素的上下文結(jié)構(gòu)包含的信息。
顯示(Rendering)
顯示是文檔信息被呈現(xiàn)的動作。顯示以最適合環(huán)境的形式完成(如聲覺,視覺,打?。?。
用戶代理程序(User Agent)
用戶代理程序是執(zhí)行程序,獲取并處理XHTML文檔。更多信息,請查看User Agent Conformance。
驗證(Validation)
驗證是用相關(guān)的DTD檢驗文檔的過程,以確信結(jié)構(gòu),元素的使用,屬性的使用和DTD中的定義一致。
格式良好(Well-formed)
一個格式良好的文檔的結(jié)構(gòu)依照XML1.0推薦標準[XML]中2.1節(jié)Section 2.1的規(guī)定?;旧希@個定義規(guī)定了元素必須有起始和結(jié)束標簽,要正確的互相嵌套。
3. XHTML 1.0的標準定義
3.1 文檔一致性
本版本 XHTML 提供了嚴格的遵循XHTML文檔的定義,受限于XHTML名址提供的標簽和屬性。使用XHTML其它名址空間的信息,如RDF表達的元數(shù)據(jù),請參看Section 3.1.2 。
3.1.1 嚴格遵循的文檔。
一個嚴格遵循XHTML的文檔只需要本規(guī)范書描述的強制性功能,必須依照下列標準:
它必須經(jīng)過附錄A Appendix A中的3中DTD之一的驗證。
文檔的根元素必須是。
文檔的根元素必須用xmlns屬性[XMLNAMES]指定XHTML名址。XHTML的名址在中定義。
在根元素之前,必須有一個DOCTYPE 聲明。DOCTYPE聲明中包含的公共標識符必須引用附錄A Appendix A中的3中DTD的一種,每種DTD有各自的正式公共標識符。系統(tǒng)標識符可以改變以適應(yīng)本地系統(tǒng)。
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"DTD/xhtml1-frameset.dtd">
下面是一個最小的XHTML文檔示例:
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
Moved to vlib.org.
注意在這個例子中含有XML聲明。 XML聲明并不是在所有的XML文檔中都是必須的。XHTML被強烈建議使用XML聲明。當字符編碼不是缺省的UTF-8或UTF-6時,這樣的聲明是必須的。
3.1.2 在XHTML中使用其它名址空間
在XHTML名址空間中可以用[XMLNAMES]使用其它XML名址空間,盡管這樣文檔會不是嚴格遵循XHTML的文檔。W3C將在以后致力為多名址空間指定一致性的問題。
下面的例子說明XHTML1.0和MathML推薦標準聯(lián)合使用的方法。
The following is MathML markup:
下面的例子說明XHTML1.0和其它XML名址空間聯(lián)合使用的方法:
xmlns:isbn=‘urn:ISBN:0-395-36341-6‘ xml:lang="en" lang="en">
This is also available online.
3.2 用戶代理程序一致性
一個遵從的用戶代理程序必須遵照下面所有標準:
為和XML1.0推薦標準一致 [XML],用戶代理程序必須分析和評估XHTML文檔的編排良好性。如果用戶代理程序宣稱自己是一個帶驗證能力的用戶代理,它還必須依照[XML]安文檔引用的DTD來驗證文檔。
當用戶代理程序宣稱支持本規(guī)范書定義的功能facilities時,它必須按功能的定義來支持。
當用戶代理程序按一般的XML來處理XHTML文檔時,它應(yīng)當只將ID類型的屬性(如多數(shù)XHTML元素的ID屬性)識別成片段標識符。
如果用戶代理程序遇到一個它不識別的元素,它必須顯示元素的內(nèi)容。
如果用戶代理程序遇到一個它不識別的屬性,它必須忽略整個屬性的定義(即屬性及其值)。
如果用戶代理程序遇到一個它不識別的屬性值,它必須使用使用屬性的缺省值。
如果它遇到一個實體引用(不是預(yù)定義了的實體),用戶代理程序沒有處理過其聲明(如果聲明是在用戶代理程序沒有讀到的外部子集中就會發(fā)生),實體引用應(yīng)該以字符顯示(以&符號開始,以半冒號結(jié)束),以編排成實體引用。
在顯示內(nèi)容時,用戶代理程序如果遇到它不認識的字符或認識但不能顯示字符實體引用,它應(yīng)該以顯眼的方式告訴用戶發(fā)生了異常顯示。
下面的字符在 [XML]中被定義為 空白(whitespace)字符:
空格 ( )
Tab ( )
回車 (
)
換行 (
)
XML處理程序?qū)⒉煌到y(tǒng)的行結(jié)束碼規(guī)格化為單個換行附傳遞給應(yīng)用。因此XHTML還必須將下列字符看成空白字符:
換頁 ()
0寬度空格 (?)
對 ‘xml:space‘ 屬性被設(shè)為”保留”的元素,用戶代理程序必須保持所有空白字符的原樣 (引導(dǎo)和結(jié)尾處空白字符除外,這些字符應(yīng)該被刪除)。 否則,按下列規(guī)則處理空白字符:
所有塊元素周圍的空白字符應(yīng)該被刪除。
注釋全部去除,不影響空白符的處理。注釋兩旁的一個空白符被處理為兩個空白符引導(dǎo)和結(jié)尾處空白字符應(yīng)該被刪除塊元素內(nèi)的換行字符必須轉(zhuǎn)換成空格 (‘xml:space‘ 屬性被設(shè)為”保留”時例外)。
一串連續(xù)的空白字符必須減少為單個空格 (‘xml:space‘ 屬性被設(shè)為”保留”時例外)。
在顯示時,用戶代理程序應(yīng)該以恰當?shù)姆绞斤@示文檔內(nèi)容為文檔內(nèi)容書寫的語言。在主要是拉丁書寫體的語言中,ASCII空格典型的用來編碼語法上的詞的分界和印刷上的空白; 在和Nagari書寫體相關(guān)的語言中 (如梵語,泰語等),語法上的邊界可以用ZW空格字符編碼,但是在顯示輸出時一般不用印刷上的空格表示; 用阿拉伯語形式書寫體的語言,可以用空格字符編碼印刷上的空白,單不能用ZW空格定界內(nèi)部的文法分界(如,在英語看來是一個詞的‘kitAbuhum‘=‘kitAbu-hum‘=‘book them‘==their book ,在阿拉伯語中編碼為幾個詞); 中文書寫體習慣則一般既不用這種方式編碼分界也不使用印刷上的空白。
屬性的值中的空白符的處理方式按照[XML]。
4. 與HTML 4的區(qū)別
因為XHTML是XML的一個應(yīng)用,一些在基于SGML的HTML 4中完全合法的習慣在XHTML中必須改變。
4.1 文檔必須是編排良好的
編排良好性Well-formedness是[XML]引入的一個新概念。從本質(zhì)上說,這意味著元素必須有結(jié)束標簽,或者必須以特殊方式書寫(在下面說明)。
元素必須嵌套,盡管SGML規(guī)定層疊非法,但現(xiàn)有的瀏覽器普遍允許層疊。
正確:嵌套元素。
here is an emphasized paragraph.
不正確:層疊元素。
here is an emphasized paragraph.
4.2 元素和屬性名必須小寫
對所有HTML元素和屬性名,XHTML 文檔必須使用小寫。 因為XML是大小寫敏感的,所以這個差別是必須的。如
4.3 對非空元素,必須使用結(jié)束標簽
在基于 SGML的 HTML 4 中,一些隱含結(jié)束意義的元素允許忽略結(jié)束標簽。而在基于XML的XHTML中,這種忽略不被允許。除了在DTD中被聲明為空的元素,所有元素必須有結(jié)束標簽。
正確:結(jié)束了的元素。
here is a paragraph.
here is another paragraph.
不正確:未結(jié)束元素。
here is a paragraph.
here is another paragraph.
4.4 屬性值必須在引號中
所有的屬性必須用引號,即使是數(shù)字。
正確:在引號中的屬性值