XHTML 2.0新功能搶先預覽_HTML/Xhtml_網頁製作

PHP中文网
發布: 2016-05-16 16:45:37
原創
1061 人瀏覽過

在瀏覽器能處理下一代的 XHTML 之前先從這個更豐富的內容結構中獲利 XHTML 2 規範尚未完成,但是它相對XHTML 1 已經具有了許多優勢,其中包括更豐富的結構特性,這使得XHTML 2 作為一種編輯格式將比其前任能更好地充當單一資源發布系統的中心模式。執行大型或小型發布
在瀏覽器能處理下一代的XHTML 之前先從這個更豐富的內容結構中獲利
XHTML 2 規範尚未完成,但是它相對XHTML 1 已經具有了許多優勢,其中包括更豐富的結構特性,這使得XHTML 2 作為編輯格式將比其前任能更好地充當單一資源發布系統的中心模式。執行大型或小型發布的人們現在就可以開始使用 XHTML 2 的新特性,而不必等待瀏覽器提供它的新使用者介面特性的支援。
大約在一年以前,一個行業標準小組要我介紹一下 XHTML2 可能對發布者有哪些用處。我不知道它是否具有實用性,但是他們願意提供去紐約的費用,因此我決定去調查一下。
我所做的調查並不需要花大力氣。 XHTML 2 在 XHTML 的基礎上加入更豐富的結構,使其成為一種可用於建立和儲存內容的格式,而並非單單是能夠把內容傳遞給瀏覽器。當我說XHTML 2 已經有用時,我稍微誇張了一點;許多店鋪針對這個尚未完成的標準都有一些非常明智的政策,而且XHTML 2 還仍然處於工作草案(Working Draft)的階段(有關更多信息,請參閱參考資料)。與幾乎所有的HTML 相關標準都有所不同,XHTML 2 能夠在知名的瀏覽器對它提供支援之前提供大量有價值的東西,原因在於,它更可能以更豐富和復雜的結構來儲存內容,而不會過度偏離為人所熟悉的HTML 元素和屬性。 XHTML 的現況:我們進展到哪裡了
W3C XHTML 1.0 標準建立了 XML 版本的 HTML。當瀏覽器並不過分講究Web 頁面是否為格式良好的XML 時,Web 站點設計人員已經厭倦於針對Firefox 使用一套方法而針對Microsoft™ Internet Explorer 又使用另一套方法,他們在標準中看到了更多的價值。許多開源CSS 集合(如Open Web Design 和Open Source Web Design,有關這兩者的鏈接,請參閱參考資料)的樣式表使用XHTML 1 示例文件用於演示目的,我曾聽說一些幾乎不知道格式良好是什麼的Web 設計人員很驕傲地宣稱他們的網站是XHTML 構成的。隨著Internet Explorer 和Firefox 支援的CSS 特性越來越多,這些Web 設計人員把更多設計技巧加入到CSS 樣式表中,把更簡單更直接(以及更易於重複使用)的XHTML 留在基本文件中。
XHTML 1.1(請參閱 參考資料)並沒有加入新特性,但卻把 XHTML 分成了模組。其價值表現在兩方面。第一,如果我們發現某些模組存在價值,而其他模組沒什麼價值,則可以更方便地採用它的子集。比方說,無線應用論壇(Wireless Application Forum,WAP)完全有理由把基本的XHTML 結構合併到其標準中,以便向行動電話傳遞內容,但是它並不想允許WAP 文件合併一些用戶介面特性,如在手機的小型螢幕中沒多大用處的影像映射或編輯模組功能。
對於 DTD 或模式來說,模組化架構的另一個好處是可以更輕鬆地插入用戶應用程式所專有的新模組。與挑選現有模組的功能相結合,這種功能為發布行業帶來了益處:致力於發布行業元數據的PRISM 標準小組選擇了XHTML 1.1 的子集,然後加入了一些帶有行業專有詞彙的新模組,以便更容易透過發布工作流程來追蹤內容。 (有關PRISM 的更多信息,請參閱參考資料。)
您可以把XHTML 1.1 的開發比作清理地下室:您可能不用扔掉太多東西,通過更好地進行組織,可以更方便地使用現有物品,甚至可以騰出空間來建造一個工作台,在上面做些新東西。
自從 2001 年 5 月開始,XHTML 1.1 就成為了一個標準(或者,按照 W3C 的說法,一個建議標準)。 XHTML 2.0 最近的進展是 2006 年 7 月發布的新工作草案(Working Draft)。雖然其最終形成還要必須經過幾個階段,但是可以使用RELAX NG 模式(請參閱參考資料獲得該鏈接)使我們現在就能夠創建和使用XHTML 2 文檔,以便在該規範成為推薦標準時可以快速地轉到XHTML。簡單的XSLT 樣式表將把這些檔案轉換成XHTML 1 以供瀏覽器顯示,或者您也可以使用如今含有XHTML 2 Working Draft(請參閱參考資料)的CSS 樣式表在瀏覽器(就目前來說,Firefox應該會效果更好)中顯示這些文件。 XHTML 2:有什麼新功能?
XHTML 2 保留了 XHTML 1 中清除現有語法的功能使它更加簡潔,同時也加入了一些新功能。它加入了對 XForms 的支持,XForms 是表單的更完善的繼承者,它在 HTML 中已應用了十年以上。 XHTML 2 中也包含 XML 事件(XML Events),它可以讓我們識別某些使用者介面操作所觸發的事件,因而減少了使用 JavaScript 或 ASP 編寫腳本的需求。這些特性會是有趣的,尤其是當主要瀏覽器對它們提供支援以後,但是其他的特性即使在瀏覽器支援 XHTML 之前對發佈人而言也會更加有趣:        一個更豐富、可重複使用性更好的結構            設備獨立性更好、更容易存取、語意更完善            更容易新增元資料    
                                               #p# 更豐富的結構
許多需要在 XML 中儲存內容的發布者都知道使用現有的標準模式(我指的是 W3C Schema、RELAX NG 模式或 DTD)要比自己從頭創建一個更好。他們看了 DocBook 後發現太複雜了,他們看了 HTML 或 XHTML 1 之後又發現太簡單了。對於許多發布者來說,XHTML 2 很好地平衡了DocBook 的豐富性和XHTML 1 的簡單性,這種平衡使之成為存儲內容的一種極佳的格式,不論內容是否需要被轉換成其他的格式以供在各種媒體中傳遞。
清單 1 包含了一個範例 XHTML 1 文件,並以縮排格式表示了該文件的結構。
清單1. XHTML 1 檔案的結構


My Web page


My Web Page


Here is my Web page.


Section 1 of my Web page


Here is section 1 my Web page.


Section 1.1 of my Web page


Here is a subsection of my Web page.


Section 2 of my Web page


Here is section 2 of my Web page .




我們可以看到body 元素內部並沒有太多的縮排格式,這是因為該元素中沒有太多結構。這個文件的樹狀表示會顯示出一個帶有許多子元素而沒有孫子元素的 body 元素,段落 “Here is a subsection of my Web page” 將顯示為主 h1 標題 “My Web Page” 的兄弟元素。標記中只有一個地方指示出這個段落是一個子段的一部分:它前面最近的題頭,h3,比前一個題頭的數字大。容器元素不會把任何作為標題的題頭與其內容組合在一起,除非讓 body 元素把 h1 header 題頭與 Web 頁面其餘可顯示的內容封裝在一起。我們可以使用一個 p 元素把每個題頭/內容(header/content)組合封裝在一起,不過 p 元素與 span 元素一樣是相當通用的分組元素。它可以用於許多目的,比如說指示一些特定的段落形成一個選單或一個側欄或 Web 頁面中的另一個視覺表示元素,因此我們不能假定其表示指示內容的一個結構單元。
XHTML 2 中的新增的 section 和 h 元素結合在一起能使我們創建一個更豐富的結構,從而使內容更易於重複使用。清單 2 示範了與 清單 1 中的 body 元素等價的 XHTML 2 body 元素。
清單2. XHTML 2 body 元素


My Web Page

Here is my Web page.



Section 1 of my Web page

Here is section 1 my Web page.



Section 1.1 of my Web page

Here is a subsection of my Web page.



section>

Section 2 of my Web page

Here is section 2 of my Web page.





在這一版本的程式碼中,「Here is a subsection」 段落是第一個section 元素的曾孫元素,這個section 元素中的「My Web Page” h 元素顯示了其主標題— 正應該如此!
這種豐富結構的優勢之一(也是 XHTML 2 比 XHTML 1 更適合充當單源發布系統的中心格式的關鍵原因)就是更容易進行流處理。如果您需要處理大量的輸入而無法在處理之前把這些輸入載入到記憶體中— 比如說,如果要為CD-ROM 準備內容— 處理會更容易計算出每個sectiong 元素在XHTML 2 文件中的哪裡結束。比方說,假設我們想要調出所有標題中含有單字 “Beagle” 的部分。要找到這些標題夠簡單,但是要在 XHTML 1 中決定 section 在哪裡結束就不是一般的困難了。對這種 XHTML 的處理是否使用了基於流的介面、Xquery 或 XSLT,清楚地定義 section 的結束位置可以使提取簡單得多。
現在,設想您提取這些 section 因為您將把他們加入到關於 beagle 的新發布中,而且調出的每一個 section 都有一個 h3 元素作為其題頭。標有數字的 XHTML 1 題頭,如 h3,在 XHTML 2 中仍然合法,但是如果新的發布將使用這些元素作為一個特別章節中的主 section,或者子 section 會怎樣呢?您需要回去並把 h3 元素修改為 h2 元素或 h4 元素,或任何能在新上下文中識別自己角色的元素。如果它們在原始文件中是XHTML 2 的h 元素,透過每個section 祖先元素的數字指示出它們角色的等級(比如說,清單2 中的section 1.1 h 元素有三個section 頭祖先元素,而「My Web Page」 h 元素只有一個),那麼您可以將它們插入未經修改的新文件中,透過新文件的section 元素的巢狀排列指示出其角色。 CSS、XSLT 和其他 XML 處理工具和標準都提供了一種根據巢狀層次處理同名元素的方法,因此我們不會錯過作為 XHTML 1 題頭一部分的數字。我們考慮有 h2 和 h3 元素但是沒有 h1 元素,或者有h1 和 h3 元素但是沒有 h2 元素的 (X)HTML 文檔的數目時,很明顯太多人不會使用它們指示合適的等級。
在 XHTML 2 中,p 元素中還可以有更多的結構。我想介紹一些語句中的範例程式碼,比如說下面這個:
print "Hello? World?";
如果我想要在範例程式碼之後繼續該語句,XHTML 1 會強制我把語句分成兩部分放在兩個不同的p 元素中,不過從語意上說它們位於同一個語句中。 XHTML 2 讓我們把範例程式碼、無序列表和編號清單和許多其他區塊元素放置在一個 p 元素中,讓我們的標記能更準確地反映文件的結構。
從表示標記到結構型標記還要一小步,把 hr 元素重新命名為 separator。 HTML 工作小組(HTML Working Group)發現其原始名稱(代表 horizo​​ntal rule)經常落入結構型標記和表示標記之間的灰色區域。他們收到了一些使用亞洲國家語言的用戶發出的vertical rule 請求,他們看到許多水平分離器並不是真正的規則(HTML 工作小組的主席Steven Pemberton 作了一個陳述,其中指出了James Joyce 的Ulysses 中的幾個不同的變種;請參閱參考資料以獲得到該陳述的連結)。這使得他們把 hr 元素重命名為能更準確地返回其使用的名稱並在陳述中允許了更強的靈活性。
                                               #p# 設備獨立性更好、更容易訪問、語義更完善
這三個目標實際上有相互重疊的地方。對於不用在一個平台上傳遞的 Web 頁面和視力減弱的使用者能方便地理解的 Web 頁面來說,文字語音翻譯器讀出 Web 頁面中的內容仍然具有意義。 XHTML 2 工作草案(XHTML 2 Working Draft)中提到:
各種新設備出現在網路上,如電話、PDA、寫字板、電視等等,這意味著需要有一種設計,允許我們創作一次然後在不同的裝置上以不同的方式呈現,而不是為每種類型的裝置創作新版本的文件。
發布者不需要從未來考慮其價值。設備獨立使它們中的許多在XML 發明之前應用於SGML,因為它讓這些設備以打印的方式,在We​​b 頁面上以及在CD-ROM 上發布相同的內容,只要該內容的編輯版本中存儲有足夠的結構和語意訊息,從而使自動例程把它轉換成各自的格式。我記得十一年之前當我們的競爭者要把內容的編輯版本儲存為 HTML 時,我的前老闆的辦公室中充斥著竊笑聲;使用 XHTML 2 就不再是一個瘋狂的想法了。
如果 XHTML 2 元素中已有的語意對你來說還不夠的話,新加入的 role 屬性(可以加入任何元素)可以告訴你元素更多的用途。 XHTML 2 規範為這個屬性指定了九個可能的值:banner、note、contentinfo、search、definition、secondary、main、seealso 和 navigation。角色值,如 banner 和 navigation,顯然更加面向表示,但是對於 definition 和 note 之類的值,其中的語義在為多媒體準備內容的發布環境中更具實用性。您甚至還可以建構自己的 role 值,只要它們處於自己的名稱空間就可以。 更容易新增元資料
W3C RDF 標準讓我們把元資料指派給任何能夠使用 URL 辨識的內容。這項操作的標準 RDF/XML 語法出現在 1999 年,它的複雜和困難程度嚇退了許多人。透過使用現有的 HTML 屬性和加入一些新屬性,XHTML 2 讓我們使用新的、更簡單的 RDFa 語法添加有關文件和文件元件的元資料(可以使用一個 about 屬性來識別它們)。在清單 3 中的一些範例中,span 元素儲存了嵌入主謂賓三重結構所需的附加資訊(當作賓語 ID-attribute name-attribute 值三重結構可能會更容易),用於表示 RDF 元資料。
清單3. 使用span 元素編碼元資料




Carrion, My Wayward Son

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!