免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
XML 和 Java 技術(shù): XML 究竟有哪些優(yōu)勢(shì)?

2007 年 3 月 26 日

眾所周知,XML 仍然是過(guò)去十年中出現(xiàn)的最流行的技術(shù)之一。但 XML 到底有哪些優(yōu)勢(shì)?它可用于配置數(shù)據(jù)么?可用于數(shù)據(jù)交換么?可作為數(shù)據(jù)存儲(chǔ)媒介么?XML 到底有哪些用處?本文將提供一些信息供大家思考并鼓勵(lì)大家分享關(guān)于此主題的見(jiàn)解。

習(xí)慣于 XML

XML 不是什么新技術(shù),大多數(shù)人都很好地掌握了其運(yùn)作原理及其使用方法。但是,大家對(duì) XML 的“殺手應(yīng)用” —— 證明其創(chuàng)建必要的數(shù)據(jù)格式的最終用法。當(dāng)您查看本文中它的一些最常見(jiàn)的用法時(shí),您會(huì)很快發(fā)現(xiàn),在大量的各種應(yīng)用程序中,即使是專(zhuān)家對(duì)于是否可使用 XML 也莫衷一是。





回頁(yè)首


XML 配置數(shù)據(jù)

XML 的最早的用法之一,并且仍然是最流行的用法之一,就是將其用作一種數(shù)據(jù)格式存儲(chǔ)配置數(shù)據(jù)。幾乎是 XML 一流行,編程人員就開(kāi)始用它來(lái)取代他們專(zhuān)有的配置文件。屬性文件、帶名稱(chēng) —— 值對(duì)的文本文件、逗號(hào)分隔值、專(zhuān)有數(shù)據(jù)格式 —— 所有這些都被丟棄以符合 XML 文檔,包括標(biāo)記、元素、屬性和原文數(shù)據(jù)。

一種冗長(zhǎng)的數(shù)據(jù)格式

這種 XML 應(yīng)用程序的最明顯的問(wèn)題是,根據(jù)定義,XML 是一種很冗長(zhǎng)的數(shù)據(jù)格式。換句話說(shuō),用 XML 表達(dá)一件事情會(huì)占用大量空間。例如,以下是一個(gè)簡(jiǎn)單的名稱(chēng) —— 值對(duì)文件片段:

firstName=Brett                        lastName=McLaughlin                        email=brett@newInstance.com                        

將其與 XML 編寫(xiě)的本質(zhì)相同的數(shù)據(jù)進(jìn)行比較:

<?xml version="1.0"?>                        <config-data>                        <firstName>Brett</firstName>                        <lastName>McLaughlin</lastName>                        <email>brett@newInstance.com</email>                        </config-data>                        

為了 XML 的“方便”引入了大量額外的字符。這就意味著為選擇使用 XML 技術(shù)犧牲了處理速度(讀取較少的字符自然花費(fèi)較少的時(shí)間)。

XML 處理 API

與其他文本格式相比,XML 除了通常要使用額外的字符來(lái)表示數(shù)據(jù)以外,您還需要使用一些軟件來(lái)處理和讀取 XML。雖然可以編寫(xiě) XML 解析器,但您幾乎肯定希望使用各種平臺(tái)上可用的許多 XML 解析器中的一種。因此您將可能需要向軟件資源中添加一到兩個(gè)庫(kù),然后學(xué)習(xí)使用那些 API。

雖然學(xué)習(xí)新的 API 沒(méi)什么壞處,但應(yīng)意識(shí)到,您可能要使用自己編寫(xiě)的新代碼替代讀入現(xiàn)有原文配置數(shù)據(jù)的工作代碼,使用必須使其在應(yīng)用程序中可用的附加的庫(kù)。換句話說(shuō),您需要在編譯時(shí)和運(yùn)行時(shí)使用新代碼和附加的依賴(lài)項(xiàng)替代工作代碼(假定您使用的是編譯過(guò)的語(yǔ)言,但您應(yīng)該明白其中的含義)。

靈活性的代價(jià)

問(wèn)題然后就集中在了代價(jià)與價(jià)值的對(duì)比。使用 XML 配置數(shù)據(jù)的代價(jià)是相當(dāng)高的;我已提到了冗余性和資源需求,但是還有很多其他缺點(diǎn)。主要的優(yōu)點(diǎn) —— 假定您意識(shí)到會(huì)用 XML 并不算什么優(yōu)點(diǎn) —— 是靈活性。如果您已經(jīng)在使用 XML,或擁有可能使用多種語(yǔ)言的多個(gè)應(yīng)用程序,所有這些程序共享配置數(shù)據(jù),則 XML 可能是一種非常可行的配置數(shù)據(jù)的策略。

雖然存在那個(gè)例外,但使用 XML 作為配置數(shù)據(jù)的格式到底有什么益處?我認(rèn)為有幾個(gè)其他的原因,但是我不會(huì)告訴您 —— 我希望您能告訴我。查看 參考資料 部分,訪問(wèn) XML 和 Java 技術(shù)論壇,然后告訴我。我對(duì)于傾聽(tīng)您關(guān)于 XML 配置數(shù)據(jù)的優(yōu)點(diǎn)的見(jiàn)解非常好奇。





回頁(yè)首


XML 傳輸數(shù)據(jù)

除配置數(shù)據(jù)外,使用 XML 來(lái)在應(yīng)用程序的組件和層之間 傳輸數(shù)據(jù)也日益流行。在此模式中,應(yīng)用程序的不同部分使用 XML“語(yǔ)言”進(jìn)行通信。雖然這比使用 XML 配置數(shù)據(jù)在技術(shù)上更具挑戰(zhàn)性,但幾乎同樣流行,并且這也成為了如 SOAP、數(shù)據(jù)綁定和 Web 服務(wù)等技術(shù)的基礎(chǔ)。

應(yīng)用程序內(nèi)數(shù)據(jù)傳輸

XML 最常見(jiàn)的用法之一是:作為一種數(shù)據(jù)格式在同一應(yīng)用程序的不同部分之間傳輸信息。這實(shí)現(xiàn)起來(lái)很容易,因?yàn)槭怯赏瑯拥某绦騿T或程序員團(tuán)隊(duì)控制發(fā)送和接收數(shù)據(jù)的結(jié)束。不幸的是,這也幾乎肯定是最 的 XML 傳輸數(shù)據(jù)的用法。

當(dāng)您在同一應(yīng)用程序中發(fā)送和接收數(shù)據(jù)時(shí),增加了同樣的系統(tǒng)開(kāi)銷(xiāo),如配置應(yīng)用程序的數(shù)據(jù)部分所討論的:冗余性、更大的文件和對(duì) XML 解析器庫(kù)(最低水平的庫(kù))的需求。而您實(shí)際上從使用 XML 中的獲益遠(yuǎn)不及此。在大多數(shù)情況下,一個(gè)好得多的解決方案是:將序列化的數(shù)據(jù)或?qū)ο笤桶l(fā)送至您所使用的編程語(yǔ)言。這樣處理起來(lái)更快,因?yàn)閭鬏敂?shù)據(jù)占用的帶寬更少而且在接收端解碼更加容易。

應(yīng)用程序間數(shù)據(jù)傳輸

XML 在此常規(guī)領(lǐng)域中的一個(gè)更好的用法是:使用 XML 作為數(shù)據(jù)傳輸格式在應(yīng)用程序間傳輸數(shù)據(jù)。應(yīng)用程序中有一個(gè)組件可將數(shù)據(jù)發(fā)送至業(yè)務(wù)伙伴應(yīng)用程序中的另一個(gè)組件。而數(shù)據(jù)被編碼為 XML 格式。

這樣做有一些實(shí)實(shí)在在的優(yōu)點(diǎn),因?yàn)槟鸁o(wú)需知道另一個(gè)應(yīng)用程序的編程語(yǔ)言以及數(shù)據(jù)將如何使用的相關(guān)信息。反過(guò)來(lái)時(shí)也是如此;如果要接收數(shù)據(jù),您幾乎也無(wú)需了解發(fā)送數(shù)據(jù)的應(yīng)用程序的信息。在這種情況下,XML 的冗余性缺點(diǎn)就不如所獲得的靈活性那么重要,況且其只需將數(shù)據(jù)編碼為 XML 數(shù)據(jù)格式而不是要遵循其他公司的編程規(guī)范或選擇其他技術(shù)。

主題變更:Web 服務(wù)

Web 服務(wù)、SOAP、WSDL 以及當(dāng)前正在熱議的各種其他專(zhuān)門(mén)術(shù)語(yǔ)證明了其存在的價(jià)值。但是,各種可用的 Web 服務(wù)實(shí)際上只是應(yīng)用程序間數(shù)據(jù)傳輸?shù)淖蛹?。通過(guò)某個(gè)其他公司或技術(shù)提供商提供的組件,您得以在應(yīng)用程序間發(fā)送和接收數(shù)據(jù)。

惟一實(shí)質(zhì)的區(qū)別在于 Web 服務(wù)通常要求 您使用 XML。因此問(wèn)題的實(shí)質(zhì)在于涉及 Web 服務(wù)時(shí)不是您想不想使用 XML;而是您到底要不要使用 Web 服務(wù)。而那就變成了另外一個(gè)大得多的問(wèn)題:權(quán)衡使用 Web 服務(wù)功能的價(jià)值與處理提供程序、提供程序運(yùn)行速度(與 XML 有關(guān),可能也受帶寬、等待時(shí)間、特定提供程序以及一些其他因素的影響)和公司聲望的代價(jià)之間孰輕孰重。換句話說(shuō),XML 成為了一個(gè)可以忽略的因素,而不是一個(gè)控制因素。





回頁(yè)首


結(jié)束語(yǔ)

分享這篇文章...

將這篇文章提交到 Digg
發(fā)布到 del.icio.us
提交到 Slashdot!

雖然大多數(shù)文章為您展示特定問(wèn)題的具體解決方案,而這篇文章旨在引導(dǎo)您進(jìn)行思考。在大多數(shù)可能的 XML 應(yīng)用程序中,沒(méi)有簡(jiǎn)單的“正確”答案。有時(shí) XML 似乎比其他備用程序好,而有時(shí)又幾乎肯定 是這樣,但在許多情況下,它只是諸多選擇之一。您的任務(wù)是仔細(xì)思考文中詳細(xì)介紹的常規(guī)應(yīng)用程序,然后試著為您在自己的業(yè)務(wù)和項(xiàng)目中遇到的特定問(wèn)題設(shè)計(jì)一些應(yīng)用程序。

我也鼓勵(lì)您在線查看各種 XML 論壇(參見(jiàn) 參考資料 部分中的鏈接),繼續(xù)進(jìn)行這個(gè)討論。我將在 XML 和 Java 技術(shù)論壇恭候,希望能激起一些有趣的交談和辯論。因此仔細(xì)思考,然后訪問(wèn) developerWorks 論壇并發(fā)表您的高見(jiàn)。網(wǎng)上見(jiàn)。



參考資料

學(xué)習(xí)
  • 您可以參閱本文在 developerWorks 全球網(wǎng)站上的 英文原文。

  • 參閱本系列的第 2 部分,本文討論了數(shù)據(jù)綁定 API 和幾種數(shù)據(jù)綁定方法的優(yōu)點(diǎn)。

  • XML 技術(shù)文檔庫(kù):訪問(wèn) developerWorks XML 專(zhuān)區(qū),獲取大量的技術(shù)文章和技巧、教程、標(biāo)準(zhǔn)和 IBM 紅皮書(shū)。


獲得產(chǎn)品和技術(shù)
  • IBM 試用版軟件:使用 IBM 試用版軟件構(gòu)建您的下一個(gè)開(kāi)發(fā)項(xiàng)目,該軟件可直接從 developerWorks 下載獲得。

討論


關(guān)于作者

Brett McLaughlin 自從 Logo 時(shí)代以來(lái)一直從事計(jì)算機(jī)方面的工作。(還記得那個(gè)小三角符號(hào)么?)最近幾年里,他已成為 Java 和 XML 社區(qū)中最著名的作家和程序員之一。他曾在 Nextel Communications 從事復(fù)雜企業(yè)系統(tǒng)的實(shí)現(xiàn);在 Lutris Technologies 進(jìn)行實(shí)際應(yīng)用服務(wù)器的編寫(xiě);最近他在 O'Reilly Media, Inc. 繼續(xù)編寫(xiě)和編輯相關(guān)書(shū)籍。Brett 即將完成的書(shū) Head Rush Ajax 將為 Ajax 引入飽受贊譽(yù)的創(chuàng)新的 Head First 方法。他的上一本書(shū) Java 1.5 Tiger: A Developer's Notebook 是第一本可獲得的關(guān)于最新版本 Java 技術(shù)的書(shū)籍。而他的名著 Java and XML 仍然是在 Java 語(yǔ)言中使用 XML 技術(shù)的權(quán)威性著作之一。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java 技術(shù)新手入門(mén)
Java入門(mén)--討論 Java 技術(shù)新手入門(mén)
基于Tuscany的SDO實(shí)踐(1)
Mule 2.x Getting Started Guide第一部分Mule概述之Mule...
XML和Java: 數(shù)據(jù)綁定多種用法
EPC
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服