• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            興海北路

            ---男兒仗劍自橫行
            <2009年3月>
            22232425262728
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統(tǒng)計(jì)

            • 隨筆 - 85
            • 文章 - 0
            • 評(píng)論 - 17
            • 引用 - 0

            常用鏈接

            留言簿(6)

            隨筆分類

            隨筆檔案

            收藏夾

            全是知識(shí)啊

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            XML的本質(zhì)討論

            (這里的XML不僅僅指XML腳本語(yǔ)言,還包括XML的一系列技術(shù),包括DTD,XSLT,XML SCHEMA,XPATH,DOM,SAX等等)

            XML的本質(zhì)是什么?這個(gè)問(wèn)題對(duì)于很多XML的初學(xué)者來(lái)說(shuō)都不容易回答。因?yàn)閄ML涉及的方面太多,有人是為了寫(xiě)出更漂亮的網(wǎng)頁(yè)才從HTML進(jìn)一步學(xué)到XML;有人是為了學(xué)JAVA才來(lái)了解XML;有人是從數(shù)據(jù)庫(kù)到XML;有人是從UML到XML;當(dāng)然還有一些人是從SOAP或者其他網(wǎng)絡(luò)協(xié)議而了解到XML。那么到底如何解釋XML的本質(zhì)呢?

            我認(rèn)為XML的本質(zhì)是數(shù)據(jù),XML文檔實(shí)際上是對(duì)數(shù)據(jù)的格式化存儲(chǔ),而XML的一系列技術(shù)都是圍繞著數(shù)據(jù)來(lái)發(fā)展的。例如DTD、Schema是對(duì)數(shù)據(jù)格式的定義和檢驗(yàn);XSLT是對(duì)數(shù)據(jù)的轉(zhuǎn)換;DOM、SAX是對(duì)數(shù)據(jù)的提取和操作。

            既然XML只是數(shù)據(jù),而且是用文本形式存儲(chǔ)的數(shù)據(jù),那么為什么不更簡(jiǎn)單的用普通文本來(lái)存儲(chǔ)數(shù)據(jù)呢?早期的一些程序員確實(shí)是這么做的,但是這么做的缺點(diǎn)是對(duì)于每一組數(shù)據(jù),都需要專用的數(shù)據(jù)格式定義、檢驗(yàn)、轉(zhuǎn)換和操作的程序。如果使用XML來(lái)存儲(chǔ)數(shù)據(jù),由于XML的一系列技術(shù)已經(jīng)對(duì)以上的問(wèn)題提供了工具,我們只需要使用那些技術(shù)即可快捷的達(dá)到自己的目的。有人可能會(huì)說(shuō),使用數(shù)據(jù)庫(kù)不是更方便么?它也提供了以上的功能。確實(shí)如此,但是并不是每個(gè)地方都適用數(shù)據(jù)庫(kù)的,如果說(shuō)數(shù)據(jù)庫(kù)是大而全的數(shù)據(jù)解決方案的話,XML可以用“舉重若輕,大象無(wú)形”來(lái)形容,這一點(diǎn)后面再討論。

            XML的本質(zhì)決定了它在網(wǎng)頁(yè)制作方面比HTML更具有優(yōu)越性。傳統(tǒng)的網(wǎng)頁(yè)包括HTML+CSS,在這種模式中,數(shù)據(jù)和數(shù)據(jù)的顯示特性都包含在HTML中,CSS只是對(duì)顯示特性的一種補(bǔ)充;而XML網(wǎng)頁(yè)包括XML+XML Schema+XSL,其中XML存儲(chǔ)數(shù)據(jù),XML Schema定義了數(shù)據(jù)的存儲(chǔ)格式,XSL定義了數(shù)據(jù)的顯示特性(其實(shí)它定義了如何將XML轉(zhuǎn)換為HTML,實(shí)際上就是定義了數(shù)據(jù)的顯示特性)。使用XML制作的網(wǎng)頁(yè)將數(shù)據(jù)、數(shù)據(jù)格式和顯示特性清晰的分為三個(gè)部分,在添加或者修改網(wǎng)頁(yè)的時(shí)候可以單獨(dú)的修改每個(gè)部分,從而得到更好的維護(hù)性和更高的制作效率。當(dāng)然動(dòng)態(tài)網(wǎng)頁(yè)可以由Database+腳本語(yǔ)言(JSP、ASP、PHP)+HTML+CSS組成;同樣基于XML的動(dòng)態(tài)網(wǎng)頁(yè)可以由Database+中間程序(提取數(shù)據(jù)庫(kù)內(nèi)容形成XML文檔)+XML+XML Schema+XSL組成。基于XML的解決方案同樣保持了層次清晰的優(yōu)點(diǎn)。

            對(duì)于XML和數(shù)據(jù)庫(kù)的比較,我的上一篇文章中有過(guò)討論()。從本質(zhì)上來(lái)說(shuō),XML和數(shù)據(jù)的本質(zhì)差不多,都是圍繞著數(shù)據(jù)來(lái)提供一系列的解決方案,但是它們之間存在幾個(gè)顯著的不同:1.XML是輕量級(jí)的數(shù)據(jù)解決方案,容易學(xué)習(xí),可以用文本編輯器進(jìn)行編輯,一般的瀏覽器都支持XSLT,適用于數(shù)據(jù)量小的各種環(huán)境;2.XML是完全平臺(tái)無(wú)關(guān)的,不需要依賴于特定的操作系統(tǒng)、瀏覽器或者編程語(yǔ)言,而數(shù)據(jù)庫(kù)不是完全平臺(tái)無(wú)關(guān)的;3.XML是基于文本的,適合于網(wǎng)絡(luò)傳輸,你不能指望每個(gè)EJB的配置文檔都用數(shù)據(jù)庫(kù)來(lái)表示吧;4.XML和數(shù)據(jù)庫(kù)是可以互相結(jié)合和轉(zhuǎn)換的。

            對(duì)數(shù)據(jù)的不同理解可以將XML應(yīng)用到不同的方面。你可以這樣理解:XML是數(shù)據(jù)庫(kù)中的數(shù)據(jù);Schema是數(shù)據(jù)庫(kù)的表;XSL是顯示數(shù)據(jù)的程序;也可以這么理解:XML是網(wǎng)頁(yè)素材;Schema是素材的數(shù)據(jù)結(jié)構(gòu);XSL是素材的顯示特性。同樣,在軟件建模方面,也可以用XML來(lái)替代UML。這是基于這么一種理解:Schema代表類圖,它如同UML一樣存儲(chǔ)了類的結(jié)構(gòu)特性;XML代表對(duì)象,它存儲(chǔ)了類的實(shí)例化對(duì)象的屬性數(shù)據(jù);而XSL是對(duì)類圖的轉(zhuǎn)換,即MDA(Model Driven Architecture,模型驅(qū)動(dòng)架構(gòu))中的提到的模型轉(zhuǎn)換。在UML中沒(méi)有模型轉(zhuǎn)換技術(shù),但是一些UML工具提供了代碼生成的功能(例如RationalRose),這中功能可以理解為模型轉(zhuǎn)換的一個(gè)特例。因此有人提出了用XSLT做代碼生成的建議,事實(shí)上這種代碼生成技術(shù)已經(jīng)比較成熟。由于XML Schema并不是天生就用來(lái)刻劃類圖的,所以它在類的繼承等方面存在一些不足之處,為了修正這些不足,OMG(Object Manage Group,對(duì)象管理組)組織提出了XMI(XML Metadata Interchange,XML元數(shù)據(jù)交換)標(biāo)準(zhǔn),用來(lái)補(bǔ)充XML Schema在軟件建模方面的不足。現(xiàn)在XMI已經(jīng)變成了各種軟件建模工具的通用存儲(chǔ)方式,可以將不同建模工具建立的模型互相轉(zhuǎn)換。

            總的來(lái)說(shuō),XML是一種基于文本的、格式化的數(shù)據(jù)存儲(chǔ)技術(shù),它包括一系列的數(shù)據(jù)解決方案,它們是輕量級(jí)的、易于學(xué)習(xí)的、平臺(tái)無(wú)關(guān)的數(shù)據(jù)解決方案。弄清楚了這個(gè)概念再去學(xué)習(xí)XML,也許更有幫助。

            posted on 2008-04-01 17:06 隨意門 閱讀(141) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品久久久久久无码不卡| 囯产精品久久久久久久久蜜桃 | 久久精品无码专区免费东京热| 国产亚洲精久久久久久无码77777| 中文精品久久久久人妻不卡| 7777久久亚洲中文字幕| 久久久久久一区国产精品| 久久香综合精品久久伊人| 久久99中文字幕久久| 99久久做夜夜爱天天做精品| 99久久中文字幕| 久久91精品国产91久| 国内精品免费久久影院| 亚洲日韩中文无码久久| 国产精品嫩草影院久久| 99精品国产在热久久无毒不卡| 麻豆国内精品久久久久久| 久久se精品一区精品二区| 久久久无码精品亚洲日韩京东传媒 | 精品多毛少妇人妻AV免费久久| 日本一区精品久久久久影院| 久久天天婷婷五月俺也去| AV无码久久久久不卡蜜桃 | 久久Av无码精品人妻系列| 精品久久久久久无码中文字幕 | 久久WWW免费人成—看片| 精品国产乱码久久久久久郑州公司| 狠狠色丁香婷婷久久综合五月| 国产精品成人久久久久三级午夜电影 | 亚洲国产精品无码成人片久久| 久久不见久久见免费视频7| 久久99这里只有精品国产| 久久亚洲国产成人精品无码区| 欧美精品一区二区精品久久| 久久精品中文字幕无码绿巨人| 色偷偷88888欧美精品久久久| 久久99九九国产免费看小说| 久久精品青青草原伊人| 国产69精品久久久久观看软件| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 成人久久精品一区二区三区|