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