fbpx

JAVA XML API 教學 - OXM 技術 Castor API


OXM 介紹

OXM全名為Objec XML Mapping,主要的功能為 Java Bean 與 XML 之間的轉換工作。Castor 的優點為不需要定義映射檔,比起JAXB更為一項輕量級的應用。 在OXM中有兩項重要的名詞 marshal 與 unmarshal,將 Object 轉換為 XML 的動作稱為 marshal,反之稱為 unmarshal,如此的習慣也在JAXB中出現。 此外,在我實驗的過程中發現 Castor 為採用反射的方式建立物件,因此擁有一項優點為可以任意 unmarshal 物件,即使與原先 marshal 的物件為不同的 Class,增加了許多設計的彈性。

Castor官方網站 http://www.castor.org/

Castor 實作 - Castor 需要的套件

  • castor-1.3-core.jar
  • castor-1.3-xml.jar
  • castor-1.3-xml-schema.jar

下載網址 http://www.castor.org/download.html#Castor 此外 Castor 在執行的時候也需要:

  • log4j-1.2.15.jar
  • commons-logging-1.1.1.jar

這兩包套件可在Apache網站取得

Marshal 實作

在這個章節中我們測試在物件中存放參數與子物件進行OXM:

  • 設計一個 Model
  •  設計一個SubModel
  • Marshal 轉換程式 Object2XML.java
  • Unmarshal 轉換程式 XML2Object.java

執行結果

  • Object2XML.java
  • XML2Object.java

結論

Castor 在使用上確實比 JAXB 來的簡易,假如搭配 Java Class Loader 更能夠發揮自動化的功用,在 OXM 扮演了很重要的角色,也符合 XDNA Framework 精簡快速的精神。