《XML案例教程》課件第1章_第1頁(yè)
《XML案例教程》課件第1章_第2頁(yè)
《XML案例教程》課件第1章_第3頁(yè)
《XML案例教程》課件第1章_第4頁(yè)
《XML案例教程》課件第1章_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章XML語(yǔ)言簡(jiǎn)介1.1置標(biāo)語(yǔ)言概述1.2XML語(yǔ)言及其應(yīng)用1.3XML文檔的編輯工具1.4一個(gè)簡(jiǎn)單的XML文檔實(shí)例1.5本章小結(jié)習(xí)題1

1.1置標(biāo)語(yǔ)言概述

傳統(tǒng)意義上的標(biāo)記(markup)我們經(jīng)常會(huì)遇到。例如,老師批改過(guò)的試卷,經(jīng)常是滿(mǎn)篇紅色醒目的對(duì)號(hào)、錯(cuò)號(hào)、問(wèn)號(hào)、波浪線或者意味深長(zhǎng)的評(píng)語(yǔ),這些都是標(biāo)記;我們?cè)诳磿?shū)的時(shí)候,也喜歡用熒光筆將重要的內(nèi)容加亮,以幫助我們?cè)谌蘸笾刈x文章時(shí),能夠提綱挈領(lǐng)、迅速抓住要害,這也是標(biāo)記。從廣義上來(lái)說(shuō),一篇文章中的標(biāo)點(diǎn)符號(hào)、空格等都可以稱(chēng)做標(biāo)記。這些標(biāo)記使我們接觸的文檔具備了不同的意義,并協(xié)助我們完成不同的目標(biāo)。所謂置標(biāo)語(yǔ)言(markuplanguage),則特指用一系列約定好的標(biāo)記來(lái)對(duì)電子文檔進(jìn)行標(biāo)記,來(lái)實(shí)現(xiàn)對(duì)電子文檔的語(yǔ)義、結(jié)構(gòu)、格式的定義。這些標(biāo)記應(yīng)該與文檔內(nèi)容相區(qū)分且易于識(shí)別。標(biāo)記語(yǔ)言必須定義什么樣的標(biāo)記是被允許的,什么樣的標(biāo)記是必需的,標(biāo)記是如何與文檔的內(nèi)容相區(qū)分的,以及標(biāo)記的含義是什么。1.1.1SGML語(yǔ)言起源

為了促進(jìn)數(shù)據(jù)的交換和操作,人們很早就產(chǎn)生了將文件結(jié)構(gòu)化為標(biāo)準(zhǔn)格式的動(dòng)機(jī)。20世紀(jì)60年代,IBM公司創(chuàng)建了GML(GeneralizedMarkupLanguage,通用置標(biāo)語(yǔ)言),以在其出版系統(tǒng)內(nèi)部實(shí)現(xiàn)這一需求。

SGML(StandardGeneralizedMarkupLanguage,標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言)從IBM的GML演化而來(lái),是第一個(gè)標(biāo)準(zhǔn)化的信息結(jié)構(gòu)化技術(shù)。SGML成為了IBM內(nèi)部格式化和維護(hù)合法文件的手段。

SGML后來(lái)被擴(kuò)展和修改,作為一種全面的信息標(biāo)準(zhǔn)以適應(yīng)工業(yè)范圍的廣泛應(yīng)用。但直到1986年,SGML才成為了ISO標(biāo)準(zhǔn)。盡管SGML的功能非常強(qiáng)大,但是由于它非常復(fù)雜,需要許多昂貴的軟件配合運(yùn)行,因而在很長(zhǎng)一段時(shí)間都沒(méi)有被推廣。1.1.2HTML語(yǔ)言及其局限性

1989年,歐洲粒子物理實(shí)驗(yàn)室(CERT)的研究員TimBerners-Lee和AndersBerglund創(chuàng)建了一種基于標(biāo)記的語(yǔ)言,為在Internet上共享的文章做標(biāo)記,這就是HTML。HTML可以看做是SGML的簡(jiǎn)化應(yīng)用,它的誕生,推動(dòng)了信息產(chǎn)業(yè)的大發(fā)展。

HTML(HyperTextMarkupLanguage,超文本標(biāo)記語(yǔ)言)是一種用來(lái)制作超文本文檔的簡(jiǎn)單標(biāo)記語(yǔ)言。用HTML編寫(xiě)的超文本文檔稱(chēng)為HTML文檔,它能獨(dú)立于各作操作系統(tǒng)平臺(tái)(如UNIX、Windows等)。自1990年以來(lái),HTML就一直被用作WorldWideWeb(WWW)上的信息表示語(yǔ)言,用于描述Homepage的格式設(shè)計(jì)和它與WWW上其他Homepage(Hyperlink)的鏈接信息。HTML語(yǔ)言是通過(guò)利用各種標(biāo)記(tags)來(lái)標(biāo)識(shí)文檔的結(jié)構(gòu)及超鏈接信息的。

HTML之所以能夠流行,是因?yàn)樗泻?jiǎn)潔的語(yǔ)法。但也正是由于它過(guò)于簡(jiǎn)潔,也產(chǎn)生了以下幾個(gè)主要問(wèn)題:

(1)標(biāo)記擴(kuò)展復(fù)雜。

HTML當(dāng)初僅僅提供了一種對(duì)靜態(tài)文本信息表現(xiàn)的方法,但顯然并不能適應(yīng)越來(lái)越多的需要。隨后越來(lái)越多的標(biāo)簽產(chǎn)生了,例如<img>用于描述圖片,<script>通過(guò)為網(wǎng)頁(yè)加入腳本支持來(lái)提供動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容。日益增多的標(biāo)記不但使HTML越來(lái)越龐大,瀏覽器的開(kāi)發(fā)越來(lái)越復(fù)雜,還降低了不同瀏覽器之間的兼容性。

(2)缺乏嚴(yán)格的語(yǔ)法定義。

HTML文檔的正確性很難得到確認(rèn)。為了使文檔的顯示過(guò)程更加強(qiáng)健,瀏覽器通常忽略語(yǔ)法分析,不檢查語(yǔ)法的正確性。

(3)結(jié)構(gòu)化支持差。

HTML缺乏對(duì)復(fù)雜結(jié)構(gòu)的支持,例如HTML不能支持分層嵌套信息結(jié)構(gòu)。HTML文檔間的聯(lián)系完全是平面的,這限制了全文檢索技術(shù)的應(yīng)用,也使得瀏覽的過(guò)程顯得笨拙而繁瑣。

(4)數(shù)據(jù)、格式、超文本及圖形用戶(hù)界面語(yǔ)義混合。

①內(nèi)容提取困難。搜索引擎機(jī)械地逐一檢索每個(gè)頁(yè)面中所有可以匹配的內(nèi)容,所以我們往往會(huì)得到太多的、難以判斷的數(shù)據(jù)采樣。這是由于HTML混淆了數(shù)據(jù)內(nèi)容和數(shù)據(jù)表達(dá),數(shù)據(jù)內(nèi)容和數(shù)據(jù)表達(dá)信息都被顯式地寫(xiě)在同一文檔中的緣故。當(dāng)我們希望看到用不同表現(xiàn)形式表達(dá)的同一內(nèi)容時(shí)(比如需要一個(gè)用大號(hào)字體排印的版本),就不得不從服務(wù)器直接產(chǎn)生。同樣,在網(wǎng)頁(yè)顯示上的任何其他變化也都必須由開(kāi)發(fā)者親自實(shí)現(xiàn)。②難以實(shí)現(xiàn)數(shù)據(jù)交換。HTML難以實(shí)現(xiàn)自動(dòng)的數(shù)據(jù)交換,它的標(biāo)簽只用來(lái)控制文檔的顯示,卻不能標(biāo)示出數(shù)據(jù)域。

③信息重用性差。HTML不易重復(fù)使用已有的信息。如果要重新在網(wǎng)上發(fā)布同樣的信息,或者希望為已有的信息編輯可打印的目錄,或需要把網(wǎng)上的數(shù)據(jù)存入數(shù)據(jù)庫(kù),往往不得不用手工進(jìn)行處理,更糟糕的是,當(dāng)網(wǎng)上的數(shù)據(jù)發(fā)生變化時(shí),這些過(guò)程都必須重做。

HTML存在的這些問(wèn)題隨著互聯(lián)網(wǎng)的蓬勃發(fā)展不但沒(méi)有得到解決,反而越來(lái)越突出,成為HTML繼續(xù)發(fā)展應(yīng)用的障礙。1.1.3XML語(yǔ)言的誕生及其優(yōu)點(diǎn)

1996年,W3C(萬(wàn)維網(wǎng)聯(lián)盟)尋找一種在Web中應(yīng)用SGML的靈活性和強(qiáng)大功能的方法,這導(dǎo)致了1998年2月XML1.0規(guī)范的發(fā)布。XML(eXtensibleMarkupLanguage,可擴(kuò)展置標(biāo)語(yǔ)言)不但具備了SGML的核心特性,而且非常簡(jiǎn)潔,XML規(guī)范的內(nèi)容甚至不到SGML的1/10。XML作為SGML的子集,同樣繼承了SGML的優(yōu)點(diǎn)——擴(kuò)展性、結(jié)構(gòu)化和有效性。與HTML相比,XML具有以下幾個(gè)優(yōu)點(diǎn):

(1)可擴(kuò)展性強(qiáng)。

定義一個(gè)標(biāo)記語(yǔ)言并進(jìn)行推廣和應(yīng)用,這在XML語(yǔ)言出現(xiàn)之前是非常困難的。一方面,新的標(biāo)記語(yǔ)言標(biāo)準(zhǔn)化時(shí)間很長(zhǎng),從標(biāo)準(zhǔn)提交到相關(guān)標(biāo)準(zhǔn)化的建立,要經(jīng)過(guò)幾輪的評(píng)定和修改,等到正式發(fā)布標(biāo)準(zhǔn)時(shí),可能已經(jīng)過(guò)了幾年的時(shí)間。另一方面,為了推廣標(biāo)準(zhǔn)的廣泛應(yīng)用,制定者必須開(kāi)發(fā)相應(yīng)的標(biāo)記解釋和瀏覽工具,新的標(biāo)記語(yǔ)言需要各個(gè)廠商進(jìn)行支持和開(kāi)發(fā),同樣要耗費(fèi)大量的時(shí)間和精力。各個(gè)行業(yè)對(duì)標(biāo)記語(yǔ)言的不同需求,決定了定義一套各行業(yè)都能夠普遍應(yīng)用的標(biāo)記是不可能也沒(méi)有必要的。例如,數(shù)學(xué)需要大量的函數(shù)標(biāo)記,化學(xué)需要大量的化學(xué)公式標(biāo)記,建筑學(xué)則需要大量的設(shè)計(jì)圖紙標(biāo)記。XML語(yǔ)言允許各個(gè)不同的行業(yè)根據(jù)自己的需要制定適合自己行業(yè)的標(biāo)記,同時(shí),XML不要求所有的瀏覽器都能處理這成千上萬(wàn)個(gè)標(biāo)記,也不會(huì)要求標(biāo)記語(yǔ)言的設(shè)計(jì)者制定出一個(gè)非常詳盡、全面的語(yǔ)言。這種思想大大加強(qiáng)了XML語(yǔ)言的可擴(kuò)展性和靈活性。

(2)遵循嚴(yán)格的語(yǔ)法要求。

HTML語(yǔ)法要求并不嚴(yán)格,瀏覽器可以顯示有語(yǔ)法錯(cuò)誤的HTML文件。例如,“<b>加粗顯示”和“<b>加粗顯示</b>”這兩條語(yǔ)句在瀏覽器中的顯示效果是一樣的,但前者明顯沒(méi)有進(jìn)行標(biāo)記的配對(duì)。

XML非常注重準(zhǔn)確性,在語(yǔ)法結(jié)構(gòu)上只要有絲毫錯(cuò)誤,分析器都會(huì)停止對(duì)XML進(jìn)行進(jìn)一步的處理。XML不但要求標(biāo)記配對(duì)、嵌套,而且還要求嚴(yán)格遵守DTD(文檔類(lèi)型定義)的約定。

XML分析器處理XML文檔的過(guò)程中不會(huì)進(jìn)行任何猜測(cè)和修改,要么文檔被判定為正確而執(zhí)行或顯示,要么文檔被判定為錯(cuò)誤而停止處理。而HTML的標(biāo)記已成為標(biāo)準(zhǔn),HTML分析器可以判斷出HTML中到底有什么,又缺什么。

XML分析器的這種嚴(yán)格性大大減輕了瀏覽器開(kāi)發(fā)人員的負(fù)擔(dān),也提高了瀏覽器的效率;同時(shí),嚴(yán)格的語(yǔ)法要求又為XML文檔提供了較好的可讀性和可維護(hù)性。

(3)數(shù)據(jù)內(nèi)容與數(shù)據(jù)表達(dá)分離。

下面給出一個(gè)XML示例文檔來(lái)了解一下XML是如何表達(dá)數(shù)據(jù)的。

【例1-1】

案例說(shuō)明:XML數(shù)據(jù)文檔。

程序名稱(chēng):ch1-1.xml

<?xmlversion=“1.0”encoding=“UTF-8”?>

<BookList>

<Book>

<Title>軟件工程</Title>

<ISBN>ISBN=“7-5606-0924-4/TP0851”</ISBN>

<Abstract>介紹軟件工程理論...</Abstract>

<Author>鄧良松</Author>

<Category>計(jì)算機(jī)</Category>

<Publisher>西安電子科技大學(xué)出版社</Publisher>

<PubDate>2001年6月</PubDate>

<Price>20.00</Price>

</Book>

</BookList>案例分析:該XML數(shù)據(jù)文檔描述了一本計(jì)算機(jī)圖書(shū)的相關(guān)信息,數(shù)據(jù)簡(jiǎn)單明了。XML是自我描述語(yǔ)言,攜帶的信息不只是信息內(nèi)容的描述,還包括語(yǔ)義的描述。因此,即便是對(duì)于一個(gè)對(duì)預(yù)定義標(biāo)記一無(wú)所知的人,這個(gè)XML數(shù)據(jù)文檔也是可讀的,例如文檔中的“<Title>軟件工程</Title>”便表達(dá)了“軟件工程”代表的是“書(shū)名(<Title>)”。數(shù)據(jù)內(nèi)容和數(shù)據(jù)表示的分離使數(shù)據(jù)搜索可以簡(jiǎn)單高效地進(jìn)行,搜索引擎沒(méi)有必要再去遍歷整個(gè)文檔,而只需要找一下相關(guān)標(biāo)記的內(nèi)容。以上例文檔為例,查找價(jià)格小于45元的書(shū)籍,只要查看<Price>這個(gè)標(biāo)記下的數(shù)據(jù)是否匹配即可。

XML中,顯示的樣式和數(shù)據(jù)的內(nèi)容放在不同的文檔中。如果要改動(dòng)信息的表現(xiàn)方式,無(wú)需改動(dòng)信息本身,只要改動(dòng)與數(shù)據(jù)文檔相關(guān)的樣式文檔就可以了。XML中數(shù)據(jù)的交換和重用也更加便捷。

1.2XML語(yǔ)言及其應(yīng)用

1.2.1XML語(yǔ)言的概念

XML不但是置標(biāo)語(yǔ)言,而且是可擴(kuò)展(extensible)的置標(biāo)語(yǔ)言。HTML提供了一組事先定義好的標(biāo)記庫(kù),XML則提供了一組標(biāo)準(zhǔn)。根據(jù)這個(gè)標(biāo)準(zhǔn),可以根據(jù)實(shí)際需要自定義新的標(biāo)記語(yǔ)言,并設(shè)計(jì)相應(yīng)的一套標(biāo)記,就像我們?cè)跀?shù)據(jù)庫(kù)設(shè)計(jì)時(shí)為了表達(dá)信息而設(shè)計(jì)一組字段一樣。因此,準(zhǔn)確地說(shuō),XML是一種元置標(biāo)語(yǔ)言,它允許程序開(kāi)發(fā)人員根據(jù)它所提供的規(guī)則制定各種各樣適合實(shí)際問(wèn)題需要的標(biāo)記語(yǔ)言,這也正是XML制定之初的目標(biāo)所在。

XML規(guī)范展示了如下的設(shè)計(jì)目標(biāo):

(1)在Internet上直接使用XML。用戶(hù)能夠像使用HTML文檔那樣快速而簡(jiǎn)單地打開(kāi)和瀏覽XML文檔。在實(shí)際應(yīng)用中,只有當(dāng)XML瀏覽器像HTML瀏覽器那樣被大量廣泛地使用時(shí),才能達(dá)到這個(gè)目標(biāo)。

(2)?XML應(yīng)該支持非常廣泛的應(yīng)用,它能夠在著作、瀏覽、內(nèi)容分析等領(lǐng)域發(fā)揮巨大的作用。如此看來(lái),當(dāng)初僅因?yàn)樾枰赪eb上傳送結(jié)構(gòu)化文檔而定義XML的想法倒顯得十分狹隘了。

(3)由于XML可以兼容SGML,因此很多人用它來(lái)處理那些十分龐大、繁瑣而原本需要SGML來(lái)處理的信息。XML設(shè)計(jì)得很實(shí)用,能夠兼容已經(jīng)存在的標(biāo)準(zhǔn),并且能夠解決在Web中傳輸結(jié)構(gòu)化文檔的新問(wèn)題。

(4)計(jì)算機(jī)程序能夠很好地處理XML文檔。說(shuō)得比較通俗一點(diǎn),開(kāi)發(fā)一個(gè)處理XML文檔的程序相當(dāng)容易。

(5)在XML中,隨意數(shù)值保持足夠地小,理想上是0。隨意特征不可避免地帶來(lái)兼容性的問(wèn)題,以至于用戶(hù)在共享文檔時(shí)會(huì)出現(xiàn)失敗的情況。

(6)?XML文檔應(yīng)該保持可讀性和一定的清晰程度。如果沒(méi)有XML瀏覽器,或者接收到一個(gè)篇幅巨大的XML文檔,也能夠通過(guò)常用的文字編輯軟件來(lái)閱讀XML文檔,并且了解其內(nèi)容。

(7)?XML的設(shè)計(jì)應(yīng)該是結(jié)構(gòu)合理而簡(jiǎn)潔的??梢杂煤芏喾N辦法實(shí)現(xiàn)上面第(4)條所提到的目標(biāo),歸根結(jié)底來(lái)說(shuō),XML應(yīng)符合EBNF(ExtendedBackus-NaurForm)的表述規(guī)范,并遵從現(xiàn)代編譯工具和方法來(lái)實(shí)現(xiàn)。從很多點(diǎn)上可以說(shuō)明SGML的語(yǔ)法是不符合EBNF的表述規(guī)范的,寫(xiě)一個(gè)合適的SGML解析器需要處理繁雜的工作,而且難以解析語(yǔ)言的特性,XML不應(yīng)該如此。

(8)?XML文檔應(yīng)該是易于創(chuàng)建的,盡管最終需要使用專(zhuān)用的編輯器來(lái)創(chuàng)建和修改XML內(nèi)容,但是那并不是很緊迫的。在中間過(guò)渡期,我們可以選擇一些其他的方法來(lái)創(chuàng)建XML文檔,例如直接用字處理軟件生成,或者使用簡(jiǎn)單的Shell和Perl腳本來(lái)生成,等等。

(9)?XML標(biāo)記的簡(jiǎn)練是其最大的價(jià)值所在。XML并不支持SGML中一些功能強(qiáng)大的特性,而這些特性也使得SGML解析器增加了許多額外的負(fù)擔(dān)。前文我們已經(jīng)提到XML的優(yōu)點(diǎn)之一在于數(shù)據(jù)內(nèi)容與數(shù)據(jù)表達(dá)的分離,事實(shí)上,用XML定義的標(biāo)記語(yǔ)言可以根據(jù)標(biāo)記描述的側(cè)重點(diǎn)不同而分為兩大類(lèi)。一類(lèi)偏重于語(yǔ)義描述,如例1-1所示。還有一類(lèi)偏重于顯示方式的描述,如現(xiàn)在已經(jīng)推出的擴(kuò)展文本標(biāo)記語(yǔ)言(eXtensibleHyperTextMarkupLanguage,XHTML)、可縮放矢量圖形語(yǔ)言(ScalableVectorGraphic,SVG)以及本書(shū)第6章講到的可擴(kuò)展樣式語(yǔ)言(eXtensibleStyleLanguage,XSL)等。特別要注意的是,這里對(duì)于顯示方式的描述不僅限于對(duì)文本的描述,還可以包括矢量圖形、圖像和聲音。比如<加大>的標(biāo)記在描述文本顯示時(shí)可能是要求字號(hào)變大,而在描述聲音時(shí)則是要求將音量加大。數(shù)據(jù)庫(kù)設(shè)計(jì)中不僅要定義描述一個(gè)實(shí)體所需要的字段,而且要定義字段的類(lèi)型。譬如圖書(shū)的價(jià)錢(qián)必須是兩位小數(shù)的浮點(diǎn)格式,而且還要大于零;圖書(shū)的銷(xiāo)售量只能是正整數(shù)。在XML中,標(biāo)記語(yǔ)言中的標(biāo)記也需要包括標(biāo)記的語(yǔ)法,這個(gè)語(yǔ)法是通過(guò)第3章講到的文檔類(lèi)型定義(DocumentTypeDefinition,DTD)和第4章講到的Schema來(lái)進(jìn)行描述的。

對(duì)于一個(gè)瀏覽器來(lái)講,需要處理XML數(shù)據(jù)文檔、DTD(或Schema)及CSS(或XSL)這三方面的要素,根據(jù)這些數(shù)據(jù)的內(nèi)容和規(guī)定來(lái)進(jìn)行處理和顯示。1.2.2XML的應(yīng)用

1.創(chuàng)建新的標(biāo)記語(yǔ)言

作為元標(biāo)記語(yǔ)言,XML可以為用戶(hù)定義適合本行業(yè)領(lǐng)域的標(biāo)記語(yǔ)言。如對(duì)例1-1描述的圖書(shū)信息如果加以深入的研究和開(kāi)發(fā),完全可以編寫(xiě)出應(yīng)用于表達(dá)圖書(shū)信息的一套標(biāo)記庫(kù)。

2.存儲(chǔ)數(shù)據(jù)

XML文檔是帶有一定語(yǔ)義的純文本格式的文件,可以用來(lái)存儲(chǔ)數(shù)據(jù),也可以方便地編寫(xiě)應(yīng)用程序來(lái)存儲(chǔ)和讀取存儲(chǔ)的數(shù)據(jù)。由于XML對(duì)于硬件、軟件、應(yīng)用程序是獨(dú)立的,因此也可以使用除標(biāo)準(zhǔn)HTML瀏覽器以外的其他應(yīng)用程序來(lái)處理XML文檔數(shù)據(jù)。XML數(shù)據(jù)文檔配合DTD或Schema使用時(shí),應(yīng)用程序完全可以將XML數(shù)據(jù)文檔作為數(shù)據(jù)源來(lái)使用,就像訪問(wèn)數(shù)據(jù)庫(kù)一樣。XML良好的自我描述特性也使它成為保存歷史檔案的最佳選擇。

3.交換數(shù)據(jù)

MicrosoftSQLServer、Oracle、MicrosoftAccess等數(shù)據(jù)庫(kù)雖然提供了強(qiáng)有力的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)分析能力,但存儲(chǔ)的數(shù)據(jù)格式是不一樣的;而我們常用的字處理軟件Word、Acrobat等存儲(chǔ)數(shù)據(jù)也各不相同。XML的平臺(tái)獨(dú)立性可以將數(shù)據(jù)在兼容的系統(tǒng)或應(yīng)用程序中進(jìn)行交換,并將數(shù)據(jù)轉(zhuǎn)換成XML文檔,從而能夠被不同類(lèi)型的多種應(yīng)用程序閱讀,可大大降低引用的復(fù)雜性。XML也將成為在Internet上的企業(yè)之間交換金融信息的主要語(yǔ)言。

4.Web應(yīng)用

XML文檔將成為Web資源的重要組成部分,XML使得搜索引擎更為智能和準(zhǔn)確。XML在Web上的應(yīng)用主要有以下幾個(gè)方面:

(1)集成不同的數(shù)據(jù)源。

XML可以用來(lái)描述包含在不同應(yīng)用中的數(shù)據(jù),比如從Web頁(yè)面到數(shù)據(jù)庫(kù)記錄等。Web應(yīng)用的中間層服務(wù)程序?qū)⑦@些用XML表示的數(shù)據(jù)組合起來(lái),然后交給客戶(hù)端或者下一步的應(yīng)用。XML還提供客戶(hù)端包含機(jī)制,可以將多個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行集成。

(2)本地計(jì)算。

XML數(shù)據(jù)傳送到客戶(hù)端后,客戶(hù)端可以利用本地的XML分析器對(duì)數(shù)據(jù)進(jìn)行解析和進(jìn)一步處理,這樣既完成了應(yīng)用系統(tǒng)所需的功能,又合理地分配了一部分服務(wù)器的處理負(fù)荷。例如,數(shù)據(jù)庫(kù)記錄可以直接傳輸?shù)娇蛻?hù)端進(jìn)行排序、二次篩選或運(yùn)算等處理。

(3)數(shù)據(jù)的多種顯示。

XML將數(shù)據(jù)內(nèi)容與數(shù)據(jù)表現(xiàn)分離的優(yōu)點(diǎn),決定了XML只描述數(shù)據(jù)的結(jié)構(gòu)和語(yǔ)義,顯示外觀則通過(guò)樣式單文件(StyleSheet)進(jìn)行描述。因此,只需在顯示時(shí)應(yīng)用不同的樣式單,同一數(shù)據(jù)集即可實(shí)現(xiàn)多種顯示效果。

(4)網(wǎng)絡(luò)出版。

互聯(lián)網(wǎng)的高速發(fā)展及其海量的內(nèi)部信息使網(wǎng)絡(luò)已經(jīng)成為一種新的媒體。人們?cè)诰W(wǎng)絡(luò)上發(fā)布各種信息時(shí),信息的發(fā)布形式和發(fā)布語(yǔ)言多種多樣,其中基于XML的顯示技術(shù)和顯示語(yǔ)言發(fā)揮了重要的作用。例如,eBook、eNewspaper等電子出版物就利用了XML的優(yōu)秀特性。

(5)支持Web應(yīng)用的互操作和集成。

Web界面定義語(yǔ)言(WebInterfaceDefinitionLanguage,WIDL)是WebMethods公司定義的一個(gè)XML應(yīng)用,它是一個(gè)能夠用于Web資源和企業(yè)應(yīng)用接口的語(yǔ)言標(biāo)準(zhǔn)。通過(guò)它,Web應(yīng)用可以自動(dòng)存取Web資源和企業(yè)應(yīng)用。

1.3XML文檔的編輯工具

開(kāi)發(fā)XML有許多工具可以使用,下面介紹一些常用的工具。

?

Notepad:最直接、最簡(jiǎn)單的文本編輯工具,在Windows附件中就可找到。

?

MicrosoftXMLNotepad:微軟專(zhuān)門(mén)為設(shè)計(jì)XML文檔提供的編輯軟件,可以借助它驗(yàn)證XML文檔的有效性。

?

MicrosoftVisualStudio2005:該軟件是用來(lái)開(kāi)發(fā)Web應(yīng)用程序的,不僅僅局限于XML,還可以開(kāi)發(fā)ASP.NET、ASP、HTML、XSL樣式單等。

?

MicrosoftXMLTreeViewer:利用這個(gè)軟件可以把XML文檔的內(nèi)容用樹(shù)型結(jié)構(gòu)形式顯示出來(lái)。

?

MicrosoftXMLValidator:該軟件可以檢查XML文檔是否是“格式良好的”以及其有效性,并對(duì)錯(cuò)誤發(fā)出警告。

?

MicrosoftXSLDebugger:樣式單文件的復(fù)雜性使開(kāi)發(fā)人員在編寫(xiě)時(shí)容易出現(xiàn)錯(cuò)誤,這個(gè)軟件就是幫助用戶(hù)調(diào)試樣式單文件的,它能把復(fù)雜枯燥的調(diào)試過(guò)程用可視化界面顯示出來(lái)。

?

WordPerfect:一種對(duì)開(kāi)發(fā)XML和SGML提供高級(jí)支持的文字處理器,具有所見(jiàn)即所得(WYSWYG)的開(kāi)發(fā)環(huán)境,提供向?qū)?、自?dòng)化控件的插入和文檔的自動(dòng)生成等功能。它是一款收費(fèi)的商業(yè)產(chǎn)品,支持Windows95/98/2000和Linux平臺(tái)。

?

SixPack:它能為XML的解析和開(kāi)發(fā)提供簡(jiǎn)潔的界面,支持Macintosh平臺(tái),并公開(kāi)源代碼。

?

Xray:一種具有實(shí)時(shí)錯(cuò)誤檢查的XML編輯器。它基于DTD或XMLSchema,允許用戶(hù)創(chuàng)建格式良好的XML文檔或驗(yàn)證文檔的有效性,并且支持多文檔編輯,是一款免費(fèi)軟件,支持Windows95/98/NT/2000平臺(tái)。

?

XMLSpy:它是所有XML編輯器中做得非常好的一個(gè)軟件,支持WYSWYG。該軟件支持Unicode、多字符集,也支持Well-formed和Validated兩種類(lèi)型的XML文檔,亦支持NewsML等多種標(biāo)準(zhǔn)XML文檔的所見(jiàn)即所得的編輯,同時(shí)提供了強(qiáng)有力的樣式表設(shè)計(jì)。

1.4一個(gè)簡(jiǎn)單的XML文檔實(shí)例

【例1-2】

案例說(shuō)明:一個(gè)關(guān)于圖書(shū)信息的XML文檔存儲(chǔ)、校驗(yàn)和顯示的實(shí)例。該實(shí)例有三個(gè)組成部分:其中XML數(shù)據(jù)文檔為“ch1-2.xml”,負(fù)責(zé)存儲(chǔ)包含兩本XML圖書(shū)信息的列表;XML語(yǔ)法文檔為“ch1-2.dtd”,負(fù)責(zé)描述數(shù)據(jù)文檔中的結(jié)構(gòu),并對(duì)數(shù)據(jù)文檔的有效性進(jìn)行驗(yàn)證;XML樣式文檔為“ch1-2.xsl”,負(fù)責(zé)描述XML數(shù)據(jù)文檔在瀏覽器中的顯示方式。上述三個(gè)文檔存儲(chǔ)在同一個(gè)目錄下。程序名稱(chēng):ch1-2.xml

<?xmlversion="1.0"encoding="UTF-8"standalone="no"?>

<!DOCTYPEBookListSYSTEM"ch1-2.dtd">

<?xml-stylesheettype="text/xsl"href="ch1-2.xsl"?>

<!--關(guān)于學(xué)習(xí)軟件開(kāi)發(fā)的圖書(shū)信息列表-->

<BookList>

<Annotation>&Content;</Annotation>

<BookISBN="7-5606-0924-4/TP0851"> <Title>軟件工程</Title>

<Abstract>介紹軟件工程理論...</Abstract>

<Author>鄧良松</Author>

<Category>計(jì)算機(jī)</Category>

<Publisher>西安電子科技大學(xué)出版社</Publisher>

<PubDate>2001年6月</PubDate>

<Price>20.00</Price>

</Book>

<BookISBN="7-5606-0492-7/TP0229">

<Title>軟件系統(tǒng)開(kāi)發(fā)技術(shù)(修訂版)</Title>

<Abstract>介紹軟件系統(tǒng)的開(kāi)發(fā)技術(shù)...</Abstract>

<Author>潘錦平</Author>

<Category>計(jì)算機(jī)</Category>

<Publisher>西安電子科技大學(xué)出版社</Publisher>

<PubDate>2001年1月</PubDate>

<Price>12.30</Price>

</Book>

</BookList>程序名稱(chēng):ch1-2.dtd

<?xmlversion="1.0"encoding="UTF-8"?>

<!ENTITYContent"學(xué)習(xí)軟件開(kāi)發(fā)的參考書(shū)">

<!ELEMENTAnnotation(#PCDATA)>

<!ELEMENTTitle(#PCDATA)>

<!ELEMENTAbstract(#PCDATA)>

<!ELEMENTAuthor(#PCDATA)>

<!ELEMENTPublisher(#PCDATA)><!ELEMENTPrice(#PCDATA)>

<!ELEMENTPubDate(#PCDATA)>

<!ELEMENTCategory(#PCDATA)>

<!ELEMENTBook((Title,Abstract,Author,Category,Publisher,PubDate,Price))>

<!ELEMENTBookList((Annotation,Book,Book))>

<!--"ISBN圖書(shū)分類(lèi)號(hào),唯一標(biāo)識(shí)圖書(shū),定義為Book的屬性"-->

<!ATTLISTBook ISBNCDATA"7-5606-0492-7/TP0229">程序名稱(chēng):ch1-2.xsl

<?xmlversion=“1.0”encoding=“UTF-8”?>

<xsl:stylesheetv

溫馨提示

  • 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)論