JAXB以其方便的XML數據處理能力可能會引起你的愛好。你可能還不了解JAXB是什么,想要知道它到底有什么好處,假如這是你需要的,你才會再花時間去細細的研究它,或者你只需要使用最基本的功能。然而Sun關于JAXB的文檔有80頁之多。我想大部分人都沒有耐心看完這樣的長篇大論。本文以簡短的篇幅介紹了JAXB的基本使用,算是先睹為快吧。本文附帶的代碼包括了JAXB1.0 early access版本和本文所使用的代碼。歡迎與我討論: mailto:boyofjava@sina.com
本文假設你會使用Java編程,了解并能夠看懂XML,DTD。
1 為什么要使用JAXB 在Java中處理XML數據的常規方法有SAX,DOM等。其中SAX使用起來很麻煩,不能修改XML數據;而DOM的處理大文檔速度非常的慢,易用性也不必SAX好到哪里去。實際上,無論是SAX還是DOM都不是專門為Java預備的,它們都是訪問XML文檔的統一底層接口,與語言無關。 現在我們有了另外的選擇。這就是JAXB和JDOM。JDOM與本文無關,目前最新的版本是beta8,感愛好的話,可以訪問http://www.jdom.org/。 JAXB的全名是Java ™ Architecture for XML Binding,目前是1.0的early access版本,在Sun的Java站點只有注冊為成員才能夠下載。JAXB的特點就是將你用DTD定義好的XML文檔映射為Java對象,提供簡單、快速的數據操作方式。要訪問XML中的元素、屬性只要通過相應對象上的一系列getter和 setter方法。你還可以通過marshal方法將對象的數據寫進XML文件,通過unmarshal方法將XML文件的數據讀入對象,通過validate方法驗證XML文件是否符合DTD的約束。JAXB的缺點就在于只能訪問特定的(也就是你用DTD定義的)XML文檔。
3 JAXB的安裝 以1.0 early access為例,它不包含在JDK中,先到http://java.sun.com/xml下載。注重由于是早期版本,需要先登錄才能下載,本文附帶的源碼包含了JAXB1.0 early access。下載后將文件解壓縮,在lib目錄中有兩個文件。jaxb-rt-1.0-ea.jar是運行支持庫,jaxb-xjc-1.0-ea.jar是模式編譯器。注重bin目錄中的xjc文件只能在UNIX下使用,假如你的系統是Windows,那么你需要在命令行窗口手工輸入命令來編譯。為了在任何地方都可以運行模式編譯器和它生成的代碼,我們要把這兩的文件加入CLASSPATH。一個簡單的辦法是把這兩個文件拷貝到jre/lib/ext下。
8 參考文檔 1 The Java ™ Architecture for XML Binding User’s Guide (http://java.sun.com/xml/jaxb/jaxb-docs.pdf) 2 Web Services Made Easier. The Java TM APIs and Architectures for XML, A Technical White Paper (http://java.sun.com/xml/webservices.pdf )