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