SGML、HTML與XML之比較.doc_第1頁
SGML、HTML與XML之比較.doc_第2頁
SGML、HTML與XML之比較.doc_第3頁
SGML、HTML與XML之比較.doc_第4頁
SGML、HTML與XML之比較.doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

SGML、HTML與XML之比較Comparison of SGML, HTML and XML陳嵩榮Sung-Jung Chen輔仁大學(xué)圖書信息學(xué)系碩士班學(xué)生Graduate student, Dept. of Library & Information Science,Fu-Jen Catholic UniversityE-mail: .tw摘要本文將依發(fā)展的時(shí)間順序介紹三種值得電子圖書館領(lǐng)域注意的電子文件格式:標(biāo)準(zhǔn)通用標(biāo)示語言(Standard Generalized Markup Language;簡(jiǎn)稱SGML)、超文件標(biāo)示語言(Hypertext Markup Language;簡(jiǎn)稱HTML)與最新崛起的可擴(kuò)展標(biāo)示語言(Extensible Markup Language,簡(jiǎn)稱XML),并作簡(jiǎn)單的比較。AbstractThis article is to introduce three formats of electronic document in order of development which are worth watching closely by digital library community. They are SGML(Standard Generalized Markup Language), HTML(Hypertext Markup Language) and XML(Extensible Markup Language), which is the new markup wave. Then have a simple comparison of them.關(guān)鍵詞:標(biāo)準(zhǔn)通用標(biāo)示語言;超文件標(biāo)示語言;可擴(kuò)展標(biāo)示語言;標(biāo)示Keywords:SGML (Standard Generalized Markup Language); HTML (Hypertext Markup Language); XML (Extensible Markup Language); Markup壹、前言 計(jì)算機(jī)是處理信息的工具,硬件是處理信息的實(shí)體資源,軟件則是為了處理特定信息設(shè)計(jì)出來的流程。計(jì)算機(jī)之所以能對(duì)我們的生活帶來很大的效益,是因?yàn)橛?jì)算機(jī)具有處理信息的強(qiáng)大能力,硬件與軟件的不斷進(jìn)步代表著計(jì)算機(jī)處理信息的能力愈來愈強(qiáng),但計(jì)算機(jī)要能夠發(fā)揮效益,除了要有硬件和軟件之外,還要輸入數(shù)據(jù),數(shù)據(jù)經(jīng)過計(jì)算機(jī)的處理,輸出有價(jià)值的信息,這才是我們使用計(jì)算機(jī)的主要目的。平常計(jì)算機(jī)硬件與軟件的進(jìn)步總會(huì)引起較大的注意,例如:Intel發(fā)表新一代的微處理器、Microsoft發(fā)表新的操作系統(tǒng)或應(yīng)用軟件總是信息界的盛事,但一般人較少注意到數(shù)據(jù)格式(data format)的發(fā)展事實(shí)上對(duì)信息的處理、管理與利用所帶來的影響并不遜于軟硬件的革新,尤其對(duì)電子圖書館等保存大量公共信息的組織而言,所采用的數(shù)據(jù)格式必須確保所有的文件信息能妥善地長(zhǎng)期保存,并能以最有效率的方式被存取與傳布,因?yàn)檫@些信息是社會(huì)重要的資產(chǎn),而且通常是對(duì)社會(huì)較有價(jià)值的信息(注1)。本文將依發(fā)展的時(shí)間順序介紹三種值得電子圖書館領(lǐng)域注意的電子文件格式:標(biāo)準(zhǔn)通用標(biāo)示語言(Standard Generalized Markup Language;簡(jiǎn)稱SGML)、超文件標(biāo)示語言(Hypertext Markup Language;簡(jiǎn)稱HTML)與最新崛起的可擴(kuò)展標(biāo)示語言(Extensible Markup Language,簡(jiǎn)稱XML),并作簡(jiǎn)單的比較。SGML是ISO在1986年所頒布的國(guó)際標(biāo)準(zhǔn)(ISO 8879),在電子圖書館相關(guān)計(jì)劃中,目前有TEI(Text Encoding Initiative)、EAD(Encoded Archival Description)、CIMI(Consortium for the Interchange of Museum Information)、DIAP(Digital Image Access Project)與美國(guó)國(guó)會(huì)圖書館的American Memory Project等采用SGML作為文件格式(注2,3,4);HTML是SGML的一個(gè)應(yīng)用,是一種用以創(chuàng)造超文件(hypertext)的簡(jiǎn)易資料格式,目前在全球信息網(wǎng)(World Wide Web;簡(jiǎn)稱WWW或Web)獲得普遍的采用,是寫作網(wǎng)頁(webpages)的標(biāo)準(zhǔn)語言;XML是全球信息網(wǎng)聯(lián)盟(World Wide Web Consortium;簡(jiǎn)稱W3C)在1996年底所提出的標(biāo)準(zhǔn),1998年2月公布XML 1.0 Recommendation,相關(guān)標(biāo)準(zhǔn)目前仍在發(fā)展之中。這個(gè)新一代的標(biāo)示語言被期許能具有SGML的彈性,但又不像SGML般復(fù)雜,并能如HTML般能在Web上傳送。貳、何謂標(biāo)示(markup)?SGML、HTML、XML都是標(biāo)示語言(Markup Language)。最早,標(biāo)示是文件在排版時(shí),用來指示文字如何編排的指令,包括控制字體的大小、字型的選擇(如楷體、細(xì)明體等)、字形的處理(如粗體、斜體、加底線等)、頁面的大小(如A4、B5等)、天地左右的留白寬度、標(biāo)題、段落、腳注、表格等,這些標(biāo)示并不處理文件的內(nèi)容,主要用來處理文件實(shí)際的呈現(xiàn)外觀,這類的標(biāo)示稱為程序性標(biāo)示(Procedural Markup)(注5)。大部分的電子出版或文字處理軟件都使用專屬性的程序性標(biāo)示,也就是說這些系統(tǒng)都使用專屬的句柄來執(zhí)行文件的處理,如字體的加粗、放大等,這些專屬的句柄大都只能在特定平臺(tái)的特定的系統(tǒng)或相關(guān)軟件中執(zhí)行,如果所使用的硬件或系統(tǒng)軟件換了,這些標(biāo)示過的文件往往必須進(jìn)行重新標(biāo)示的工作,這種數(shù)據(jù)轉(zhuǎn)換所花費(fèi)的代價(jià)通常相當(dāng)?shù)拇?;同樣的,使用程序性?biāo)示的文件在交換時(shí),文件交換的雙方通常必須使用相同的系統(tǒng)。一般而言,程序性標(biāo)示的作用都只針對(duì)單一文件,例如控制某一份文件以特定的格式輸出,如果同一份文件內(nèi)容希望以不同的呈現(xiàn)外觀再利用,必須移除先前的標(biāo)示,加入符合新的呈現(xiàn)外觀的標(biāo)示;或者將同樣的文件內(nèi)容復(fù)制一份,為新的呈現(xiàn)外觀進(jìn)行標(biāo)示。另一類的標(biāo)示稱為描述性標(biāo)示(Descriptive Markup),也稱為通用標(biāo)示(Generic Markup或Generalized Markup),所描述的是文件的內(nèi)容(content)或結(jié)構(gòu)(structure),而不是文件的呈現(xiàn)外觀。描述文件結(jié)構(gòu)的方式是以標(biāo)示指定結(jié)構(gòu)中的元素(elements),以文章為例,其結(jié)構(gòu)可能有標(biāo)題、章、節(jié)、參考書目等;以書信為例,結(jié)構(gòu)可能有寄件人、收件人、書信內(nèi)容等。通用標(biāo)示的基本概念是文件的內(nèi)容必須和文件的呈現(xiàn)信息(即所謂的樣式)分開(注6),由于內(nèi)容、結(jié)構(gòu)與呈現(xiàn)信息分開,所以同一份文件內(nèi)容可以有多種呈現(xiàn)方式,例如同一個(gè)檔案可能以紙本、在線、CD-ROM與Web版本發(fā)行。以圖一(注7)為例,Content是文件的本文信息,Structure是標(biāo)示的結(jié)構(gòu),這兩部份是通用標(biāo)示所要描述的,Presentation是文件的呈現(xiàn)外觀,在Content、Structure與Presentation之間的Formatter主要是用來設(shè)定文件的輸出格式,樣式表單(Style Sheet)的角色就是屬于這個(gè)部分。由于內(nèi)容、結(jié)構(gòu)與呈現(xiàn)信息分開,如果同一份文件內(nèi)容希望以不同的呈現(xiàn)外觀再利用,只須修改樣式表單或產(chǎn)生一份新的樣式表單即可,文件內(nèi)容與結(jié)構(gòu)的標(biāo)示完全不須更動(dòng),因此通用標(biāo)示在文件的再利用方面要比程序性標(biāo)示有彈性的多。XML、SGML都是典型的通用標(biāo)示語言,HTML就比較特殊了,HTML的標(biāo)簽集(tag set)中大部分是用來設(shè)定文件在Web上的呈現(xiàn)外觀,少部分描述文件的結(jié)構(gòu)(如:, , )。由于HTML是SGML的一種應(yīng)用,所以HTML并非程序性標(biāo)示語言,而是以描述性標(biāo)示的方式來控制文件的呈現(xiàn)外觀;HTML的樣式是內(nèi)建的,并不像XML、SGML有分離的樣式,所以HTML標(biāo)示的作用與程序性標(biāo)示類似是針對(duì)單一文件,并不像XML、SGML有較高的再利用彈性。圖一參、SGMLSGML是ISO在1986年所訂定的標(biāo)準(zhǔn),編號(hào)是ISO 8879。SGML 是一種元語言(meta-language),元語言是一套可以用來定義其他更專門性的標(biāo)示語言的通用規(guī)則,HTML就是由SGML所定義出來,專門使用在WWW上的標(biāo)示語言(注8)。SGML主要應(yīng)用在文字?jǐn)?shù)據(jù)的交換,但也適用于其他的數(shù)據(jù)型態(tài),SGML是很好的數(shù)據(jù)單元格式,適用于任何復(fù)雜的文件結(jié)構(gòu),但缺點(diǎn)是在網(wǎng)絡(luò)傳輸(network delivery)方面較為不便。由于介紹SGML的中文文獻(xiàn)已有一些(書目請(qǐng)參考注9,10,11,12,13),本文不再對(duì)SGML作全面性的介紹,只介紹SGML的優(yōu)點(diǎn)與限制。一、SGML的優(yōu)點(diǎn)(注14):1. 有彈性(flexibility):SGML能描述任何的信息結(jié)構(gòu)與任何復(fù)雜的文件,其應(yīng)用可以簡(jiǎn)單如HTML,也可復(fù)雜如TEI、EAD、CIMI;SGML是完全可擴(kuò)展的(extensible),可以針對(duì)各種類型的文件結(jié)構(gòu)訂定出合適的標(biāo)簽集(tag set);SGML是理想的資料單元格式,提供了相當(dāng)多的選項(xiàng)功能,可以適用于最復(fù)雜的信息處理。2. 非專屬性(non-proprietary)、平臺(tái)獨(dú)立(platform-independent)與系統(tǒng)獨(dú)立(system-independent):SGML并不專屬于特定的平臺(tái)與特定的應(yīng)用系統(tǒng),因此SGML文件可以在彼此不兼容的系統(tǒng)間交換,不會(huì)造成信息遺失(information loss),這個(gè)特性使得SGML文件可以長(zhǎng)久保存。3. 信息再利用性(re-usability):透過SGML文件內(nèi)容模塊(content module)的再利用,使得文件的產(chǎn)生更有效率、更經(jīng)濟(jì),SGML文件的內(nèi)容可以重復(fù)利用,或者被其他的SGML文件使用,不須重新產(chǎn)生內(nèi)容。同一份文件內(nèi)容也可以透過樣式表單(style sheet)以多種呈現(xiàn)方式出版。 二、SGML的限制(注15,16,17):1. SGML應(yīng)用程序不易開發(fā):SGML龐大且復(fù)雜的選項(xiàng)功能雖然使得SGML具有較高的彈性,但也增加了應(yīng)用程序開發(fā)上的難度,即使SGML工具的主要供應(yīng)廠商ArborText所發(fā)表的產(chǎn)品,也沒有百分之百支持SGML標(biāo)準(zhǔn)。事實(shí)上,SGML有許多選項(xiàng)很少被應(yīng)用,如果把這些不常用的選項(xiàng)去掉,將使得應(yīng)用程序的開發(fā)變得更容易。2. SGML文件不易在Web上傳布:要能夠?yàn)g覽SGML文件,必須要有文件型別定義(Document Type Definition;簡(jiǎn)稱DTD)及樣式表單(Style Sheet)。DTD定義了文件結(jié)構(gòu)間的關(guān)系,樣式表單定義了這些結(jié)構(gòu)的呈現(xiàn)格式,如果少了DTD與樣式表單就只能看SGML文件的原始碼了。由于目前Web上的主流瀏覽器只支持HTML,HTML文件并不需要DTD與分離的樣式表單,因此SGML文件在Web上只能透過特定了瀏覽器(如Panorama)才能閱讀,不過這類的瀏覽器并不普及。如果希望SGML信息能在Web上被大多數(shù)人瀏覽,只好透過轉(zhuǎn)換程序?qū)GML轉(zhuǎn)成HTML,但這樣的轉(zhuǎn)換往往會(huì)造成信息遺失(Information Loss),原本SGML文件中所標(biāo)示的結(jié)構(gòu)在轉(zhuǎn)換成HTML文件后并無法繼續(xù)存在。3. 缺法廠商的支持:Web上的主流瀏覽器廠商Microsoft與Netscape支持HTML的發(fā)展,但并沒有支持SGML的意愿;由于SGML過于復(fù)雜,也只有少數(shù)廠商愿意投資開發(fā)SGML的相關(guān)應(yīng)用程序,這使得SGML在普及上造成很大的障礙。肆、HTMLHTML是SGML最著名的應(yīng)用,是一種專為WWW網(wǎng)頁顯示及瀏覽而設(shè)計(jì)的簡(jiǎn)易標(biāo)示語言,目前是WWW上制作網(wǎng)頁的標(biāo)準(zhǔn)語言格式。WWW的開山祖師Tim Berners-Lee對(duì)HTML所下的定義是:HTML是一種用以創(chuàng)造超文件的簡(jiǎn)易數(shù)據(jù)格式,其所創(chuàng)造出來的文件可在不同的作業(yè)平臺(tái)間移動(dòng)。由此可知,可移植性(portable)與簡(jiǎn)易性(simple)是HTML的兩大特征。(注18)HTML文件除了包含文字信息外,尚可包括聲音、影像等多媒體信息,而HTML的超鏈結(jié)除了網(wǎng)頁內(nèi)的鏈結(jié),也包括網(wǎng)頁之間的鏈結(jié)。以下介紹HTML的特色與限制。一、HTML的特色(注19):1. HTML DTD的設(shè)計(jì)主要是滿足在線顯示的需求。許多標(biāo)簽純粹是用來指定網(wǎng)頁的呈現(xiàn)細(xì)節(jié),例如:l br 是換行(line break)。l hr 是畫一并行線(horizontal rule)。l b 表示粗體字(bold)。l i 表示斜體字(italic)。2. HTML有內(nèi)建的樣式(style)。HTML希望直接使用SGML標(biāo)示來控制網(wǎng)頁呈現(xiàn)的樣式,亦即HTML不需要有分離的樣式表單,這使得HTML更為簡(jiǎn)單易用,但缺點(diǎn)是較沒有彈性,同樣的文件內(nèi)容只能設(shè)定一種呈現(xiàn)樣式。3. HTML引用SGML的標(biāo)示最簡(jiǎn)化特征(markup minimization feature)。這是為了盡量減少HTML文件標(biāo)示的數(shù)量,使HTML的標(biāo)示更簡(jiǎn)單,最明顯的例子是結(jié)束標(biāo)簽(end-tag)的省略。例如在HTML 2.0 DTD中,p(paragraph)的結(jié)束標(biāo)簽是可以省略的,其元素型別(element type)的宣告如下: 其中 “-” 表示起始標(biāo)簽(start-tag)是必備的,大寫字母 ”O(jiān)” 表示結(jié)束標(biāo)簽是可省略的(”O(jiān)” 是 “omissible” 的意思)(注20);倘若結(jié)束卷標(biāo)是必備的,則元素類型聲明應(yīng)該如下:結(jié)束標(biāo)簽的省略雖然使得HTML的標(biāo)示更為簡(jiǎn)單,但也成為描述文件結(jié)構(gòu)時(shí)的限制,HTML文件中所有的段落標(biāo)示 在地位上都是平行的,省略了結(jié)束標(biāo)簽就無法描述段落中又有段落的結(jié)構(gòu)。4. HTML沒有采用SGML的超鏈結(jié)(hyperlinking)機(jī)制。HTML的超鏈結(jié)是利用標(biāo)簽 (a是anchor的意思)的 “href” 屬性來指向Web上的任意文件,例如: 是一個(gè)外部鏈結(jié)(external link) 是內(nèi)部鏈結(jié)(internal link)而內(nèi)部鏈結(jié)的目標(biāo)點(diǎn)是利用卷標(biāo) 的 “name” 屬性來指定,例如: SGML則是利用ENTITY或ENTITIES屬性型態(tài)及 ID IDREF機(jī)制來達(dá)到超鏈結(jié)的效果(注21)。二、HTML的限制(注22):1. 結(jié)構(gòu)上的限制:HTML最大的限制就是它的標(biāo)簽集是固定的,而這些卷標(biāo)大都屬于呈現(xiàn)導(dǎo)向(presentation-oriented)的卷標(biāo),主要用來指定網(wǎng)頁的顯示格式,這個(gè)特性使得HTML只能支持固定且簡(jiǎn)單的文件結(jié)構(gòu),而且在信息再利用、數(shù)據(jù)交換與自動(dòng)文件處理方面都造成很大的限制。2. 信息再利用的限制:許多企業(yè)組織都有需要將相同的信息以不同的形式來出版,例如印刷版本、CD-ROM版本、Web版本等,尤其隨著電子出版時(shí)代來臨,數(shù)字化數(shù)據(jù)不管在復(fù)制、編輯、傳布上皆較傳統(tǒng)出版來得便利,將同樣的信息以各種不同的形式出版也變得更可行。如果以HTML作為電子出版的數(shù)據(jù)格式,設(shè)定不同的呈現(xiàn)格式,如標(biāo)題字體的大小、條列(lists)與表格的使用等,就能產(chǎn)生不同的Web版本,如果打印出來就是相對(duì)應(yīng)的印刷版本,但由于HTML文件的數(shù)據(jù)內(nèi)容與呈現(xiàn)外觀是結(jié)合在一起,如果原始文件的內(nèi)容有所改變的話,所有不同形式的版本全部都要跟著轉(zhuǎn)換,這道轉(zhuǎn)換的程序必須耗費(fèi)不少的人力與時(shí)間。如果采用SGML作為電子出版的數(shù)據(jù)格式,由于數(shù)據(jù)內(nèi)容與呈現(xiàn)外觀是分開處理,因此可以避免掉因原始文件內(nèi)容改變而造成所有的版本都必須轉(zhuǎn)換的問題。3. 數(shù)據(jù)交換的限制:由于Web的普及,上網(wǎng)人口不斷增加,使得Web成為許多企業(yè)組織交換數(shù)據(jù)最理想的場(chǎng)所,但由于HTML的標(biāo)簽集是固定的,且這些卷標(biāo)大都屬于呈現(xiàn)導(dǎo)向的卷標(biāo),利用HTML作為數(shù)據(jù)交換的格式,很難對(duì)每一項(xiàng)所要交換的數(shù)據(jù)作清楚的描述。例如:有一家網(wǎng)絡(luò)書店想要透過Web從出版商那里取得一些新出版書籍的書目資料,并希望把這些數(shù)據(jù)自動(dòng)轉(zhuǎn)入自己的數(shù)據(jù)庫中,再動(dòng)態(tài)地把新書信息呈現(xiàn)在網(wǎng)站上,書目數(shù)據(jù)報(bào)括了作者、書名、出版社、ISBN.等字段,以HTML標(biāo)簽來標(biāo)示這些書目數(shù)據(jù),并沒有辦法逐一標(biāo)示每個(gè)字段,通常是把它包裝成表格的形式,以利于瀏覽,但如此一來卻沒有辦法利用程序?qū)TML中的書目數(shù)據(jù)轉(zhuǎn)入數(shù)據(jù)庫中,因?yàn)槌绦驔]法分辨HTML文件中哪一段信息是作者、哪一段信息是書名.,就算出版商以SGML來儲(chǔ)存書目數(shù)據(jù),清楚地描述每一個(gè)書目數(shù)據(jù)的字段,但一旦要透過Web傳送,將SGML轉(zhuǎn)成HTML后,這些書目數(shù)據(jù)的字段結(jié)構(gòu)就無法存在了。4. 自動(dòng)文件處理的限制:自動(dòng)文件處理可節(jié)省人力操作的成本,降低人工輸入的錯(cuò)誤,改善整體作業(yè)流程的質(zhì)量,并提高文件傳遞的速度。透過Web有許多的文件處理流程事實(shí)上可以被自動(dòng)化,尤其在Intranet或Extranet若能將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)出后作自動(dòng)處理,或文件經(jīng)過自動(dòng)處理后直接轉(zhuǎn)入數(shù)據(jù)庫,將能大幅提高效率。目前在Web上一些窗體應(yīng)用程序就是自動(dòng)文件處理簡(jiǎn)單應(yīng)用,如有些在線問卷系統(tǒng)或在線投票系統(tǒng),用戶將填完的問卷數(shù)據(jù)直接傳入伺服端的數(shù)據(jù)庫后,可以直接實(shí)時(shí)讀取數(shù)據(jù)庫的統(tǒng)計(jì)結(jié)果。由于HTML的標(biāo)簽集是固定的,而這些卷標(biāo)大都屬于呈現(xiàn)導(dǎo)向的卷標(biāo),因此HTML文件所能做的自動(dòng)化處理事實(shí)上有很大的限制。所有文件處理高度自動(dòng)化的流程,都必須透過統(tǒng)一的數(shù)據(jù)格式,而且這個(gè)數(shù)據(jù)格式必須能攜帶豐富的內(nèi)容語義,從這個(gè)角度來說HTML并不是一種適合作自動(dòng)文件處理的數(shù)據(jù)格式。5. 無法支持較精確的查詢:目前在Web上使用者可以透過搜索引擎(search engine)所提供的關(guān)鍵詞查詢(keyword search)來尋找相關(guān)的信息,但由于目前Web上的信息不斷增加,使得搜索引擎的查詢結(jié)果往往會(huì)找到太多的信息,而這些信息又不一定能符合自己的信息需求,往往用戶花在過濾出所需信息的時(shí)間,會(huì)超過真正去看這些信息的時(shí)間。搜索引擎的準(zhǔn)確率(precision rate)不高是因?yàn)榈乃玫牟樵兡J绞菍?duì)網(wǎng)頁進(jìn)行全文檢索,雖然也可以將搜尋的目標(biāo)限制在HTML文件的Title部分來提高準(zhǔn)確率,但這樣又會(huì)降低查詢的回收率(recall rate)。一個(gè)較好的辦法是提供可以指定內(nèi)容(content-specific)的標(biāo)簽,例如: 莊子 與 莊子 便有所區(qū)分,如此一來查詢時(shí)便可做較精確的限定,其效果有如字段化查詢一般,不過HTML并無法讓網(wǎng)頁制作者自行定義可以指定內(nèi)容語義的標(biāo)簽,XML將能解決這個(gè)問題。6. HTML的不斷修訂造成了許多網(wǎng)站維護(hù)的額外工作:由于HTML是一個(gè)演進(jìn)中的標(biāo)準(zhǔn),每當(dāng)HTML的標(biāo)簽集不能滿足需求時(shí),W3C就會(huì)為HTML加入新的標(biāo)簽,推出新的HTML版本。從HTML 2.0到HTML 3.2,再到HTML 4.0,每當(dāng)新的HTML版本推出,一些必須維護(hù)大量HTML文件的單位就得重新回頭檢視這些舊版的HTML文件,看看有沒有需要重新標(biāo)示文件。除了W3C會(huì)以官方立場(chǎng)身分修訂HTML外,瀏覽器大廠Microsoft以及Netscape也會(huì)伴隨著新版的瀏覽器推出自己的HTML延伸標(biāo)準(zhǔn),而兩家廠商推出的延伸標(biāo)準(zhǔn)又不完全兼容,對(duì)于許多網(wǎng)站維護(hù)人員來說,每當(dāng)有新版的瀏覽器問世,就代表著可能又要對(duì)部分的網(wǎng)頁重新標(biāo)示。有些組織為了徹底避免重新標(biāo)示文件的困擾,干脆決定采用SGML來標(biāo)示文件,再把SGML轉(zhuǎn)換成HTML,因?yàn)閷GML轉(zhuǎn)成HTML只要透過轉(zhuǎn)換程序批次進(jìn)行并不需花費(fèi)大多資源,但若要重新標(biāo)示成千上萬的HTML網(wǎng)頁就工程浩大了。伍、XML XML是W3C在1996年底提出的標(biāo)準(zhǔn),它是從SGML衍生出來的簡(jiǎn)化格式,也是一種元語言(meta-language),可以用來定義任何一種新的標(biāo)示語言。XML的制定是為了補(bǔ)足HTML的不完美,使得在Web上能夠傳輸、處理各類復(fù)雜的文件,它去除了SGML復(fù)雜不常用及不利于在Web傳送的選項(xiàng)功能,讓用戶可以很容易地定義屬于自己的文件型態(tài),程序設(shè)計(jì)師也能在更短的時(shí)間開發(fā)XML相關(guān)應(yīng)用程序(注23)。XML1.0 Recommendation已于1998年2月公布,相關(guān)標(biāo)準(zhǔn)目前仍在發(fā)展之中,XML的發(fā)展獲得了各界的支持,其中包括了Sun Microsystems, Microsoft, Netscape, Adobe, ArborText.等軟件大廠的背書(注24)。一、 XML的發(fā)展背景: XML的發(fā)展背景主要是因?yàn)镠TML的諸多限制已經(jīng)影響了WWW的發(fā)展,HTML的限制在前面已經(jīng)介紹過了,XML的發(fā)展成員大都對(duì)SGML及結(jié)構(gòu)化的信息(structured information)有相當(dāng)豐富的應(yīng)用經(jīng)驗(yàn),他們相信引進(jìn)SGML技術(shù),能夠彌補(bǔ)HTML的不足,對(duì)WWW的發(fā)展能有以下幾個(gè)方面的貢獻(xiàn)(注25):1. 電子數(shù)據(jù)交換(EDI):結(jié)構(gòu)化信息的一個(gè)主要應(yīng)用是數(shù)據(jù)交換,不同的領(lǐng)域可以針對(duì)領(lǐng)域的特性制定共同的信息內(nèi)容模型(content model),并以這個(gè)共同的內(nèi)容模型來標(biāo)示信息,如此可以促使同領(lǐng)域的信息可以更容易且更有效率地交換,這個(gè)共同的內(nèi)容模型,我們稱之為DTD。無疑地,Web是理想的電子數(shù)據(jù)交換的媒介,但HTML并非理想的數(shù)據(jù)交換格式,也難以充分地表現(xiàn)各種信息內(nèi)容模型與語意結(jié)構(gòu),而XML所要提供的正是一套可以在Web上承載各種結(jié)構(gòu)化信息的框架。2. 與Java技術(shù)更緊密結(jié)合:Java技術(shù)的出現(xiàn)使得瀏覽器能成為通用的應(yīng)用系統(tǒng)平臺(tái),但HTML固定的標(biāo)簽集及不擅長(zhǎng)描述語義的特性,使得Java程序沒有太大的發(fā)揮空間,而XML正好可以給予Java程序大顯身手的環(huán)境,以XML作為各種結(jié)構(gòu)化信息的標(biāo)準(zhǔn)格式,搭配上Java程序,可以使得應(yīng)用程序大部分的運(yùn)算得以在客戶端執(zhí)行,這和目前大部分的Web-based應(yīng)用程序主要透過伺服端的CGI scripts來完成大部分的運(yùn)算是相反的模式。借著XML與Java技術(shù)的結(jié)合,將應(yīng)用程序的運(yùn)算從伺服端移到客戶端來,有助于降低網(wǎng)絡(luò)的流量與增加網(wǎng)絡(luò)的速度。3. 攜帶平臺(tái)獨(dú)立(platform-independent)信息:HTML與XML的始祖SGML提供了一套能夠指定信息的結(jié)構(gòu)與語義的語法規(guī)則,而且具備了平臺(tái)獨(dú)立性。不像Microsoft的RTF、Adobe的PostScript以及其他專屬性的文件格式,SGML所提供的是一套具備平臺(tái)獨(dú)立性與系統(tǒng)獨(dú)立性的語法規(guī)則。二、 XML的設(shè)計(jì)目標(biāo) 根據(jù)XML 1.0 Recommendation(注26),XML的設(shè)計(jì)目標(biāo)如下:1. XML將能直接在Internet上使用。2. XML將支持各種不同的應(yīng)用。3. XML將與SGML相容。4. 處理XML文件的程序能很容易被開發(fā)。5. XML的選項(xiàng)功能將保持最少,最好是零。6. XML文件應(yīng)該是易讀且清晰的。7. XML的設(shè)計(jì)應(yīng)該很快就緒。8. XML的設(shè)計(jì)將是正式且簡(jiǎn)潔的。9. XML文件將很容易被產(chǎn)生。10. 精簡(jiǎn)對(duì)于XML標(biāo)示來說是最不重要的。(HTML的標(biāo)示便盡求精簡(jiǎn))三、XML與SGML主要的不同(注27):1. DTD不是必備的:要處理SGML文件必須要有DTD,而對(duì)于XML文件而言,DTD不是必要的。為了要使XML文件在處理上不需透過DTD,XML文件必須遵守更嚴(yán)謹(jǐn)?shù)恼Z法規(guī)則。對(duì)于XML應(yīng)用程序而言,沒有DTD的好處之一是可以節(jié)省下載DTD所用掉的帶寬,以及應(yīng)用程序在開發(fā)時(shí)可以不必考慮解譯DTD的模塊。2. 必須符合特定的語法規(guī)則(Well-formedness):雖然XML文件可以不需要有DTD,但每一個(gè)XML文件都必須是Well-formed的形式,所謂Well-formed的意思是必須遵從XML所定義的幾條語法規(guī)則。例如:一份XML文件至少要有一對(duì)標(biāo)簽;所有的元素(elements)必須是巢狀的(nested)結(jié)構(gòu),而且卷標(biāo)必須是成對(duì)的,也就是每個(gè)元素都要有起始卷標(biāo)(start tag)與結(jié)束標(biāo)簽(end tag);任何被引用的實(shí)體(entities)一定都要先宣告。這些強(qiáng)制性的語法規(guī)則使得開發(fā)XML的相關(guān)應(yīng)用程序能夠更簡(jiǎn)單,不須像SGML的應(yīng)用程序一般,必須參照DTD進(jìn)行文件結(jié)構(gòu)的確認(rèn)(validation)。3. 不支持例外處理(Exceptions):SGML的使用者可以使用包含(Inclusion)與除外(Exclusion)這兩種語法規(guī)則來指定內(nèi)容模式(content model)的例外處理,例如:可以利用除外(Exclusion)規(guī)則來控制附錄的文字中不能有附錄參照。例外處理的功能對(duì)于一些無法處理不可預(yù)期結(jié)構(gòu)的應(yīng)用程序很重要,由于XML并不支持例外處理,這使得現(xiàn)存許多包含例外處理的SGML DTD一時(shí)還不能以XML來取代。4. 不支持AND內(nèi)容模式(content model):XML并不支持AND(&)內(nèi)容模式。AND內(nèi)容模式主要用來控制一群指定的元素必須同時(shí)出現(xiàn),而出現(xiàn)的順序是任意的。例如:(A&B&C)的意思是A, B, C必須同時(shí)出現(xiàn),但可以是任意的順序,這種內(nèi)容模式主要是要求一群元素的完整性。XML不支持AND內(nèi)容模式,對(duì)于一些必須使用AND內(nèi)容模式來控制特定元素群的完整性的SGML DTD,也無法很快被XML取代。XML可提供兩種是較接近(A&B&C)的簡(jiǎn)單內(nèi)容模式:一種是結(jié)構(gòu)較松散的 (A|B|C)+),另一種是嚴(yán)格限制出現(xiàn)順序的 (A,B,C)。其實(shí)AND內(nèi)容模式可以用其他的內(nèi)容模式組合成相同意義的結(jié)構(gòu),只是表示法可能會(huì)相當(dāng)復(fù)雜。5. 不支持SDATA內(nèi)部實(shí)體(internal entities):SGML允許用戶利用SDATA內(nèi)部實(shí)體來定義特定系統(tǒng)(system-specific)的符號(hào),如一些數(shù)學(xué)符號(hào)。XML并不支持這種機(jī)制。四、XML與HTML主要的不同:1. 信息提供者能任意定義新的卷標(biāo)與屬性名稱。2. 文件結(jié)構(gòu)可以是任意階層或復(fù)雜的巢狀結(jié)構(gòu)(nested structure)3. XML文件可以包含文法(grammar)的選擇描述,讓必須執(zhí)行結(jié)構(gòu)確認(rèn)(structural validation)應(yīng)用程序使用(注28)。4. XML不像HTML只有內(nèi)建的樣式,XML提供了樣式表單標(biāo)準(zhǔn),稱為可擴(kuò)展樣式語言(Extensible Style Language;簡(jiǎn)稱XSL)(注29)。5. XML除了支持像HTML的簡(jiǎn)單鏈結(jié)(simple link),也提供了幾種功能更強(qiáng)大的超鏈結(jié)機(jī)制。XML的超鏈結(jié)機(jī)制被制定為XML鏈結(jié)語言(XML Linking Language;簡(jiǎn)稱XLink)(注30)與XML指針語言(XML Pointer Language;簡(jiǎn)稱XPointer)(注31)。五、XML的樣式表單 XML提供的樣式表單標(biāo)準(zhǔn),稱為XSL,1998年12月發(fā)布1.0版草案,簡(jiǎn)介如下(注32):1. 以DSSSL(Document Style Semantics and Specification Language)為基礎(chǔ):SGML成為國(guó)際標(biāo)準(zhǔn)之后,支持SGML的樣式表單(Style Sheet)標(biāo)準(zhǔn)就開始被發(fā)展,這些標(biāo)準(zhǔn)的制定主要是為了促進(jìn)樣式表單的交換與改善處理文件的軟件之間的互操作性(interoperability)。這些樣式表單標(biāo)準(zhǔn)中最著名的就是DSSSL,后來DSSSL也被建議成為ISO的標(biāo)準(zhǔn),不過DSSSL一直沒有得到商業(yè)軟件的支持。2. 與CSS(Cascading Style Sheets)相容:CSS是Microsoft與Netscape所支持的樣式表單標(biāo)準(zhǔn),作為HTML默認(rèn)樣式的替代機(jī)制。由于HTML的樣式是內(nèi)建的,并沒有提供樣式表單,透過CSS就能使得HTML在顯示格式上有較大得彈性。XSL將在功能上涵蓋CSS的功能,并且使能從CSS透過程序自動(dòng)轉(zhuǎn)換到XSL,如此一來現(xiàn)有以CSS所設(shè)定的格式不至于從新來過。3. 具備重新排序(Reordering)的能力:借著XSL樣式表單,不需透過伺服端程序的重新處理,在客戶端的瀏覽器上就能改變數(shù)據(jù)呈現(xiàn)的順序,這個(gè)特色對(duì)于一些借著將數(shù)據(jù)以任意的順序呈現(xiàn)來達(dá)成互動(dòng)性的應(yīng)用程序特別有用,而且由于重新排序的動(dòng)作全部在客戶端就可實(shí)現(xiàn),不需透過伺服端與客戶端的來回通訊,有助于節(jié)省網(wǎng)絡(luò)帶寬與避免因網(wǎng)絡(luò)速度太慢影響了應(yīng)用程序執(zhí)行的反應(yīng)速度。4. 對(duì)于文件中元素(elements)的前后文關(guān)系(context)更加靈敏:CSS支持對(duì)每一個(gè)元素的父元素(parent)設(shè)定樣式;XSL更進(jìn)一步允許對(duì)每一個(gè)元素的祖先元素(ancestors)、后代元素(descendants)、兄弟元素(siblings)設(shè)定不同的樣式,這對(duì)于以文件中元素的位置及前后文關(guān)系來設(shè)定樣式提供了更大的彈性。5. 同時(shí)支持在線顯示與打印的格式:CSS只有支持在線顯示,XSL除了支持在線顯示的格式外,也支持文件打印能有更豐富、更復(fù)雜的格式。六、XML的超鏈結(jié)機(jī)制: XML的超鏈結(jié)機(jī)制被制定為XLink與Xpointer兩個(gè)標(biāo)準(zhǔn),1998年3月各發(fā)布了1.0版草案,簡(jiǎn)介如下(注33):1. 基于HyTime(Hypermedia/Time-based Structuring Language)與TEI(Text Encoding Initiative)的鏈結(jié)概念:XLink與XPointer的鏈結(jié)概念引用自HyTime與TEI,這些標(biāo)準(zhǔn)目前尚未被軟件廠商所普遍支持。XML將提供幾種比目前HTML的超鏈結(jié)機(jī)制更強(qiáng)大、更有彈性的鏈結(jié)機(jī)制。2. 與現(xiàn)有的URL鏈結(jié)機(jī)制相容:XLink將完全支持現(xiàn)有的Web的URL鏈結(jié)格式。3. 支援雙向鏈結(jié)(Bi-directional Links):雙向鏈結(jié)允許使用者能在鏈結(jié)的兩端自由來回跳躍。目前HTML的單向鏈結(jié)在使用時(shí),有時(shí)經(jīng)過幾次的超鏈結(jié)跳躍后會(huì)有迷路或找不到回家的路的情況發(fā)生,透過雙向鏈結(jié)的機(jī)制,這些情況可以改善一些。4. 支持尋址(Addressing):XPointer允許鏈結(jié)到目標(biāo)文檔的階層結(jié)構(gòu)的某個(gè)精確位置,也就是可以利用文件的結(jié)構(gòu)來尋址,這是比較有彈性的鏈結(jié)方式。HTML的文件內(nèi)部超鏈結(jié)必須指定文件中的絕對(duì)位置,一旦文件內(nèi)容有所改變,通常必須更新鏈結(jié);利用文件結(jié)構(gòu)來尋址所指定的是相對(duì)位置,只要文件結(jié)構(gòu)沒有改變,就算文字內(nèi)容改變了也不需更新鏈結(jié)。5. 支援間接鏈結(jié)(Indirect Links):間接鏈結(jié)可以改善目前Web上很普遍的斷裂鏈結(jié)(broken links)問題,現(xiàn)在Web所使用上URL(Uniform Resource Locator)是屬于絕對(duì)地址,只要主機(jī)位置或路徑改變,所有包含這個(gè)URL的檔案都必須更新,否則就會(huì)造成斷裂鏈結(jié),這對(duì)使用者與網(wǎng)站管理者都造成一些困擾,就算能利用程序自動(dòng)偵測(cè)每個(gè)鏈結(jié)的狀況,產(chǎn)生斷裂鏈結(jié)的清單,但要處理這些斷裂鏈結(jié)也需耗費(fèi)不少人力,尤其是一些大的網(wǎng)站,可能定時(shí)得處理斷裂鏈結(jié)問題,否則便會(huì)遭來使用者的抱怨。XLink的間接鏈結(jié)所采用的地址是間接地址,再透過一個(gè)分離的中介檔(intermediate file)來儲(chǔ)存間接地址與實(shí)際地址的對(duì)應(yīng),如果某個(gè)檔案改變了在網(wǎng)絡(luò)的位置,只需更新這個(gè)中介檔的對(duì)應(yīng),至于鏈結(jié)的源文件與目標(biāo)文件都不需更動(dòng),這使得鏈結(jié)的管理更有效率。陸、結(jié)語 對(duì)于電子圖書館等必須大量收集、組織、儲(chǔ)存、傳布大量數(shù)字?jǐn)?shù)據(jù)的單位而言,選擇適當(dāng)?shù)臄?shù)據(jù)格式是極為重要的,除了必須考慮到長(zhǎng)期保存、交換的需求外,這個(gè)數(shù)據(jù)格式應(yīng)該能支持更精確的檢索及各種不同的再利用,SGML已被幾個(gè)知名的電子圖書館相關(guān)計(jì)劃采用作為電子文件格式,如TEI、EAD、CIMI、DIAP與American Memory Project等。但無法在Web上廣泛傳布一直是SGML最大的限制,透過XML的制定,將突破這個(gè)限制,使得電子圖書館所典藏的各種結(jié)構(gòu)化信息也能透過Web廣泛地傳播出去,信息唯有被廣泛利用才能成就它的價(jià)值。此外在文獻(xiàn)傳遞、分布式查詢、信息過濾等方面,XML也將分別帶來效益,且讓我們拭目以待。注 釋 注1:Yves Marcoux and Martin Sevigny, Why SGML? Why Now?, Journal of American Society for Information Science, 48:7 (July 1997), p.584.注2:Lou Burnard and Richard Light, Three SGML metadata formats: TEI, EAD, and CIMI - A study for BIBLINK Work Package 1.1 (Dec. 1996) 注3:Edward Gaynor, From MARC to Markup: SGML an

溫馨提示

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

評(píng)論

0/150

提交評(píng)論