• <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>

            興海北路

            ---男兒仗劍自橫行
            <2008年4月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            統計

            • 隨筆 - 85
            • 文章 - 0
            • 評論 - 17
            • 引用 - 0

            常用鏈接

            留言簿(6)

            隨筆分類

            隨筆檔案

            收藏夾

            全是知識啊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            XML的本質討論

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

            XML的本質是什么?這個問題對于很多XML的初學者來說都不容易回答。因為XML涉及的方面太多,有人是為了寫出更漂亮的網頁才從HTML進一步學到XML;有人是為了學JAVA才來了解XML;有人是從數據庫到XML;有人是從UML到XML;當然還有一些人是從SOAP或者其他網絡協議而了解到XML。那么到底如何解釋XML的本質呢?

            我認為XML的本質是數據,XML文檔實際上是對數據的格式化存儲,而XML的一系列技術都是圍繞著數據來發展的。例如DTD、Schema是對數據格式的定義和檢驗;XSLT是對數據的轉換;DOM、SAX是對數據的提取和操作。

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

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

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

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

            總的來說,XML是一種基于文本的、格式化的數據存儲技術,它包括一系列的數據解決方案,它們是輕量級的、易于學習的、平臺無關的數據解決方案。弄清楚了這個概念再去學習XML,也許更有幫助。

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

            一级A毛片免费观看久久精品| 久久久无码精品亚洲日韩蜜臀浪潮 | 1000部精品久久久久久久久| 伊人久久大香线蕉无码麻豆| 久久精品中文字幕一区| 久久香综合精品久久伊人| 精品国产VA久久久久久久冰 | 久久久久久综合一区中文字幕 | 欧美激情一区二区久久久| 国产精品99久久久精品无码| 精品无码久久久久久午夜| 少妇久久久久久被弄到高潮 | 久久精品国产久精国产一老狼| 亚洲AV无码久久精品蜜桃| 久久亚洲国产午夜精品理论片| 久久精品综合网| 99久久精品免费看国产一区二区三区 | 99久久国产精品免费一区二区| 久久精品国产99国产精品澳门| 热久久最新网站获取| 精品久久久久久久久中文字幕| 大香伊人久久精品一区二区 | 日本精品久久久久影院日本| 久久久久久久亚洲Av无码| 久久se精品一区精品二区国产| 精品久久8x国产免费观看| 久久亚洲精品无码aⅴ大香| 久久99国产精品成人欧美| 69国产成人综合久久精品| 久久青青草原精品国产| 国产亚洲美女精品久久久2020| 青青久久精品国产免费看| 国产69精品久久久久99尤物| 国产成年无码久久久久毛片| 少妇久久久久久被弄高潮| 伊人色综合久久天天网| 亚洲&#228;v永久无码精品天堂久久 | 武侠古典久久婷婷狼人伊人| 人妻少妇精品久久| 一级做a爰片久久毛片毛片| 久久国产成人午夜aⅴ影院|