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

          XML(eXtensible Markup Language,可擴(kuò)展的標(biāo)記語言)是萬維網(wǎng)聯(lián)盟(W3C)創(chuàng)建的一組規(guī)范,用于在Web上組織、發(fā)布各種信息。它不僅可以滿足迅速增長的網(wǎng)絡(luò)應(yīng)用的需求,還能夠確保網(wǎng)絡(luò)進(jìn)行交互操作時具有良好的可靠性與互操作性。

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

          XML核心功能的有關(guān)特性和規(guī)范如下:

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

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

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

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

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

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

          7. 鏈接(XLink)和查詢;

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

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

          10. XML 和數(shù)據(jù)庫;

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

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

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

          1. 結(jié)構(gòu)化—建立有任何復(fù)雜層次的數(shù)據(jù)模型;

          2. 可擴(kuò)展性—根據(jù)需要定義新的標(biāo)志;

          3. 驗證—檢查數(shù)據(jù)在結(jié)構(gòu)上的正確性;

          4. 獨立與媒介—以多種方式發(fā)布內(nèi)容;

          5. 獨立于供應(yīng)商和平臺—使用標(biāo)準(zhǔn)的商業(yè)軟件,甚至文本工具處理任何符合(XML標(biāo)準(zhǔn))的文檔。

          上述這些功能使得XML技術(shù)被期望給面向網(wǎng)絡(luò)的應(yīng)用,特別是在數(shù)據(jù)交換領(lǐng)域帶來革命性的影響。Java 與XML一起使得新一代Web應(yīng)用成為可能。

          Java XML Pack 的由來


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

          Java 軟件平臺為了建立基于XML的程序已經(jīng)全面地收集了API核心規(guī)范,具體有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允許程序分析和轉(zhuǎn)換XML 文檔獨立于一個特殊的 XML 處理進(jìn)程。根據(jù)程序的需要,開發(fā)者們可以機(jī)動地與XML處理機(jī)間交換而不用改變程序代碼。這樣,程序和工具開發(fā)者們能夠快速和容易地寫出可以支持XML的Java應(yīng)用程序。

          JAXP參數(shù)的實現(xiàn)包括一個支持SAX和DOM的、高質(zhì)量的解析器和一個支持XSLT的轉(zhuǎn)換引擎。最新的版本JAXP 1.1允許使用最近的 SAX-2和 DOM level 2, 同樣它也包括一個基于TrAX框架 (為XML轉(zhuǎn)換API)的XSLT。 而最初的版本JAXP 1.0支持 SAX-1 和 DOM level 1。JAXP 1.1將來可當(dāng)作一個用于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方便使用編譯進(jìn)一個XML計劃的一個或多個類。已經(jīng)產(chǎn)生的類提供所有的有關(guān)XML解析和格式的細(xì)節(jié),它們能保證在計劃中的強(qiáng)制約束有效。在許多事件里,使用一個SAX(Simple API for XML)解析器或執(zhí)行一個DOM(Document Object Model) API是非常有效的。JAXB 1.0 將會成為一個Java 2平臺的可選擇性的包。

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

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

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

          JAXM 1.0 將可當(dāng)作一個可選擇的包用于J2SE。

          4.JAX-RPC為基于RPC協(xié)議的標(biāo)準(zhǔn)XML提供了一個獨立傳輸?shù)腁PI。JAX-RPC 1.0 將可當(dāng)作一個可選擇的包用于J2SE。JAX-RPC 將來也許會包括J2SE發(fā)行版或者J2EE。JAX-RPC 最近被 Executive Committee of the Java Community ProcessSM 認(rèn)可,并且已經(jīng)建立起專家組。 JAX-RPC 規(guī)范將作為 JSR-101被用于開發(fā) JCP 進(jìn)程。

          5.JAXR提供一個統(tǒng)一和標(biāo)準(zhǔn)的 Java API 來傳遞不同種類的XML Registries。 XML Registries 能夠建立、配置和發(fā)現(xiàn)Web服務(wù)器。

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

          JDK1.4的JAXR API規(guī)范包括在JAXR信息模式同ebXML Registry 和 UDDI Registry規(guī)范間建立的細(xì)節(jié)。

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

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

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

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

          標(biāo)準(zhǔn)的 DOM 文件是由文字結(jié)點、元素結(jié)點、處理命令結(jié)點和其它許多的結(jié)點組成的。不過這些結(jié)點造成了一個松散的DOM 對象,也造成了應(yīng)用上的困難。由于JDOM具有沒有層次性的特點,所以它將XML 文件建立成一個Java 對象,這種方法讓在Java 中使用XML 變得非常的容易,同時解決了DOM 應(yīng)用上的困難。其次,JDOM 采用類驅(qū)動,不需要像DOM 那樣進(jìn)行工廠化接口配置,所以JDOM 的使用是直截了當(dāng)?shù)摹S捎谑褂肑DOM對象就像使用Document、Element 和 Attribute 這些類的直接實例,所以創(chuàng)建一個新JDOM 對象在Java 語言中就像使用new 操作符一樣容易。

          Java 與 XML 的結(jié)合應(yīng)用


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

          對于一個XML文件是否符合Well-Formed 所規(guī)定的各項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 英明 閱讀(316) 評論(0)  編輯  收藏 所屬分類: 編程

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 双鸭山市| 阿荣旗| 临朐县| 洛隆县| 革吉县| 平原县| 车致| 江都市| 宜都市| 林州市| 天门市| 博罗县| 都江堰市| 石河子市| 荃湾区| 白河县| 宁远县| 西平县| 胶南市| 黔东| 芦山县| 福建省| 北宁市| 兴业县| 兴隆县| 姚安县| 舒兰市| 筠连县| 广丰县| 康马县| 剑川县| 邢台市| 遂宁市| 乌兰县| 敦化市| 句容市| 富锦市| 崇仁县| 沂南县| 界首市| 登封市|