基礎(chǔ)知識(shí)認(rèn)識(shí)XML:下一代網(wǎng)絡(luò)的基石_Xml教程
推薦:Java中四種XML解析技術(shù)之不完全測(cè)試測(cè)試環(huán)境: AMD毒龍1.4G OC 1.5G、256M DDR333、Windows2000 Server SP4、Sun JDK 1.4.1 Eclipse 2.1 Resin 2.1.8,在Debug模式下測(cè)試。 XML文件格式如下:
隨著互聯(lián)網(wǎng)的迅猛發(fā)展和普及,人們可以通過計(jì)算機(jī)與互聯(lián)網(wǎng)聯(lián)接,從世界各地實(shí)時(shí)的接收和發(fā)送大量、最新的信息,但在信息交換的過程中存在著一個(gè)突出的問題,就是多種多樣的數(shù)據(jù)格式,給信息的有效使用帶來了障礙。所以在信息時(shí)代,如何以最便捷、最可靠、最有效的方式獲取所需的信息是一個(gè)很大的困擾。人們期待著能夠找到一種可以描述任何邏輯關(guān)系的數(shù)據(jù)格式來統(tǒng)一電子數(shù)據(jù)的存儲(chǔ),從而不再因?yàn)閿?shù)據(jù)格式的不統(tǒng)一而苦惱和困惑。目前,能夠擔(dān)當(dāng)此任的就是xml(extensible markup language,可擴(kuò)展符號(hào)化語言)。
可以說,xml的出現(xiàn)給數(shù)據(jù)交換帶來了一場(chǎng)革命;xml的出現(xiàn)是至今為止最聰明的一種符號(hào)化語言;xml成為下一代網(wǎng)絡(luò)發(fā)展的基石。
xml誕生的背景
sgml介紹
說到xml,我們一定要先了解一下sgml (standard generalized markup language) 。sgml最初是由ibm開發(fā)的一種用于排版的符號(hào)化語言,稱為gml。經(jīng)過若干年的發(fā)展,1984年國(guó)際標(biāo)準(zhǔn)化協(xié)會(huì)(iso)開始對(duì)此提案進(jìn)行討論,于1986年正式承認(rèn)sgml為國(guó)際標(biāo)準(zhǔn)規(guī)范(iso8879)。
xml作為電子數(shù)據(jù)交換的統(tǒng)一格式
sgml實(shí)際上是一種通用的文檔結(jié)構(gòu)描述符號(hào)化語言,主要用來定義文獻(xiàn)模型的邏輯和物理類結(jié)構(gòu)。一個(gè)sgml語言文件由三部分組成,即語法定義、文件類型定義dtd(definition type document)和文件實(shí)例。語法定義部分定義了文件類型定義和文件實(shí)例的語法結(jié)構(gòu);文件類型定義部分定義了文件實(shí)例的結(jié)構(gòu)和組成結(jié)構(gòu)的元素類型;文件實(shí)例是sgml語言程序的主體部分。
在sgml的實(shí)際使用中,每一個(gè)特定的dtd都定義了一類文件。因此,人們習(xí)慣上把具有某一特定dtd的sgml語言,稱為某某符號(hào)化語言。這樣sgml就成為那些派生語言的元語言。
html的出現(xiàn)
1989年,歐洲物理量子實(shí)驗(yàn)室(cern)的信息專家蒂姆·伯納斯·李發(fā)明了超文本鏈接語言, 使用此語言能輕松地將一個(gè)文件中的文字或圖形連到其它的文件中去,這就是html的前身。1991年,蒂姆·伯納斯·李在cern定義了html語言的第一個(gè)規(guī)范,之后成為w3c組織為專門在互聯(lián)網(wǎng)上發(fā)布信息而設(shè)計(jì)的符號(hào)化語言規(guī)范�?梢哉f,html(hypertext markup language)是sgml的一個(gè)實(shí)例,它的dtd作為標(biāo)準(zhǔn)被固定下來。因此,html不能作為定義其它符號(hào)化語言的元語言。
作為world wide web的一個(gè)組成部分,html語言發(fā)展很快,在短短的幾年里,它已歷經(jīng)了html1.0、html2.0和html3.0、html4.0等多個(gè)版本,同時(shí)dhtml (動(dòng)態(tài))、vhtml(虛擬)、shtml等也飛速發(fā)展起來。html以簡(jiǎn)單精練的語法、極易掌握的通用性與易學(xué)性,使web網(wǎng)頁可以親近于每一個(gè)普通人,互聯(lián)網(wǎng)因此得以普及發(fā)展以至今日輝煌。
但是,目前的html還不穩(wěn)定,不同的瀏覽器會(huì)產(chǎn)生不同的顯示效果。此外 ,由于html對(duì)超級(jí)鏈接支持不足,并缺乏空間立體描述,處理圖形、圖像、音頻、視頻等多媒體能力較弱,圖文混排功能簡(jiǎn)單,不能表示多種媒體的同步關(guān)系等缺點(diǎn),也影響html的大規(guī)模應(yīng)用以及用于復(fù)雜的多媒體數(shù)據(jù)處理。
xml的誕生
xml是由w3c于1998年2月發(fā)布的一種標(biāo)準(zhǔn)。它同樣是sgml的一個(gè)簡(jiǎn)化子集,它將sgml的豐富功能與html的易用性結(jié)合到web的應(yīng)用中,以一種開放的、自我描述方式定義了數(shù)據(jù)結(jié)構(gòu)。在描述數(shù)據(jù)內(nèi)容的同時(shí)能突出對(duì)結(jié)構(gòu)的描述,從而體現(xiàn)出數(shù)據(jù)之間的關(guān)系。這樣所組織的數(shù)據(jù)對(duì)于應(yīng)用程序和用戶都是友好的、可操作的。之后,w3c又用xml設(shè)計(jì)出一個(gè)與html4.01功能等價(jià)的語言,稱為xhtml1.0 (extensible hyper text markup language)使之與html相兼容。
xml是sgml的一個(gè)子集,嚴(yán)格地講,xml也還是sgml。與html不同的是xml有dtd,因而也可以像sgml那樣作為元語言來定義其它文件系統(tǒng),或稱其它符號(hào)化語言。如果把符號(hào)化語言分為元符號(hào)化語言和實(shí)例符號(hào)化語言的話,sgml和xml都是元符號(hào)化語言,而html和由xml派生的xhtml都是實(shí)例符號(hào)化語言。
所以可以說,xml的出現(xiàn),使html存在的問題可以得到很好的解決。
xml的特點(diǎn)
xml作為引人注目的核心技術(shù)應(yīng)用于btob、web服務(wù)、.net等許多系統(tǒng)中。xml是it界談話中不可缺少的一個(gè)關(guān)鍵詞。因此,xml對(duì)于計(jì)算機(jī)工程師來說,是必不可少的一門知識(shí)。
xml可以作為電子數(shù)據(jù)交換的統(tǒng)一格式
10年來,web存儲(chǔ)格式語言,從html發(fā)展到dhtml,直到今天最新的xml,發(fā)展的每一步,都是為了適應(yīng)web應(yīng)用發(fā)展的需求。雖然xml原本是為出版界設(shè)計(jì)的一種文檔描述語言,即sgml派生而來的一種符號(hào)化語言,但是它也是為互聯(lián)網(wǎng)的數(shù)據(jù)交換而設(shè)計(jì)的。從而,xml不僅僅是sgml定義的用于描述的文檔,而且在電子商務(wù)等各個(gè)領(lǐng)域使數(shù)據(jù)交換成為可能。
xml能夠應(yīng)用于各種領(lǐng)域的原因,就是xml具有到目前為止其他方法所不具備的數(shù)據(jù)描述特點(diǎn),控制信息不是采用應(yīng)用軟件的獨(dú)有形式,而是采用誰都可以看得懂的標(biāo)記形式來表現(xiàn),所以xml最適合作為數(shù)據(jù)交換的標(biāo)準(zhǔn),這也是 xml受人關(guān)注的原因。
用xml可以對(duì)數(shù)據(jù)關(guān)系進(jìn)行定義形成特有的標(biāo)準(zhǔn),因此各行各業(yè)都在建立自己的行業(yè)化標(biāo)準(zhǔn),以應(yīng)用于網(wǎng)絡(luò)上處理電子商務(wù),把后臺(tái)系統(tǒng)通過web站點(diǎn)表現(xiàn)出來。xml還可以作為數(shù)據(jù)倉儲(chǔ),一個(gè)xml文件就是一個(gè)小的數(shù)據(jù)庫,通過對(duì)數(shù)據(jù)關(guān)系的定義形成各種關(guān)系、屬性的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)交換、上下文檢索、多媒體傳輸。
xml具有其他方法所不具備的數(shù)據(jù)描述特點(diǎn)
xml是以文本形式來描述的一種文件格式 由于xml是以文本形式描述的,所以適合于各種平臺(tái)環(huán)境的數(shù)據(jù)交換。同樣由于使用文本來描述內(nèi)容,可以越過不同平臺(tái)的障礙進(jìn)行正常的數(shù)據(jù)交換。但是,文本形式也會(huì)因?yàn)槲淖执a的不同造成不能閱讀的問題,在這一點(diǎn)上xml有著非常完美的解決方案。
xml使用有意義的標(biāo)記(tag) 在xml中文件是由一個(gè)個(gè)稱之為元素(element)的部件構(gòu)成。使用標(biāo)記(tag )來描述元素。由于使用了標(biāo)記的描述方法,可以保持原數(shù)據(jù)的意思和構(gòu)造在互聯(lián)網(wǎng)上進(jìn)行數(shù)據(jù)交換,進(jìn)而可以保持不同系統(tǒng)之間數(shù)據(jù)交換的靈活性。
為什么具有上述的優(yōu)點(diǎn)呢?首先是使用標(biāo)記描述數(shù)據(jù)的話,可以具體指出開始元素(開始標(biāo)記)、結(jié)束元素(結(jié)束標(biāo)記),在開始和結(jié)束元素之間是要表現(xiàn)的元素?cái)?shù)據(jù)。這就是用元素表現(xiàn)數(shù)據(jù)的方法。
標(biāo)記可以作為子元素 xml中用標(biāo)記符號(hào)化的元素可以作為子元素形成數(shù)據(jù)嵌套。
xml的標(biāo)記名和關(guān)系可以自由定義 就像許多文章中介紹的那樣“xml是用標(biāo)記描述的語言”,而且xml的標(biāo)記名標(biāo)記的層次結(jié)構(gòu)等都可以由用戶定義。也就是說,根據(jù)xml語法可以定義用戶特殊用途的標(biāo)記集合形成一個(gè)全新的符號(hào)化語言。這就是xml“可擴(kuò)充(extensible)”名字的來源。
可以說,xml是“定義語言的語言”,也即是一種元語言。由于xml具有元語言的功能,所以可以成為描述電子商務(wù)數(shù)據(jù)、多媒體演示數(shù)據(jù)、數(shù)學(xué)公式等各種各樣數(shù)據(jù)應(yīng)用語言的基礎(chǔ)語言。下面提供幾個(gè)以xml為基礎(chǔ)生成的數(shù)據(jù)描述語言(本文亦稱為xml應(yīng)用語言)的應(yīng)用例子,即出版媒體:open ebook(電子書籍)、newsml(新聞媒體);科學(xué):mathml(數(shù)學(xué)表達(dá)式)、cml(化學(xué));電子商務(wù):cxml(電子商務(wù))、fpml(金融);多媒體:smil(多媒體演示)、bml(衛(wèi)星數(shù)據(jù)傳送)。
另外,就像我們使用的自然語言,講這種語言的人多了就會(huì)把它當(dāng)作不認(rèn)識(shí)的人之間的初次交流時(shí)的工具。同樣,在特定的企業(yè)之間或在業(yè)界內(nèi)歸納出一套標(biāo)記集合,即約定用一套特定的xml應(yīng)用語言作為交流工具是很有價(jià)值的。但是,許多xml用戶都是用業(yè)界或集團(tuán)標(biāo)準(zhǔn)化以后的應(yīng)用語言,很少有人自己制作一套新的xml應(yīng)用語言。
xml的不足之處
xml作為數(shù)據(jù)描述語言是非常優(yōu)秀的,但是并不是所有的電子數(shù)據(jù)都是轉(zhuǎn)換到xml是最有效的。例如xml的文本表現(xiàn)手法、標(biāo)記的符號(hào)化等會(huì)導(dǎo)致xml數(shù)據(jù)比二進(jìn)制表現(xiàn)方法數(shù)據(jù)量增加,尤其當(dāng)數(shù)據(jù)量很大時(shí),會(huì)成為很大的問題。也就是說,xml的導(dǎo)入要根據(jù)具體需求,比較其優(yōu)缺點(diǎn),在充分發(fā)揮xml優(yōu)點(diǎn)的領(lǐng)域進(jìn)行。
盡管xml具備了作為通用數(shù)據(jù)描述語言的優(yōu)秀特征,但是xml不是編程語言,說到底它是一種數(shù)據(jù)描述的技術(shù)。因此xml文件的顯示、文件結(jié)構(gòu)的變更、應(yīng)用程序的操作等xml相關(guān)技術(shù)也是非常重要的。
xml的主要相關(guān)技術(shù)分類
xml是描述內(nèi)容的數(shù)據(jù)格式,在使用xml數(shù)據(jù)時(shí),還需要xml數(shù)據(jù)的顯示、打印、數(shù)據(jù)結(jié)構(gòu)的變更等許多相關(guān)技術(shù)。如果這些相關(guān)技術(shù)也都標(biāo)準(zhǔn)化的話,即使在不同平臺(tái)開發(fā)應(yīng)用程序也都可以用相同的方法,使開發(fā)難度降低。
處理xml數(shù)據(jù)時(shí),一定要使用xml processor(也就是xml parser),把xml數(shù)據(jù)結(jié)構(gòu)的檢查等交給xml parser去做。
關(guān)于xmlprocessor有許多軟件產(chǎn)品,當(dāng)然,也有不少免費(fèi)的。開發(fā)工程師只需將xml數(shù)據(jù)的檢查工作交給xmlprocessor即可,集中精力開發(fā)應(yīng)用程序部分,減少了不小的負(fù)擔(dān)。
應(yīng)用程序?qū)邮盏絰mlprocessor傳遞來的xml樹進(jìn)行處理,向用戶提供服務(wù)。此時(shí),不管是電子商務(wù),還是知識(shí)管理,都是定義xml數(shù)據(jù)結(jié)構(gòu)的技術(shù)、顯示打印xml數(shù)據(jù)的技術(shù)、xml數(shù)據(jù)結(jié)構(gòu)變更技術(shù)、xml數(shù)據(jù)聯(lián)接整合技術(shù)、用程序操作xml樹的api和其它應(yīng)用技術(shù)的組合。
定義xml數(shù)據(jù)結(jié)構(gòu)的技術(shù)
在xml中用戶可以自由的定義標(biāo)記名以及與標(biāo)記相關(guān)的元素及元素層次,這是xml的主要特征。但是,如果定義的都是只有自己才能理解的標(biāo)記,就無法與其他人進(jìn)行交換數(shù)據(jù)。為了在企業(yè)團(tuán)體之間進(jìn)行xml格式的數(shù)據(jù)的交換,xml數(shù)據(jù)的結(jié)構(gòu)、元素的名稱、元素的數(shù)據(jù)類型以及元素的親子關(guān)系都需要仔細(xì)考慮,一定要設(shè)計(jì)成人和系統(tǒng)能夠理解的語言。這樣設(shè)計(jì)的xml數(shù)據(jù)結(jié)構(gòu)在xml領(lǐng)域稱為schema,描述schema的語言稱為schema語言。
dtd 最普通xml的schema語言是dtd(document type definition:文檔類型定義)。dtd是遠(yuǎn)在sgml時(shí)期就一直使用的schema語言,1998年制訂xml語法時(shí),沿用了描述schema的dtd。
xml schema 在xml中,所謂的“dtd”就是schema文件。dtd描述的schema應(yīng)用非常廣泛。但是,隨著xml的應(yīng)用的發(fā)展,從sgml繼承下來的dtd顯然有許多不足的地方。為了解決這些問題,w3c制訂了schema語言xml schema。
xml schema中有下述dtd中不具備的特征:多個(gè)schema復(fù)合使用xml名字空間;用xml語法描述;可以詳細(xì)定義元素的內(nèi)容及屬性值的數(shù)據(jù)類型。
由于在xml schema中的數(shù)據(jù)結(jié)構(gòu)也都是用xml數(shù)據(jù)來表現(xiàn)的,與dtd相比數(shù)據(jù)量增大很多。但是,xml schema的表現(xiàn)力要遠(yuǎn)比dtd強(qiáng)得多,不僅支持字符串、10進(jìn)制數(shù)、浮動(dòng)小數(shù)點(diǎn)、日期等,還支持m回以上和n回以下出現(xiàn)的元素(m、n為整數(shù))的指定。例如“郵編xxxxxx”(x是字符)是郵政編碼元素的格式指定等都是dtd所不能表現(xiàn)的內(nèi)容。xml schema于2001年5月成為w3c的推薦規(guī)范,對(duì)xml的利用產(chǎn)生了重要的影響。
顯示和打印xml數(shù)據(jù)的技術(shù)
xml數(shù)據(jù)定義打印、顯示排版信息主要有3種方法: 用css定義打印和顯示排版信息;用xslt轉(zhuǎn)換到html進(jìn)行顯示和打��;用xslt轉(zhuǎn)換成xsl的fo(formatter object) 進(jìn)行顯示和打印。
css 指定文件排版信息的數(shù)據(jù)稱為樣式表,描述html樣式表的語言是css(cascading style sheet)。這里介紹的是使用css來瀏覽、打印xml數(shù)據(jù)的方法,具體來講css是給html的每個(gè)標(biāo)記元素指定排版信息,同樣也可以用來給xml的標(biāo)記元素定義顯示排版方法。css不能改變xml的結(jié)構(gòu),只能在簡(jiǎn)單的定義排版信息的時(shí)候使用。
xslt 還有一種是使用改變xml數(shù)據(jù)結(jié)構(gòu)的語言xslt(extensible stylesheet language transformations)的方法。使用xslt,可以改變xml元素名、屬性名、元素層次結(jié)構(gòu)等,根據(jù)xslt的指定,可以將xml的元素轉(zhuǎn)換為html元素,則可以是用瀏覽器瀏覽。現(xiàn)在,這種用瀏覽器顯示xml數(shù)據(jù)的方法是最常用的方法。
xsl xsl(extensible stylesheet language)是用xml描述的文件。它是一種可以詳細(xì)描述商用印刷排版水平的規(guī)范,xsl排版信息的定義。用xsl指定排版信息的方法由2步組成:
將要打印、顯示的原xml樹進(jìn) 行結(jié)構(gòu)變換,追加排版信息生成新的樹結(jié)構(gòu)(xsl-fo樹);將這個(gè)新樹傳遞給xsl-fo對(duì)應(yīng)的打印和顯示引擎進(jìn)行相應(yīng)的操作。
xml數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換技術(shù)
在xml的應(yīng)用中,有的xml數(shù)據(jù)需要轉(zhuǎn)換到其他結(jié)構(gòu)的xml數(shù)據(jù),為此w3c制訂了描述標(biāo)準(zhǔn)化的xml數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換規(guī)則的語言xslt。
xslt是為顯示和打印xml,而從xsl規(guī)范獨(dú)立出來的規(guī)范,原本是描述排版信息的語言,因此,用xslt制作的程序稱為樣式表。但是,xslt也可以用于排版以外的各種用途。
例如,使用了不同schema(標(biāo)記集合)的企業(yè)團(tuán)體之間交換xml數(shù)據(jù)時(shí),需要將使用了各公司獨(dú)自數(shù)據(jù)格式的xml數(shù)據(jù)向雙方系統(tǒng)共同采用的業(yè)界標(biāo)準(zhǔn)格式結(jié)構(gòu)轉(zhuǎn)換以后,才可能進(jìn)行數(shù)據(jù)交換。在xslt中不僅描述了轉(zhuǎn)換規(guī)則,結(jié)構(gòu)轉(zhuǎn)換還可以交給xslt樣式表的執(zhí)行引擎(xslt processor)。為了跨過業(yè)界之間的障礙實(shí)現(xiàn)數(shù)據(jù)交換,其它文件格式的數(shù)據(jù)交換也會(huì)經(jīng)常發(fā)生,盡管如此,結(jié)構(gòu)轉(zhuǎn)換時(shí)如果利用xslt,可以不改更程序只改變樣式表就可以了。
隨著xml的普及,xslt的應(yīng)用也會(huì)更加廣泛。在windows上,只需進(jìn)行簡(jiǎn)單的環(huán)境設(shè)定,用ie 5.x和任意一個(gè)文本編輯器就可以制作和執(zhí)行xslt。即使只會(huì)一點(diǎn)點(diǎn)制作xslt樣式表的方法,就可以很簡(jiǎn)單的進(jìn)行xml的處理了,非常方便。
隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展深入xml技術(shù)的應(yīng)用也將不斷擴(kuò)大。該技術(shù)不僅在傳統(tǒng)的銀行之間數(shù)據(jù)交換、證券公司對(duì)上市公司情況的數(shù)據(jù)統(tǒng)計(jì)、圖書館對(duì)圖書的查詢檢索、企事業(yè)文件檔案管理等領(lǐng)域的應(yīng)用更加迫切,在電子商務(wù)、搜索引擎軟件、自動(dòng)智能翻譯、文檔發(fā)聲軟件等領(lǐng)域也將得到更大的發(fā)展,特別是近期發(fā)展起來的移動(dòng)通訊網(wǎng)絡(luò)服務(wù)的發(fā)展,將使各種各樣的信息經(jīng)過格式轉(zhuǎn)換到達(dá)pda、甚至到達(dá)手持電話機(jī),將來我們可以通過網(wǎng)絡(luò)數(shù)據(jù)格式轉(zhuǎn)換服務(wù)使小小的手機(jī)可以閱讀到大千世界的豐富信息。
分享:XML入門教程:使用XSL顯示XML通過使用XSL,您可以向XML文檔添加顯示信息。 使用XSL顯示XML XSL是首選的XML樣式表語言。 XSL遠(yuǎn)比CSS更加完善。使用XSL的方法之一是在瀏覽器顯示XML文件之前,先把它轉(zhuǎn)換為HTML,正如以
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
- 相關(guān)鏈接:
復(fù)制本頁鏈接| 搜索基礎(chǔ)知識(shí)認(rèn)識(shí)XML:下一代網(wǎng)絡(luò)的基石
- 教程說明:
Xml教程-基礎(chǔ)知識(shí)認(rèn)識(shí)XML:下一代網(wǎng)絡(luò)的基石
。