W3C規(guī)格閱讀指南_第1頁(yè)
W3C規(guī)格閱讀指南_第2頁(yè)
W3C規(guī)格閱讀指南_第3頁(yè)
W3C規(guī)格閱讀指南_第4頁(yè)
W3C規(guī)格閱讀指南_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、W3C規(guī)格閱讀指南J. David Eisenberg, 2001年9月28日原文網(wǎng)址: HYPERLINK /article/readspec /article/readspecWeb上的所有技術(shù)的規(guī)格都由萬(wàn)維網(wǎng)聯(lián)盟(W3C)負(fù)責(zé)管理。作為一名前端工程師的您,可能訪問(wèn)過(guò)該聯(lián)盟的網(wǎng)站(HYPERLINK )來(lái)尋找XHTML的某個(gè)問(wèn)題的答案,或是想要了解諸如XSL格式化對(duì)象(XSL Formatting Objects)或可伸縮矢量圖形(Scalable Vector Graphics)這樣的新技術(shù)。就這樣,您接觸到了規(guī)格,但幾乎立刻被嚇得落荒而逃。您一定會(huì)覺(jué)得,“什么嘛,這完全不是給人讀的?!?/p>

2、實(shí)際上,它是給人讀的,前提是您預(yù)先了解一些關(guān)鍵信息。規(guī)格不是用戶(hù)手冊(cè)圣經(jīng)寫(xiě)出來(lái)不是為了給人讀,而是為了給人解的。 佚名如果您想要尋找某個(gè)問(wèn)題的答案,實(shí)際上就是在尋找的是一本用戶(hù)手冊(cè),或一篇用戶(hù)指南;換言之,您想要了解的是該技術(shù)的用法。然而,這卻并不符合W3C規(guī)格的創(chuàng)作意圖。所謂“規(guī)格”,它意在告知負(fù)責(zé)實(shí)現(xiàn)該技術(shù)的程序員,有哪些特性是必須提供的,以及它們應(yīng)該如何實(shí)現(xiàn)。這就是您的愛(ài)車(chē)的用戶(hù)手冊(cè)和維修手冊(cè)之間的差異。用戶(hù)手冊(cè)只會(huì)告訴您更換雨刷片時(shí)的做法。如果您翻開(kāi)維修手冊(cè),上面只會(huì)列出雨刷片的詳細(xì)尺寸,還有將它們彼此連接的部件票意圖,您只能利用這樣的信息來(lái)拼湊出如何更換雨刷片的知識(shí)。如果您采用的是最

3、新技術(shù),可能還根本沒(méi)有任何用戶(hù)參考資料,唯一能找到的就是規(guī)格。在這種情況下,學(xué)習(xí)如何閱讀規(guī)格就成了必要的工作,而非可有可無(wú)了。規(guī)格的結(jié)構(gòu)正如維修手冊(cè)中可能會(huì)列出一篇指南,來(lái)說(shuō)明各種縮寫(xiě)和圖表中采用的圖例的意義一樣,大多數(shù)W3C規(guī)格都配有一節(jié)來(lái)對(duì)文檔本身進(jìn)行解釋工作。例如, HYPERLINK /TR/html401/about.html HTML和 HYPERLINK /TR/REC-CSS2/about.html CSS規(guī)格的第一節(jié)就都提供了相當(dāng)詳盡的信息,來(lái)說(shuō)明相應(yīng)規(guī)格的組織方式,以及如何閱讀。智者必識(shí)我討厭定義。Benjamin Disraeli維修手冊(cè)在語(yǔ)言風(fēng)格上注重精確性,這一點(diǎn)和語(yǔ)

4、調(diào)輕松、行文隨意的談話作品相當(dāng)不同。同樣地,W3C規(guī)格的語(yǔ)言風(fēng)格也仿佛日本歌舞伎劇那樣一絲不茍。以下是一些您在閱讀規(guī)格時(shí)會(huì)常常遇到的字詞。規(guī)范性如果您看到“本節(jié)是規(guī)范性的(normative)”,則指出該節(jié)的內(nèi)容會(huì)指定實(shí)現(xiàn)者應(yīng)該遵循的細(xì)節(jié)。而提示性(informative)章節(jié)則不然,它們通常是一些示例和解釋。用戶(hù)代理這個(gè)有點(diǎn)兒故弄玄虛的術(shù)語(yǔ),意思其實(shí)是指這樣的程序:用戶(hù)需要憑借它才能和某項(xiàng)技術(shù)打上交道。對(duì)于HTML而言,它的用戶(hù)代理就是瀏覽器。對(duì)于可縮放矢量圖形而言,它的用戶(hù)代理可能是一個(gè)查看器,如 HYPERLINK /batik/ Batik;又或是一個(gè)插件,如 HYPERLINK /s

5、vg/ Adobe SVG Viewer。RFCRequest For Comment的縮寫(xiě),意思是該文檔代表某個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)(草案)。助動(dòng)詞如果某個(gè)規(guī)格中寫(xiě)道,它遵循 HYPERLINK /rfc/rfc2119.txt RFC2119 ,那么接下來(lái)文中出現(xiàn)的特定助動(dòng)詞就會(huì)帶有正式的對(duì)應(yīng)含義。 必須(must)的意義是:某定義是絕對(duì)要求的; 絕不(must not)的意義是:某定義是絕對(duì)禁止的; 應(yīng)該(should)的意義是:某個(gè)特性可以實(shí)現(xiàn)也可以不實(shí)現(xiàn),但如果不實(shí)現(xiàn)的話,最好有個(gè)很好的理由; 不應(yīng)該(should not)的意義是:如果確實(shí)需要在實(shí)現(xiàn)里包括某個(gè)特性,則最好有個(gè)很好的理由。略讀

6、親愛(ài)的Martha阿姨:謝謝您那本講大象的書(shū)。它告訴我關(guān)于大象的知識(shí),比我想知道的還要多。一個(gè)孩子的感謝信如果您發(fā)現(xiàn)自己在讀的文字沒(méi)有明顯的標(biāo)記,只有大量的冗詞,讀起來(lái)既像法律術(shù)語(yǔ),又像是計(jì)算機(jī)科學(xué)講座,或兩者兼似的話,也許僅僅粗粗看一眼就夠了。像在XSL:FO規(guī)格里如下面一節(jié)的文字,就是很可以跳過(guò)的。(事實(shí)上,在那篇規(guī)格里,第六章之前的內(nèi)容都不是給用戶(hù)這個(gè)級(jí)別的人讀的。)4.2.5 堆疊約束本節(jié)定義了塊堆疊約束和涉及領(lǐng)域的內(nèi)聯(lián)堆疊約束。它們被定義為有序關(guān)系,也就是說(shuō),如果A和B間存在一個(gè)堆疊約束,并不一定意味著嘿,略讀時(shí)間到!另一方面,有時(shí)您卻應(yīng)該放慢閱讀速度。當(dāng)您看到一張示意圖時(shí),請(qǐng)看看它

7、的題注和標(biāo)注。這些通常都會(huì)指向重要信息。當(dāng)您看到一節(jié)中包含有一個(gè)或數(shù)個(gè)示例時(shí),請(qǐng)放慢速度,仔細(xì)閱讀。名字空間在XML的語(yǔ)境下,名字空間是可以讓您在同一文檔中混合使用不同標(biāo)記的機(jī)制。例如,如果我想把數(shù)學(xué)標(biāo)記語(yǔ)言(Math Markup Language)放置到HTML文檔里面,就必須在我文檔的最頂層元素里加一些額外的聲明,我的做法是用ml為前綴來(lái)標(biāo)記數(shù)學(xué)元素:Here is Einsteins famous equation: e = m c 2 with which we all are familiar.最好的辦法就是照用您在示例文檔所見(jiàn)的任何名字空間前綴。在大多數(shù)情況下,如果您遇到一大篇討

8、論,且主題是關(guān)于某項(xiàng)XML技術(shù)多么有“名字空間感知”,那您應(yīng)該可以直接跳過(guò)這篇討論也沒(méi)問(wèn)題。 原作者的意思是,如果某項(xiàng)技術(shù)僅在某個(gè)名字空間的語(yǔ)境中有效,那末除非需要專(zhuān)門(mén)了解該名字空間包含的元素,否則沒(méi)有必要細(xì)看,因?yàn)閯e處不適用。學(xué)習(xí)閱讀BNFBNF是Backus Naur Form或Backus Normal Form的縮寫(xiě)。它是一種用來(lái)表示計(jì)算機(jī)語(yǔ)言語(yǔ)法的緊湊形式,它實(shí)際上無(wú)處不在。不同的規(guī)格使用不同風(fēng)格的BNF,但它們的共同之處是都把大段的自然語(yǔ)言描述變換成了符號(hào)形式。下面是一個(gè)說(shuō)明了三明治成分的例子:三明治由以下成分構(gòu)成:一塊面包下切片,還有芥茉或蛋黃醬;生菜可放可不放;西紅柿切片可放可

9、不放;二至四塊紅腸、臘腸或火腿以任意方式組合的切片;一塊或多塊芝士切片;還有一塊面包上切片。其變換形式為:三明治 := 面包下切片 芥茉 | 蛋黃醬 生菜? 西紅柿? 紅腸 | 臘腸 | 火腿 2,4 芝士+ 面包上切片定義的各成分按順序列出,以空格分隔。各項(xiàng)目以方括號(hào)分組,組內(nèi)選擇以豎線分隔。如果項(xiàng)目后面跟著一個(gè)問(wèn)號(hào),意思是“一個(gè)或沒(méi)有”;如果后面跟著一個(gè)加號(hào),意思是“一個(gè)或多個(gè)”;如果后面跟著一個(gè)星號(hào),意思是“零個(gè)或多個(gè)”;如果后面跟著一個(gè)里面有數(shù)字的花括號(hào),數(shù)字就代表著項(xiàng)目允許出現(xiàn)次數(shù)的上下限。小括號(hào),或更多的方括號(hào),用來(lái)給更復(fù)雜的定義中的項(xiàng)目分組。有時(shí)候,也會(huì)用尖括號(hào)括起某項(xiàng)目表示這是

10、一個(gè)通用項(xiàng)目(如“顏色”),或用引號(hào)括起某項(xiàng)目表示這是一個(gè)守恒項(xiàng)目。學(xué)習(xí)閱讀文檔類(lèi)型定義Grolier在線百科全書(shū)是Jeopardy智力大挑戰(zhàn)游戲上所有問(wèn)題和答案的權(quán)威來(lái)源。引自某電視游戲提示您真的了解嗎?那些放入文檔中的聲明,是告知瀏覽器正在使用的HTML或XHTML版本用的。這些聲明指向一個(gè)文檔類(lèi)型定義,簡(jiǎn)稱(chēng)DTD,它是一個(gè)用來(lái)定義元素的何種組合為合法的文檔。雖然學(xué)習(xí)閱讀DTD是一項(xiàng)困難的任務(wù),但也不是不可能完成的。而且,這種學(xué)習(xí)是值得的,因?yàn)镈TD是判定特定的標(biāo)記語(yǔ)言是否在語(yǔ)法上具備正確性的最終權(quán)威依據(jù)。要完整地解釋如何閱讀DTD,這遠(yuǎn)遠(yuǎn)超出了本文的范圍。欲知詳情,請(qǐng)參閱 HYPERLI

11、NK Elizabeth Castro的HYPERLINK /exec/obidos/ASIN/0201710986/jeffreyzeldmanprA/XML for the World Wide Web可視化快速入門(mén)(XML for the World Wide Web Visual Quickstart Guide),或Erik Ray的HYPERLINK /exec/obidos/ASIN/0596000464/jeffreyzeldmanprA/XML入門(mén)(Learning XML)。下面僅舉一個(gè)您可能會(huì)在DTD中看到的簡(jiǎn)單示例: 下面用自然語(yǔ)言來(lái)表述一下以上這段描述是什么意思:字體

12、樣式元素包括、和。內(nèi)聯(lián)元素由平凡文本和字體樣式元素組成。一個(gè)可以以任意順序包含一個(gè)或多個(gè)或內(nèi)聯(lián)元素。有一個(gè)可選的align屬性,其值可以是left、right或center。忘掉IDL,擁抱綁定有一些XML技術(shù),如SVG和SMIL,允許用戶(hù)編寫(xiě)程序來(lái)對(duì)文檔實(shí)施動(dòng)態(tài)控制,正如JavaScript允許您控制HTML文檔一樣。其規(guī)格必然含有描述如何腳本來(lái)操作文檔對(duì)象模型(Document Object Model)的章節(jié)。這些章節(jié)會(huì)使用接口定義語(yǔ)言(Interface Definition Language),簡(jiǎn)稱(chēng)IDL,來(lái)給出接口。IDL是一種通用記法,它用于描述用戶(hù)代理如何訪問(wèn)編程環(huán)境的各種信息

13、。IDL不是一種編程語(yǔ)言,它只是一種記法,是用來(lái)描述這些接口的一種緊湊形式。盡管這種記法信息量大,但它幾乎肯定不是您要找的東西。什么才是您要找的東西呢?這取決于您選擇的程序設(shè)計(jì)語(yǔ)言。您要找的可能是Java綁定(bindings),也可能是ECMAscript綁定。綁定是一個(gè)故弄玄虛的術(shù)語(yǔ),它其實(shí)就是指您使用的腳本所能夠使用的一切對(duì)象,屬性和方法。說(shuō)到ECMAScript,它是歐洲計(jì)算機(jī)制造商協(xié)會(huì)(European Computer Manufacturers Association)標(biāo)準(zhǔn)版本JavaScript的意思。如果您使用的是其他語(yǔ)言,比如Perl或Python,那就必須從像 HYPER

14、LINK Perl綜合檔案網(wǎng)(Comprehensive Perl Archive Network)或 HYPERLINK /sigs/xml-sig/ Python XML特別興趣小組(Python XML Special Interest Group)這樣的地方去尋找相應(yīng)的庫(kù)了。小結(jié)建立明確的意識(shí):規(guī)格是寫(xiě)給實(shí)現(xiàn)者,而非最終用戶(hù)看的;許多規(guī)格都包含一個(gè)專(zhuān)門(mén)章節(jié),以說(shuō)明其組織方式,以及應(yīng)該如何閱讀;熟知規(guī)格專(zhuān)用詞匯;務(wù)請(qǐng)記住,您不必閱讀逐字閱讀規(guī)格。學(xué)會(huì)跳讀,集中閱讀有意義的部分;跳過(guò)名字空間相關(guān)討論章節(jié);學(xué)習(xí)閱讀BNF,很多地方都在使用它;學(xué)會(huì)閱讀DTD,并從中找到語(yǔ)法問(wèn)題的答案;如果某項(xiàng)技術(shù)涉及可編程腳本,該信息就包含在綁定中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論