陳 靜
摘要隨著信息網(wǎng)絡(luò)的飛速發(fā)展,信息載體的形式正逐步從印刷型、固定型向數(shù)字型與動(dòng)態(tài)型的數(shù)字化文獻(xiàn)形式過(guò)渡。為了規(guī)范數(shù)字化文獻(xiàn)形式,SGML、HTML、XML3種標(biāo)記語(yǔ)言先后應(yīng)運(yùn)而生。本文就這 3種標(biāo)記語(yǔ)言進(jìn)行分析與比較。
關(guān)鍵詞SGMLHTMLXML
中圖分類號(hào):TP31文獻(xiàn)標(biāo)識(shí)碼:A
XML技術(shù)自出現(xiàn)以來(lái),在許多領(lǐng)域內(nèi)得到廣泛的支持并有著廣闊的應(yīng)用前景。XML數(shù)據(jù)已成為一個(gè)研究熱點(diǎn)。同時(shí),看似與它相似已被人淡忘已久的SGML、HTML兩種標(biāo)識(shí)語(yǔ)言也被翻出,頻頻出現(xiàn)加以比較。那三者到底有沒(méi)有聯(lián)系,有什么聯(lián)系?下面我們從概念、特性加以分析理解。
1 HTML,SGML,XML三種標(biāo)記語(yǔ)言
(1)SGML標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language)是針對(duì)指定一個(gè)文檔標(biāo)記語(yǔ)言或標(biāo)簽設(shè)置方式的一種元語(yǔ)言。這個(gè)標(biāo)準(zhǔn)本身是一個(gè)文檔類型定義(DTD)。SGML 是 IBM 通用標(biāo)記語(yǔ)言(GML)的一個(gè)后裔。SGML 基于有結(jié)構(gòu)的文檔和能夠描述不論這些元素是怎樣被顯示的其他語(yǔ)義元素的想法。SGML 提供多種能夠被用于很多應(yīng)用程序的標(biāo)記語(yǔ)法。通過(guò)改變 SGML 聲明,一個(gè)人甚至不需要使用“角括號(hào)”盡管它們是規(guī)范的,所謂的具體參考語(yǔ)法。SGML 最初設(shè)計(jì)來(lái)使在政府、法律和航空和航天工業(yè)的大型工程中能夠共享機(jī)器可讀文檔,其必須保留可讀文件幾十年——在信息技術(shù)中很少的時(shí)間。它也已經(jīng)廣泛地應(yīng)用在印刷和出版行業(yè),但是它的復(fù)雜性阻止了它在小規(guī)模多方面用途的廣泛應(yīng)用。目前,SGML多用于科技文獻(xiàn)和政府辦公文件中SGML的主要特點(diǎn):SGML可支持無(wú)數(shù)的文檔結(jié)構(gòu)類型,例如布告、技術(shù)手冊(cè)、章節(jié)目錄、設(shè)計(jì)規(guī)范、各種報(bào)告、信函和備忘錄等;SGML可以創(chuàng)建與特定的軟硬件無(wú)關(guān)的文檔,因此很容易與使用不同計(jì)算機(jī)系統(tǒng)的用戶交換文檔。
使用SGML對(duì)多媒體的創(chuàng)作將帶來(lái)許多好處。例如,可使創(chuàng)作人員更集中于內(nèi)容的創(chuàng)作,可提高作品的重復(fù)使用性能、可移植性能以及共享性能等;SGML的使用范圍很廣,除了傳統(tǒng)的電子出版物之外,SGML還可用在其他許多場(chǎng)合。例如,前面介紹的超媒體和超文本文檔、萬(wàn)維網(wǎng)頁(yè)面的制作、數(shù)據(jù)庫(kù)、電子郵件、專家系統(tǒng)、CD-ROM出版物、交互式電子技術(shù)手冊(cè)等方面都大有用武之地。
(2)HTML超文本標(biāo)識(shí)語(yǔ)言(Hypertext Marked Language),是一種用來(lái)制作超文本文檔的簡(jiǎn)單標(biāo)記語(yǔ)言。超文本傳輸協(xié)議規(guī)定了瀏覽器在運(yùn)行 HTML 文檔時(shí)所遵循的規(guī)則和進(jìn)行的操作。HTTP協(xié)議的制定使瀏覽器在運(yùn)行超文本時(shí)有了統(tǒng)一的規(guī)則和標(biāo)準(zhǔn)。用HTML編寫(xiě)的超文本文檔稱為HTML文檔,它能獨(dú)立于各種操作系統(tǒng)平臺(tái),自1990年以來(lái)HTML就一直被用作WWW(是World Wide Web的縮寫(xiě),也可簡(jiǎn)寫(xiě)WEB、中文叫做萬(wàn)維網(wǎng)) 的信息表示語(yǔ)言,使用HTML語(yǔ)言描述的文件,需要通過(guò)WEB瀏覽器顯示出效果。
所謂超文本,是因?yàn)樗梢约尤雸D片、聲音、動(dòng)畫(huà)、影視等內(nèi)容,事實(shí)上每一個(gè)HTML文檔都是一種靜態(tài)的網(wǎng)頁(yè)文件,這個(gè)文件里面包含了HTML指令代碼,這些指令代碼并不是一種程序語(yǔ)言,它只是一種排版網(wǎng)頁(yè)中資料顯示位置的標(biāo)記結(jié)構(gòu)語(yǔ)言,易學(xué)易懂,非常簡(jiǎn)單。HTML的普遍應(yīng)用就是帶來(lái)了超文本的技術(shù)——通過(guò)單擊鼠標(biāo)從一個(gè)主題跳轉(zhuǎn)到另一個(gè)主題,從一個(gè)頁(yè)面跳轉(zhuǎn)到另一個(gè)頁(yè)面與世界各地主機(jī)的文件鏈接。
(3)XML可擴(kuò)展標(biāo)識(shí)語(yǔ)言 (eXtensible Marku Language),是Web上的數(shù)據(jù)通用語(yǔ)言。它使開(kāi)發(fā)人員能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù),從許多不同的應(yīng)用程序傳遞到桌面,進(jìn)行本地計(jì)算和演示。XML 允許為特定應(yīng)用程序創(chuàng)建唯一的數(shù)據(jù)格式。它還是在服務(wù)器之間傳輸結(jié)構(gòu)化數(shù)據(jù)的理想格式。XML是一種簡(jiǎn)單、與平臺(tái)無(wú)關(guān)并被廣泛采用的標(biāo)準(zhǔn),是用來(lái)定義其它語(yǔ)言的一種元語(yǔ)言,其前身是SGML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)。簡(jiǎn)單的說(shuō),XML是提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法,它不但完成了HML不能完成的任務(wù),更為互聯(lián)網(wǎng)世界提供了定義各行各業(yè)的“專業(yè)術(shù)語(yǔ)”的工具。
2 XML、SGML、HTML三者關(guān)系
SGML、HTML是XML的先驅(qū)。SGML最早是用來(lái)再字處理程序中描敘數(shù)據(jù)用的。像RTF(富文本)文件,Word的DOC文件等等,都可以看成是應(yīng)用SGML的例子。如果用記事本打開(kāi)一個(gè)RTF文件,就可以看到同HTML相近的一些東西,那就是RTF的源數(shù)據(jù)描敘,也是通過(guò)SGML定義的。SGML從誕生到現(xiàn)在已經(jīng)有上 10年的時(shí)間了,可以說(shuō)已經(jīng)發(fā)展的十分成熟。XML和HTML都可以算的上是SGML的徒子徒孫了,他們都是從SGML發(fā)展而來(lái)的文檔格式描敘語(yǔ)言。因此他們都有一些共通的特性,比如相近的語(yǔ)法,都使用尖括號(hào)標(biāo)簽等等。但是準(zhǔn)確的說(shuō)來(lái),HTML是SGML的一個(gè)應(yīng)用,而XML是SGML的一個(gè)精簡(jiǎn)子集。
XML是與SGML相兼容的——XML文檔能夠被任何SGML編輯和瀏覽器所解析。但是,XML比SGML要簡(jiǎn)單得多,并且他是特別為傳輸帶寬有限的Internet所設(shè)計(jì)的。Tim Bray是XML標(biāo)準(zhǔn)的編制人員之一,根據(jù)他的說(shuō)法,XML就是要繼承SGML的優(yōu)點(diǎn),但去掉SGML的復(fù)雜性,并使之能夠在網(wǎng)上很好的工作。
而XML、HTML其間的差別是本質(zhì)上的。簡(jiǎn)單的說(shuō)來(lái),HTML不能夠用來(lái)定義(或者說(shuō)衍生)一個(gè)(下轉(zhuǎn)第121頁(yè))(上接第113頁(yè))新的應(yīng)用,而XML卻能夠做到。例如,資源描敘格式和頻道定義格式就是由XML定義出來(lái)的新的應(yīng)用。理論上講,甚至可以用XML來(lái)重新改寫(xiě)HTML。
3 結(jié)論
事實(shí)上HTML、SGML和XML都將在一定時(shí)間內(nèi)守住自己的崗位,暫時(shí)不會(huì)有哪一種會(huì)被其他的所淘汰。HTML仍然是網(wǎng)上發(fā)布信息最為快捷的方式。如果要發(fā)布的數(shù)據(jù)有長(zhǎng)期的應(yīng)用價(jià)值并且需要一些結(jié)構(gòu)化的內(nèi)容,網(wǎng)站建設(shè)者應(yīng)該考慮轉(zhuǎn)而使用XML。和HTML與XML不同,SGML將不會(huì)在網(wǎng)上得到廣泛的贊同,因?yàn)樗⒉皇菫榫W(wǎng)上傳輸而特別設(shè)計(jì)的。但對(duì)于高端的應(yīng)用,那些高度結(jié)構(gòu)化的文檔應(yīng)用,SGML仍將發(fā)揮起作用。