喬惠萍山西建筑職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系 山西 030006
互聯(lián)網(wǎng)的飛速發(fā)展使得 Internet成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,并在人們生活中的各個(gè)方面扮演著重要的角色。在互聯(lián)網(wǎng)上發(fā)布信息主要是通過網(wǎng)站來實(shí)現(xiàn)的,網(wǎng)站是由網(wǎng)頁構(gòu)成的,是一系列相互關(guān)聯(lián)的網(wǎng)頁的集合。而網(wǎng)頁又是由各種各樣的網(wǎng)頁元素構(gòu)成(文本、圖像、動(dòng)畫、音頻、視頻)的,各種元素如何合理的分布在網(wǎng)頁上?網(wǎng)頁上的內(nèi)容又是如何發(fā)布到互聯(lián)網(wǎng)上,使得千千萬萬的用戶在自己的計(jì)算機(jī)上都能看到同樣的內(nèi)容呢?
為了在互聯(lián)網(wǎng)上發(fā)布信息,需要一種所有計(jì)算機(jī)都能夠理解的“出版”語言,這就是國際標(biāo)準(zhǔn)ISO8879—標(biāo)準(zhǔn)通用標(biāo)記語言(Standard Generalized Markup Language, SGML)。
現(xiàn)在互聯(lián)網(wǎng)網(wǎng)頁文檔很多是用超文本標(biāo)記語言(HyperText Markup Language, HTML)編寫的,HTML可以看做是SGML的實(shí)際應(yīng)用。
HTML與其他高級(jí)語言(如C語言等)不同,它不是一種程序設(shè)計(jì)語言,而是一種頁面(Page)語言,在某種程度上和排版語言類似。制作HTML文檔時(shí)需要加入一些標(biāo)記(Tag),用于說明一些段落、標(biāo)題、圖像、字體等。當(dāng)用戶通過Web瀏覽器閱讀HTML文檔時(shí),瀏覽器負(fù)責(zé)解釋插入文檔中的各種標(biāo)識(shí),并以此為依據(jù)顯示文檔的內(nèi)容。
HTML語言同3W(World Wide Web)在上世紀(jì)90年代成為Internet的正式標(biāo)準(zhǔn),所有的 Web瀏覽器都支持HTML語言,所有用戶用不同的瀏覽器中都能顯示相同的頁面。今天,HTML文檔已經(jīng)可以跨越不同的瀏覽器和平臺(tái),發(fā)展成為一種所有設(shè)備(例如,個(gè)人計(jì)算機(jī)、移動(dòng)電話、手持設(shè)備、語言輸入輸出設(shè)備等)都可以使用的萬維網(wǎng)語言。
HTML的文檔是ASCII文件,沒有任何特殊格式,可以使用任何編輯器編輯即使像Notepad如此簡單的軟件。通常HTML的文檔由文檔頭(head)、文檔名稱(title)、文檔主體(body)、段落(paragraph)等成分組成。下面是一個(gè)簡單的HTML文檔:
<HTML>
<HEAD>
<TITLE>HTML文件結(jié)構(gòu)</TITLE >
</HEAD>
<BODY>
<H1> 歡迎訪問我的網(wǎng)站!</H1>
<p>這是一個(gè)HTML文件實(shí)例</p>
</BODY>
<HTML>
HTML文檔按多級(jí)標(biāo)題結(jié)構(gòu)進(jìn)行組織,由<HTML>開始,以</HTML>結(jié)束。每個(gè) HTML文檔由文檔頭(head)和正文(body)組成,并分別用<HEAD>…</HEAD>和<BODY>…</BODY>來標(biāo)記。文檔頭標(biāo)簽<HEAD>…</HEAD>之間使用<TITLE>…</TITLE>包含文檔的名稱。正文標(biāo)簽<BODY>…</BODY>之間含有各種 HTML標(biāo)簽作標(biāo)記的段落、列表和其他文檔元素組成的實(shí)際文檔。
HTML的一個(gè)重要特性是超文本鏈接。通過在文件內(nèi)創(chuàng)建“熱”區(qū),使用戶用鼠標(biāo)點(diǎn)擊熱區(qū)能跳轉(zhuǎn)到其他網(wǎng)頁、本地文件或頁面上其他區(qū)域。這樣使得以往平面文檔的線性瀏覽方式改變成為一種立體文檔,具有非線性瀏覽功能。
XHTML與HTML文檔最主要的不同如下:
(1)XHTML元素必須被正確地嵌套。
(2)XHTML元素必須被關(guān)閉,非空標(biāo)簽必須使用結(jié)束標(biāo)簽,空標(biāo)簽也必須使用結(jié)束標(biāo)簽,或者其開始標(biāo)簽必須使用/>結(jié)尾。
(3)標(biāo)簽名必須用小寫字母。XHTML規(guī)范定義標(biāo)簽名和屬性對大小寫敏感。
(4)XHTML文檔必須擁有根元素。所有的XHTML元素必須被嵌套于<html>根元素中,其余所有的元素均可有子元素。子元素必須是成對的,且被嵌套在其父元素中。
(5)屬性名稱必須小寫,不能簡寫。(6)用ID屬性代替NAME屬性??梢钥闯鯴HTML比HTML要更嚴(yán)格。
2011年2月11日,遼寧省委、省政府出臺(tái)了《關(guān)于貫徹落實(shí)〈中共中央國務(wù)院關(guān)于加快水利改革發(fā)展的決定〉的實(shí)施意見》(以下簡稱《實(shí)施意見》),對加快遼寧水利改革發(fā)展作出了全面部署,提出力爭通過5~10年的努力,到2020年進(jìn)一步增強(qiáng)水利支撐經(jīng)濟(jì)社會(huì)發(fā)展的能力,基本建成防洪抗旱減災(zāi)體系、“東水濟(jì)西”水資源配置格局和高效利用體系、水資源保護(hù)及江河流域健康保障體系和有利于水利科學(xué)發(fā)展的制度體系。
與HTML一樣,XML(Extensible MarkupLanguag)也源自SGML,HTML有固定標(biāo)記集合,有著規(guī)定不變的格式,而XML實(shí)際上是一種定義語言,使用者可以用XML自己定義各種標(biāo)記來描述文件中的元素。
XML與HTML的區(qū)別主要是:
(1)HTML是用來顯示數(shù)據(jù),重點(diǎn)是‘如何顯示數(shù)據(jù)’。
(2)XML可以用來描述數(shù)據(jù),重點(diǎn)是‘?dāng)?shù)據(jù)是什么’。
(3)XML是一種類似于 HTML的標(biāo)記語言,但 XML的標(biāo)記不是在XML中預(yù)定義的,你必須定義自己的標(biāo)記。
(4)XML使用文檔類型定義(DTD)或者模式(Schema)來描述數(shù)據(jù)。
(5)XML使用DTD或者Schema后就是自描述的語言。
XML包含3個(gè)要素:文檔定義(DTD/XML Schema)、可擴(kuò)展樣式語言XSL(eXtensible Stylesheet Language)和XLink。DTD規(guī)定XML文件的邏輯結(jié)構(gòu),定義了XML文件中的元素、元素的屬性和屬性之間的關(guān)系;XSL是規(guī)定XML文檔樣式的語言,它可以在客戶端使Web瀏覽器改變文檔的表示法,而不與服務(wù)器進(jìn)行交互通信;XLink將進(jìn)一步擴(kuò)展當(dāng)前Web上已有的簡單鏈接。
XML的應(yīng)用一般可分為四種:
① 客戶需要與不同的數(shù)據(jù)源進(jìn)行交互,使用XML解決數(shù)據(jù)的統(tǒng)一接口問題。
來自不同數(shù)據(jù)庫的數(shù)據(jù)有各自不同的格式,而客戶與這些數(shù)據(jù)庫間只能用一種標(biāo)準(zhǔn)語言進(jìn)行交互,就是XML。XML的自定義性及可擴(kuò)展性,使得可以表達(dá)各種類型的數(shù)據(jù)。
② 大量運(yùn)算負(fù)荷分布在客戶端,服務(wù)器只需發(fā)出同一個(gè)XML文件。
傳統(tǒng)的“客戶/服務(wù)器”工作方式中,客戶向服務(wù)器發(fā)出不同的請求,服務(wù)器會(huì)分別進(jìn)行響應(yīng),這就需要網(wǎng)絡(luò)管理者事先調(diào)查各種不同的用戶需求以做出相應(yīng)不同的程序,無形中加重了服務(wù)器本身的負(fù)荷。假如用戶的需求繁雜多變,所有業(yè)務(wù)邏輯集中在服務(wù)器端是不合適的,服務(wù)器端的編程人員可能滿足不了眾多的應(yīng)用需求,也來不及跟上需求的變化。應(yīng)用XML可以將處理數(shù)據(jù)的主動(dòng)權(quán)交給客戶,服務(wù)器所作的只是盡可能完善、準(zhǔn)確地將數(shù)據(jù)封裝進(jìn)XML文件中,從而使廣泛、通用的分布式計(jì)算成為可能。
③ 網(wǎng)絡(luò)代理編輯、增減所取得的信息以適應(yīng)個(gè)人用戶的需要。
有些客戶取得數(shù)據(jù)并不是為了直接使用而是為了根據(jù)需要組織自己的數(shù)據(jù)庫。如學(xué)校建立了一個(gè)題庫,考試時(shí)可將題庫中的題目抽出若干組成試卷,再將試卷封裝進(jìn) XML文件發(fā)送給考生。
④ 同一數(shù)據(jù)以不同的面貌展現(xiàn)給不同的用戶。
如可以用電視劇、電影、話劇和動(dòng)畫片等不同形式表現(xiàn)同一個(gè)劇本。
XML可以使數(shù)據(jù)制作者不必考慮數(shù)據(jù)的用途,而只考慮有可能會(huì)被用到的信息,并將其完整、規(guī)范地制作成 XML文件,服務(wù)商也無需拘泥于特定的腳本語言、制作工具等,只需提供標(biāo)準(zhǔn)化、可獨(dú)立銷售、有級(jí)別操作的領(lǐng)域,從而最大限度地滿足客戶的需求。
微軟的Schema成為現(xiàn)在的W3C定義的Schema的原型。但是W3C發(fā)展了一套不同于 DTD方法來定義XML數(shù)據(jù)類型,并給出了自己的定義。
Schema是一種描述信息結(jié)構(gòu)的模型,它是借用數(shù)據(jù)庫中一種描述相關(guān)表格內(nèi)容的機(jī)制,為一類文件樹立了一個(gè)模式,該模式規(guī)范了文件中tag(標(biāo)簽)和文本可能的組合形式。例如,一本書的相關(guān)信息可以表示為:
<BOOK>
<TITLE>W(wǎng)EB應(yīng)用程序設(shè)計(jì)</TITLE>
<AUTHOR>喬惠萍</AUTHOR>
<PUBLISHER>機(jī)械工業(yè)出版社</PUBLISHER>
<PRICE>RMB 24.00</PRICE>
</BOOK>
進(jìn)行Schema的檢查過程是:一本書的信息包括書名、作者、出版社等。在 Schema中規(guī)范了內(nèi)容的模式限制和數(shù)據(jù)類型限制,前者用來規(guī)定文件中element(元素)的順序,后者用來限制數(shù)據(jù)單元的合法性。
HTML網(wǎng)頁使用預(yù)先確定的標(biāo)識(shí)(tags),對所有的標(biāo)記都有明確的含義,而XML沒有固定的標(biāo)識(shí),需要用戶自己建立標(biāo)識(shí),所以瀏覽器不能自動(dòng)解析它們。XML文檔沒有一個(gè)標(biāo)準(zhǔn)的辦法來顯示。為了顯示 XML文檔,可以使用 XSL(eXtensible Stylesheet Language)樣式語言。
XSL由兩部分組成:一是轉(zhuǎn)化XML文檔;二是格式化XML文檔。
Xlink是說明如何在網(wǎng)絡(luò)上做到識(shí)別、定址及連接的規(guī)格文件。Xlink一個(gè)重要功能是建立“topicmaps”。Topicmaps允許不同的資料有外在的注解(External Annotation)。
Xlink定義了幾種常用的連接型態(tài):
① Simple:類似在HTML內(nèi)a標(biāo)記的用法。
② Extended:用法包含arc和locator的元素,并允許各種類的擴(kuò)充連接。
③ Group和Document:讓群組連接到一些特別的文件。
因此,在當(dāng)前最新的.NET平臺(tái)下,XML以其描述簡單、功能強(qiáng)大、跨平臺(tái)等特點(diǎn)被廣泛應(yīng)用在各種領(lǐng)域,逐漸成為一種新的網(wǎng)絡(luò)數(shù)據(jù)處理方式。在網(wǎng)站中常被用來存儲(chǔ)臨時(shí)數(shù)據(jù)、配置信息或者列表詳情等,使用XML有效減少了與數(shù)據(jù)庫的交互次數(shù),提升了服務(wù)器的訪問性能和速度。
[1]許卓鳴,劉琴.基于關(guān)系數(shù)據(jù)庫的XML存儲(chǔ)技術(shù)評(píng)述[D].南京:東南大學(xué)碩士學(xué)位論文.2003.
[2]趙英.組織 Web資源的新的標(biāo)識(shí)語言—xML[J].圖書館雜志.2000.
[3]林甫.試析常用于數(shù)字圖書館中數(shù)據(jù)交換與處理的三種數(shù)據(jù)格式的標(biāo)識(shí)語言(SGML、HTML、XML)的異同性.現(xiàn)代情報(bào).2002.
[4]韓利芳.可擴(kuò)展標(biāo)記語言及其應(yīng)用.電訊技術(shù).2009.