2011年4月8日 星期五

在Java中操作XML - JAXB使用教學

JAXB簡介
JAXB的全名是Java Architecture for XML Binding,是Sun官方發展的技術,提供Java物件和XML文件自動mapping的機制,使我們能夠很容易的操作XML而不用去爬樹 (parse DOM tree)或是免除為了哪個節點之後要新增哪個節點又應該是哪一種內容的苦惱。
目前JAXB是屬於Java Web Services Developer Pack的實做套件之一,Sun官方預計在即將釋出的Java SE 6將其包裝在裡頭,因此到時候我們就不必再特地下載JAXB的實做套件了。





下載JAXB
請到https://jaxb.dev.java.net/ 下載最新版的JAXB,目前(2011/04/08)最新的穩定版是2.2.3,檔案名稱是JAXB2_20101209.jar。
下載完成後請執行
java –jar JAXB2_20101209.jar如果在windows中的話,可以點兩下直接執行即可,執行後會自動壓縮,請解壓縮至沒有空白字元名稱的資料夾下,譬如解壓縮到 「C:\Documents and Settings\Micky\Desktop」 資料夾的話,會造成無法執行JAXB的xjc.bat等檔案,這邊我們假設將其解壓縮到C:\jaxb下。
準備XML檔案
由於JAXB是讀取XML的schema檔案來產生所需要的Java檔,因此我們要將準備XML的schema檔案。有許多工具可以透過 讀取原始XML檔案自動產生schema檔,譬如XMLSpy、Oxygen XML Editor、Microsoft Visual Studio .Net 2005、Eclipse的XML外掛等,每種工具所產生的XML schema檔的內容都有點不一樣,不過卻大同小異。
我們選擇VS .Net 2005來產生,我猜VS .Net 2003也有一樣的功能,但在早期一點的就不知道了。使用VS .Net開啟XML檔案,在功能表列的地方會多出一個XML的選項,選擇其中的「建立結構描述」功能,就會馬上產生一份相對應的XML schema檔案,副檔名是xsd。記得將這一份xsd給存起來,這即是我們所要餵給JAXB的檔案了。


產生Java檔案
為方便起見,可以將xml和xsd檔案複製到JAXB安裝目錄下的bin資料夾內。開啟console視窗,切換至c:\jaxb\bin,之後輸入
xjc –p com.cyberpowersystems.ppbe.jaxb ppbe.xsd如此一來即會根據xsd內容,自動產生一組相對應的java檔案。這邊-p的意思是指定java的package,當然不指定也可以。因 此我們會在com\cyberpowersystems\ppbe\jaxb目錄下找到該群檔案,裡面至少會包含了一個 ObjectFactory.java檔和其他相關的檔案。
到這邊為止,我們已經準備好java檔案,接下來就可以將這些java檔案匯入到我們的Java專案中了。


匯入Java專案
我們這邊是採用Eclipse來當作Java的IDE。將上述java檔案匯入至Java專案後,會出現許多紅色的error代表找不到相關的Java Class。因此需要至專案的屬性 → Java Build Path → Libraries 中加入C:\jaxb\lib中所有的jar檔,經過重新compile後,所有的error應該都會不見了。可以開始撰寫相關程式囉~


撰寫處理XML程式
參考史蒂芬心得筆記先。



參考網頁
1.http://java.sun.com/webservices/jaxb/
2.https://jaxb.dev.java.net/
3.http://my.so-net.net.tw/idealist/WebService/JAXB.html
4.http://www.javaworld.com.tw/jute/post/view?bid=19&id=5482&sty=1&tpg=1&age=-1


轉載自http://micky.hime2000.com/item/74

沒有留言:

張貼留言