国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

API 將 XML 數據綁定到 Java 對象

2019-11-18 10:48:50
字體:
來源:轉載
供稿:網友

  在Web服務、業務流程治理(BPM)、企業應用集成(EAI)及其他眾多行動計劃中,xml已經成為整個企業的一項要害技術。因此java開發人員可以預料到XML在開發性項目中將發揮越來越重要的作用。幸好JAX(用于XML的Java APIs)中API的作用域在不斷擴大,能夠支持XML數據的多種處理方式。
  
  例如,比較成熟的用于XML的Java APIs之一JAXP(用于處理XML的Java API)為開發人員提供了處理XML數據的靈活性,他們可以插入自己喜歡的文檔對象模型(DOM)或用于XML的簡單API(SAX)解析器。Oracle集團產品經理、XML倡導者Mark Scardina介紹說,"從開發人員的角度看,JAXP的優點之一是它被設計為'與解析器無關'的,這樣,處理XML就不依靠于任何特定廠商的解析器了。" 利用JAXP,Java程序員能夠選擇他們的解析引擎方法(DOM或SAX),而且知道XML文檔將被進行適當的解析和處理(請參閱《高效地解析XML》,了解Java應用程序的DOM、SAX和用于XML的流式API[StAX]等解析技術的更多信息)。
  
  不過,通過編寫Java來使用JAXP要求應用程序開發人員非常熟悉XML的知識。使用JAXP的開發人員必須編寫代碼來處理所有解析和處理過程;例如,根據需要創建DOM解析器實例、使用該解析器來分析XML文檔、構建DOM樹、在DOM樹中訪問節點和數據并在應用程序代碼中處理這些數據。與SAX解析器一起使用JAXP的過程包括編寫用于注冊內容處理器的代碼,編寫用于處理解析器處理XML文檔時發生的事件的回調代碼,等等。簡而言之,處理XML數據所需的編程邏輯對Java程序員可能并不直觀。
  
  這時候JAX規范中相對較新的成員JAXB(用于XML綁定的Java體系結構)就能發揮作用了。JAXB是與JAXP完全不同的方法,"JAXB通過被看作'代理對象'的東西來處理XML文檔--它使開發人員不必直接關注XML結構,便可創建或訪問XML數據,"Scardina說。開發人員不用編寫代碼來處理DOM樹,也不用編寫回調方法來處理SAX事件,而只需編寫處理Java對象的代碼。
  
  當用于適當類型的應用程序中時,JAXB可以產生更為巨大的生產力,Java開發人員也更輕易地使用它。"它是一種基礎架構,使開發人員能夠享受到XML帶來的好處,而不必了解具體細節,"Scardina說。 考慮JAXB的另一個原因是其作用不亞于將Java對象映射到數據庫結構的與對象-關系型框架的作用。例如,"就像Oracle TopLink產品的‘容器’治理數據庫并將數據庫顯示為對象集一樣,JAXB也把XML文檔顯示為對象集,"Scardina說。
  
  簡而言之,JAXB為開發人員提供了一種用于創建XML文檔與Java對象之間的雙向映射的面向對象的、基于Java的方法。
  
  B代表綁定
  從高層次看,JAXB是一個由開發工具和運行時間引擎組成框架。包括Oracle在內的實施者都使用帶有Java Web服務開發人員工具包(JWSDP)的JAXB接口和類庫來開發自己的JAXB兼容工具,以支持幾種核心開發和運行時間活動:
  
  綁定就是從XML模式生成Java接口和類、并在運行時使用這些對象符合邏輯地將XML文檔數據"綁"在相應的Java類對象上的過程。(一個稱為綁定編譯器的JAXB兼容實用程序是一切JAXB實施的核心組件;綁定編譯器是用于生成接口和類的工具。)
  
  反編排就是創建(在內存中創建)代表XML文檔內容的對象的實例的過程;從XML文檔反編排數據的結果就是把這些數據封裝為一個Java對象。
  
  編排是反編排相反;也就是說,Java對象中的數據被封裝為XML內容,以便將其輸出。
  
  使用JAXB的第一步是獲得與XML文檔類型相關聯的XML模式文件,該類型必須是Java應用支持的。XML模式是用于定義XML文檔及其數據類型的XML語言,也是XML技術賦予XML數據意義及前后關系的要害。一個XML模式文件基本上就是一個用XML模式語言寫成的XML文件,它定義了特定XML文檔類型所答應的簡單的和復雜的數據類型以及這些數據類型之間的關系(也就是說這些類型是有層次結構的)。一般來說,任何發送或接收XML文檔的應用程序都需要具備一個與XML文檔相關聯的XML模式,以便在XML文檔內容中順利傳達(由程序)數據含義。
  
  不過,假如開發人員已經有了相應的XML模式文件,他只需將它與編譯器生成程序聯合使用,便可創建用于將XML文檔數據綁在Java對象上的Java源文件。如何調用或執行綁定編譯器要依具體實施過程而定;例如,Oracle的綁定編譯器是作為一個Java可執行文件(oracle.xml.jaxb)來調用的,它將XML模式文件名(filename.xsd)作為一個參數來傳遞,并為輸出文件提供一個目錄路徑名。
  
  生成的類(Java源代碼文件聲明為接口程序)包含目標文件filename.xsd 中定義的每一個元素的setter和getter方法;生成的類依次執行這些接口程序。"這些Java類提供了一組get方法,它使我能夠簡單地從XML文檔中我所感愛好的那些部分中獲取與其類型相綁定的值,"Scardina說。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉安县| 阜新市| 南丰县| 济阳县| 绥江县| 双流县| 汾阳市| 崇仁县| 万山特区| 长乐市| 华亭县| 沧源| 乌兰县| 南丹县| 饶平县| 洮南市| 九江市| 呼和浩特市| 门头沟区| 岑巩县| 左云县| 虞城县| 稻城县| 九台市| 沈丘县| 萨嘎县| 闻喜县| 澜沧| 门头沟区| 龙里县| 拜泉县| 鄂伦春自治旗| 松江区| 上高县| 青河县| 湖南省| 沈丘县| 池州市| 滨海县| 宁阳县| 凤台县|