明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

來遲了,人不多:為什么開發(fā)人員對(duì)XML感到激動(dòng)

[摘要]XML使許多只利用HTML難以解決的任務(wù)變得簡單,使只利用HTML不可能完成的任務(wù)得以完成。因?yàn)閄ML是可擴(kuò)展的,開發(fā)人員喜愛XML有許多原因。到底是哪個(gè)更令人感興趣,取決于每個(gè)人的需要。但有一點(diǎn)是肯定的,一旦用上XML,就可發(fā)現(xiàn),它正是解決許多令人感到棘手的問題的有力工具。本節(jié)研究一些令開發(fā)人員...
XML使許多只利用HTML難以解決的任務(wù)變得簡單,使只利用HTML不可能完成的任務(wù)得以完成。因?yàn)閄ML是可擴(kuò)展的,開發(fā)人員喜愛XML有許多原因。到底是哪個(gè)更令人感興趣,取決于每個(gè)人的需要。但有一點(diǎn)是肯定的,一旦用上XML,就可發(fā)現(xiàn),它正是解決許多令人感到棘手的問題的有力工具。本節(jié)研究一些令開發(fā)人員激動(dòng)的一般應(yīng)用。在第2章中,還會(huì)看到已經(jīng)用XML開發(fā)出來的一些特殊應(yīng)用。
1.2.1 設(shè)計(jì)與特定領(lǐng)域有關(guān)的標(biāo)記語言
XML允許各種不同的專業(yè)(如音樂、化學(xué)、數(shù)學(xué)等)開發(fā)與自己的特定領(lǐng)域有關(guān)的標(biāo)記語言。這就使得該領(lǐng)域中的人們可以交換筆記、數(shù)據(jù)和信息,而不用擔(dān)心接收端的人是否有特定的軟件來創(chuàng)建數(shù)據(jù)。特定領(lǐng)域的開發(fā)人員甚至可以向本領(lǐng)域外的人發(fā)送文檔,有相當(dāng)?shù)睦碛煽梢哉J(rèn)為,至少接受文檔的人能夠查看文檔的內(nèi)容。
更進(jìn)一步說,為特別的領(lǐng)域創(chuàng)建標(biāo)記語言不會(huì)產(chǎn)生“病件”(bloatware)或是對(duì)于本專業(yè)外的人來說產(chǎn)生不必要的復(fù)雜性。一般人也許不會(huì)對(duì)電力工程圖感興趣,但是電力工程師卻對(duì)此感興趣。一般人也許不需要在他的Web頁面中包括樂譜,但是作曲家卻要這樣做。XML讓電力工程師描述他們的電路圖,讓作曲家寫樂譜,而不會(huì)互相干擾。對(duì)于瀏覽器開發(fā)商來說,都不需要對(duì)特定的領(lǐng)域提供特殊的支持,也不需要提供復(fù)雜的插件。這一點(diǎn)現(xiàn)在已經(jīng)實(shí)現(xiàn)了。
1.2.2 自描述數(shù)據(jù)
過去40年來的大多數(shù)計(jì)算機(jī)數(shù)據(jù)都丟失了,不是因?yàn)樽匀粨p害或是備份介質(zhì)的磨損(雖然這也是一個(gè)問題,這個(gè)問題在XML中也沒有解決),而只是因?yàn)闆]有人來寫出如何讀取這些數(shù)據(jù)介質(zhì)和格式的文檔。在十年前的5.25英寸的軟盤上的Lotus 1-2-3文檔在今天的大多數(shù)公司內(nèi)都已經(jīng)讀不出來了。以不常用的格式保存的二進(jìn)制數(shù)據(jù),如Lotus Jazz 也許會(huì)永遠(yuǎn)地消失了。XML在基本水平上使用的是非常簡單的數(shù)據(jù)格式?梢杂100%的純ASCII文本來書寫,也可以用幾種其他定義好的格式來書寫。ASCII文本是幾乎不會(huì)“磨損”的。丟失一些字節(jié)甚至是相當(dāng)多的字節(jié),剩下的數(shù)據(jù)還是可以讀取的。這就與許多格式形成了鮮明的對(duì)比,如壓縮數(shù)據(jù)或是串行的Java對(duì)象,這些數(shù)據(jù)即使丟失一個(gè)字節(jié),剩余的數(shù)據(jù)也變得不可讀取了。
從高水平上來說,XML是自描述的。假設(shè)在23世紀(jì)有一個(gè)信息考古學(xué)者,他在軟盤上發(fā)現(xiàn)了如下一大段經(jīng)過時(shí)間的“沖刷”而保存下來的XML代碼:
<PERSON ID="p1100" SEX="M">
<NAME>
<GIVEN>Judson</GIVEN>
<SURNAME> McDaniel</SURNAME>
</NAME>
<BIRTH>
<DATE>2 Feb 1834</DATE> </BIRTH>
<DEATH>
<DATE>9 Dec 1905</DATE> </DEATH>
</PERSON>
即使這個(gè)考古學(xué)家不熟悉XML,但假設(shè)他可以講20世紀(jì)時(shí)的英語,那么就可以很好地了解名為Judson McDaniel的人,此人出生在1834年2月21日,而死于1905年12月9日。事實(shí)上,數(shù)據(jù)中有一些空白或是損壞,還是可以得到這些信息。但對(duì)于專有格式的電子表格或是字處理程序的格式,就不是這么回事了。
更進(jìn)一步說,XML有很好的規(guī)格文檔。W3C的XML 1.0 規(guī)范和大量的論文書籍,如本書,都向人們準(zhǔn)確地說明如何來閱讀XML數(shù)據(jù)。沒有什么秘密使得人們發(fā)生失誤。
1.2.3 應(yīng)用間交換數(shù)據(jù)
由于XML是非專有的并易于閱讀和編寫,就使得它成為在不同的應(yīng)用間交換數(shù)據(jù)的理想格式。當(dāng)前正在開發(fā)的一種這樣的格式是Open Financial Exchange(開放財(cái)務(wù)交換,簡寫為OFX)格式。OFX是為個(gè)人財(cái)務(wù)程序,如Microsoft Money和Quicken交換數(shù)據(jù)而設(shè)計(jì)的。數(shù)據(jù)可以在程序間來回交換,還可以與銀行、經(jīng)紀(jì)事務(wù)所和其他機(jī)構(gòu)交換數(shù)據(jù)。
有關(guān)OFX的內(nèi)容將在第2章加以討論。
正如上面所討論的一樣,XML使用的是非專有的格式,不受版權(quán)、專利、商業(yè)秘密或是其他種類的知識(shí)產(chǎn)權(quán)的限制。XML的功能是非常強(qiáng)大的,同時(shí)對(duì)于人類或是計(jì)算機(jī)程序來說,都容易閱讀和編寫。因而成為交換語言的首選。
使用XML而不是專有格式,人們就可以利用任何理解XML的工具來處理數(shù)據(jù)。還可以為不同的目的使用不同的工具。一個(gè)程序用來查看而另一程序用來編輯。XML使用戶不必因?yàn)閿?shù)據(jù)已經(jīng)用專有格式編寫好了或是接受數(shù)據(jù)的人只接受專有格式而限制在一個(gè)特定的程序上。
例如,許多出版商需要用Microsoft Word發(fā)稿。這就意味著大多數(shù)作者必須使用Word,即使他們更愿意使用WordPerfect或是Nisus Writer。因而這就使得其他出版字處理軟件的公司陷入困境,除非他們的軟件能夠讀寫Word文件。由于要想達(dá)到這個(gè)目的,就得讓開發(fā)人員反向了解未載入文檔的Word文件格式,這使得在時(shí)間和資源上的投資大增。大多數(shù)其他字處理軟件具有有限的讀寫Word文件的能力,但是通常都會(huì)丟失圖形、宏、樣式、修訂標(biāo)記和其他重要的特性。問題就在于Word文檔的格式是不公開的專有格式,而且還在不斷地變化。這樣Word就成為最后的勝利者,即使作者更喜愛其他的更簡單的程序。如果在XML中開發(fā)了一種通用的字處理格式,作者們就會(huì)使這個(gè)程序成為他們的首選程序。
1.2.4 結(jié)構(gòu)化和集成的數(shù)據(jù)
XML對(duì)于大型和復(fù)雜的文檔是理想的,因?yàn)閿?shù)據(jù)是結(jié)構(gòu)化的。這不僅使用戶可以指定一個(gè)定義了文檔中的元素的詞匯表,而且還可以指定元素之間的關(guān)系。例如,如果要將銷售客戶的地址一起放在Web頁面上,這就需要有每個(gè)客戶的電話號(hào)碼和電子郵件地址。如果向數(shù)據(jù)庫中輸入數(shù)據(jù),可確保沒有漏下的字段。還需要每部書都有一個(gè)作者。當(dāng)沒有數(shù)據(jù)輸入時(shí)還可提供一個(gè)缺省值。XML也提供客戶端的包括機(jī)制,可以根據(jù)多種來源集成數(shù)據(jù)并將其作為一個(gè)文檔來顯示。數(shù)據(jù)還可以馬上進(jìn)行重新排列。數(shù)據(jù)的各個(gè)部分可以根據(jù)用戶的操作顯示或隱藏。當(dāng)處理大型的信息倉庫,比如關(guān)系型數(shù)據(jù)庫時(shí)是極為有用的。