posts - 33,comments - 21,trackbacks - 0
          轉貼自賽迪網(http://tech.ccidnet.com/art/294/20021120/31320_1.html)

          XML(eXtensible Markup Language,可擴展的標記語言)是萬維網聯盟(W3C)創建的一組規范,用于在Web上組織、發布各種信息。它不僅可以滿足迅速增長的網絡應用的需求,還能夠確保網絡進行交互操作時具有良好的可靠性與互操作性。

          XML的語法類似HTML,都是用標簽來描述數據的。HTML的標簽是固定的,我們只能使用,不能修改。XML則不同,它沒有預先定義好的標簽可以使用,而是依據設計上的需要自行定義標簽。XML是一個元語言,根據不同的行業和語義,可以派生出許許多多的協議和規范。目前的基本協議有XSL、XLink/Xpointer、Xpath、XHTML、Schema等。不同的行業和領域都可以制定自己的XML規范,用于橫向和縱向的信息交流和數據傳輸。XML規范有大有小,大的可以為全世界范圍內的商務數據制定格式,像ebXML、Biztalk、eCo;小的有專門用于電子錢包的ECML,有為數學制定的MathML;還有為多媒體數據同步的SMIL,像XSL是專門用于顯示的,它制定了許多有顯示語義的標簽;而XLink是描述文檔之間關系的語言。像Micrsoft 的CDF(Channel Definition Format)推送頻道“PUSH”技術應用、WML(Wireless Market Language)無線商務應用等等都是XML技術的具體應用。XML給基于Web的應用軟件賦予了強大的功能和靈活性,因此它給開發者和用戶帶來了許多好處。利用XML用戶可以方便地進行本地計算和處理。XML格式的數據發送給客戶后,客戶可以用應用軟件解析數據并對數據進行編輯和處理。使用者可以用不同的方法處理數據,而不僅僅是顯示它。XML文檔對象模式(DOM)允許用腳本或其它編程語言處理數據,數據計算不需要回到服務器就能進行。XML可以被利用來分離使用者觀看數據的界面,使用簡單靈活開放的格式,可以給Web創建功能強大的應用軟件。

          XML核心功能的有關特性和規范如下:

          1. 格式良好的(Well-Formed)XML文檔;

          2. 文檔類型定義(DTD);

          3. XML使用樣式—CSS(Cascading Style Sheet,層疊樣式表單)和XSL(eXtensible Style Language,可擴展樣式語言);

          4. 文檔對象模型(DOM)—XML編程接口;

          5. XML 簡單API(SAX)—XML編程接口;

          6. XML 命名空間(Namespace)和模式(Schema);

          7. 鏈接(XLink)和查詢;

          8. XPath(XML Path Language) 和 XPointer(XML Pointer Language);

          9. 轉換XML—XSL和XSLT(XSL Transformation);

          10. XML 和數據庫;

          11. 用于服務器協議— XML-RPC、SOAP(Simple Object Access Protocol,簡單對象訪問協議)和WDDX(Web Distributed Data Exchange,分布式Web 數據交換)。

          XML 是一種具有描述數據功能的語言,它十分適合作為知識表示語言或作為組件及文件格式的表示方法。它還可以讓數據在不同的來源中,根據通用的語法規則來處理。而Java則是用于Internet、適合于分布式環境、提供了一個跨平臺的語言。XML和Java相結合主要原因是基于XML的語法提供了一種靈活的、標準的、健壯的Java編程方案,同時,Java也將一種普遍的語義集合應用于XML數據。既然Java和XML都是可移植的標準,這兩種技術結合的結果也是可移植的,可以重用數據和移植行為。單獨使用XML或Java所能獲得的所有潛力還沒有被完全掌握,將它們結合就走進了一個巨大的、新的國度。將XML應用于Java的兩個主要的應用是面向表示的出版業和企業中面向消息的中間件技術。

          Java和XML是在為不同客戶開發Web程序時形成得自然的匹配。從傳統的電話到最新的智能冰箱,利用和產生的信息都是在不同的系統平臺的服務器上交換。XML和Java的方便性和可延展性使它們在新的Web上具有更多的功能:

          1. 結構化—建立有任何復雜層次的數據模型;

          2. 可擴展性—根據需要定義新的標志;

          3. 驗證—檢查數據在結構上的正確性;

          4. 獨立與媒介—以多種方式發布內容;

          5. 獨立于供應商和平臺—使用標準的商業軟件,甚至文本工具處理任何符合(XML標準)的文檔。

          上述這些功能使得XML技術被期望給面向網絡的應用,特別是在數據交換領域帶來革命性的影響。Java 與XML一起使得新一代Web應用成為可能。

          Java XML Pack 的由來


          因為XML的信息編碼容易閱讀、處理和產生,所以在許多信息交換中XML是一種首選的技術。Java可以認為是XML的“同事”,因為這兩種語言都有相同的歷史背景(C++、 SGML),都具有簡單性、方便性和可移植性,并且都繼續在工業上、學術上開發(W3C、JCP)。 理所當然Java在服務器和客戶端的XML程序開發上成為一種首選語言。

          Java 軟件平臺為了建立基于XML的程序已經全面地收集了API核心規范,具體有6個(JDK1.4)。它們分別是JAXP (Java API for XML Processing) 、JAXB (Java Architecture for XML Binding) 、JAXM (Java API for XML Messaging)、JAX-RPC (Java API for XML-based RPC)、JAXR (Java API for XML Registries)、JDOM (Java DOM)。簡介如下:

          1.JAXP支持使用 DOM、 SAX和XSLT處理XML文檔。JAXP允許程序分析和轉換XML 文檔獨立于一個特殊的 XML 處理進程。根據程序的需要,開發者們可以機動地與XML處理機間交換而不用改變程序代碼。這樣,程序和工具開發者們能夠快速和容易地寫出可以支持XML的Java應用程序。

          JAXP參數的實現包括一個支持SAX和DOM的、高質量的解析器和一個支持XSLT的轉換引擎。最新的版本JAXP 1.1允許使用最近的 SAX-2和 DOM level 2, 同樣它也包括一個基于TrAX框架 (為XML轉換API)的XSLT。 而最初的版本JAXP 1.0支持 SAX-1 和 DOM level 1。JAXP 1.1將來可當作一個用于JDK 1.1.8和更高平臺的、可選擇的包,也許將來還會包括在 J2SE(Java 2 Platform Standard Edition) 1.4和J2EE(Java 2 Platform Enterprise Edition)1.3 中。

          2.JAXB 提供了一個API工具,它可以自動地在XML文檔和Java對象間建立映射。JAXB可以使XML方便使用編譯進一個XML計劃的一個或多個類。已經產生的類提供所有的有關XML解析和格式的細節,它們能保證在計劃中的強制約束有效。在許多事件里,使用一個SAX(Simple API for XML)解析器或執行一個DOM(Document Object Model) API是非常有效的。JAXB 1.0 將會成為一個Java 2平臺的可選擇性的包。

          3.JAXM 的可選擇包允許程序發送和接收用純Java API導向XML的文檔。 JAXM工具的SOAP(Simple Object Access Protocol) 1.1及其附件可使開發者能集中于為它們的程序建立、發送、接收和分解信息包,這樣就代替了低層次的XML通信程序。

          這個版本的JAXM規范包括Messaging Profiles概念。它的目的就是為了建立一個基礎,使之可支持一類高層次基于標準的信息協議。 一個Profile的例子就是執行ebXML 的傳輸、路由和打包的信息處理服務,或者基于JAXM 的W3C 的XMLP。因此,Java技術開發者們在使用JAXM 時,將有掛接XML信息的能力。

          這些高層次的協議常常在基本的基于SOAP信息之外,實現一些額外的功能。這個額外的功能對信息的安全性、可升級性及完整性經常是有用的。

          JAXM 1.0 將可當作一個可選擇的包用于J2SE。

          4.JAX-RPC為基于RPC協議的標準XML提供了一個獨立傳輸的API。JAX-RPC 1.0 將可當作一個可選擇的包用于J2SE。JAX-RPC 將來也許會包括J2SE發行版或者J2EE。JAX-RPC 最近被 Executive Committee of the Java Community ProcessSM 認可,并且已經建立起專家組。 JAX-RPC 規范將作為 JSR-101被用于開發 JCP 進程。

          5.JAXR提供一個統一和標準的 Java API 來傳遞不同種類的XML Registries。 XML Registries 能夠建立、配置和發現Web服務器。

          現在的XML Registries規范有ISO 11179、OASIS、 eCo Framework、 ebXML 和 UDDI。 JAXR API 允許 Java 程序員通過不同的XML Registries使用一個簡單、容易使用的抽象API。JAXR API的JAXR 信息模式使它方便在XML registries中記錄內容和數據。

          JDK1.4的JAXR API規范包括在JAXR信息模式同ebXML Registry 和 UDDI Registry規范間建立的細節。

          JAXR API 工作在與Java APIs for XML相關的核心規范上,比如說 JAXP、JAXB、 JAX-RPC 和 JAXM, 以允許 Web 服務器包含J2EE平臺。

          JAXR 1.0 將當作一個可選擇的包用于J2SE,將來也許會包括在J2EE中。

          6.JDOM是一種面向Java 的讀、寫和操作XML 文檔的API。JDOM 與現行的SAX 和DOM標準兼容,為Java 程序員提供了一個簡單、輕量的XML 文檔操作方法。需要指出的是JDOM是專門為Java 程序員開發的,所以采用許多Java 語言的優秀特性,比如方法重載、集合(Collections,這是在Java2中出現的數據操作類型)和類映射(Reflection)。

          JDOM 是一種使用XML 的獨特Java 工具包,用于快速開發XML應用程序。它能夠替換org.w3c.dom 軟件包來有計劃地操作XML 文檔。實際上JDOM 和DOM 能夠并存。

          標準的 DOM 文件是由文字結點、元素結點、處理命令結點和其它許多的結點組成的。不過這些結點造成了一個松散的DOM 對象,也造成了應用上的困難。由于JDOM具有沒有層次性的特點,所以它將XML 文件建立成一個Java 對象,這種方法讓在Java 中使用XML 變得非常的容易,同時解決了DOM 應用上的困難。其次,JDOM 采用類驅動,不需要像DOM 那樣進行工廠化接口配置,所以JDOM 的使用是直截了當的。由于使用JDOM對象就像使用Document、Element 和 Attribute 這些類的直接實例,所以創建一個新JDOM 對象在Java 語言中就像使用new 操作符一樣容易。

          Java 與 XML 的結合應用


          建立一個良構(Well-Formed)的XML 文檔及驗證的實例

          對于一個XML文件是否符合Well-Formed 所規定的各項XML 基本語法,必須借助XML 分析器來加以檢查。比較常見的XML 分析器有Xerces、JAXP 和MSXML。

          一個XML 文檔是有明顯特征的。下面是一個XML 文檔的實例People.xml,代碼如下:

          <? xml version="1.0" encoding="GB2312"? >
          <PeopleInfo>
          <People PeopleId="YOUR">
              <PeopleName> 古董 </PeopleName>
              <PeopleSex>   男  </PeopleSex>
              <PeopleAge>   23  </PeopleAge>
          </People>
          <People PeopleId="SHEN">
              <PeopleName> 王冠 </PeopleName>
              <PeopleSex>   女  </PeopleSex>
              <PeopleAge>   25  </PeopleAge> 
          </People>
          </PeopleInfo>

          ?

          posted on 2006-11-22 17:17 英明 閱讀(310) 評論(0)  編輯  收藏 所屬分類: 編程

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 肇州县| 镇沅| 新密市| 涡阳县| 定日县| 东宁县| 韶山市| 扶沟县| 铁力市| 通辽市| 临沧市| 永顺县| 茌平县| 乌审旗| 平果县| 青浦区| 垫江县| 巴彦淖尔市| 三门峡市| 永济市| 广丰县| 黄梅县| 阿克| 辉南县| 荆门市| 大埔县| 武定县| 新竹县| 阳城县| 大城县| 临西县| 昌黎县| 礼泉县| 洛扎县| 隆安县| 新乡市| 西青区| 天峻县| 涪陵区| 天台县| 新河县|