2010年4月1日 星期四

用JDom輕鬆整合Java和XML

Jdom是用Java語言讀、寫、操作XML的新API函數。 Jason Hunter 和Brett McLaughlin公開發布了它的測試版本。在直覺、簡單和高效的前提下,這些API函數被最大限度的優化。在接下來的篇幅裡,Hunter 和McLaughlin介紹怎麼用Jdom去讀寫一個已經存在的XML文檔。

Jdom是一個開源的api,它以直接易懂的方式向java程序員描述XML文檔和文檔的內容。就像名字揭示的那樣,Jdom是為java優化的。為使用XML文檔提供一個低消耗的方法。 Jdom的使用者可以不必掌握太多的XML的知識就可以完成想要的操作。



Jdom可以和已有的XML技術如Simple API for XML (SAX)和Document Object Model (DOM)相互協作.然而,它並不是簡單的從這些api中提取出一些。 Jdom從這些已存在的技術中吸收了好的方面,自己建立了一套新的類和接口,用一個Jdom用戶的話來說就是:“這些接口是我從一開始閱讀org.w3c.dom就期待的”;Jdom可以讀入SAX或是DOM的內容,也可以輸出SAX或DOM可以接收的格式。這個能力可以使Jdom很好的和已有的用SAX或DOM建立的系統之間整合。

  Jdom的原則

第一條並且是最重要的一條就是Jdom的api函數被設計成對java程序員來說是簡單易懂的。其他的XML解析函數被設計成語言通用的(支持相同的api函數在java,c++,甚至是javascript中)。 Jdom利用了java的優秀的特徵,如:方法重載、回收機制,和後台處理等。

為了能夠簡單易用,這些函數不得不以程序員喜歡的形式來描繪XML文檔。例如:程序員想的到的一個元素的文本內容是什麼樣子的呢?
<element>This is my text content</element>

在一些api中,元素的文本內容僅被當作是一個元素的孩子節點。從技術角度來說,這個設計需要下面的代碼才能訪問到元素的內容:
String content = element.getFirstChild().getValue();

Jdom用一種更簡單易用的方法來取得元素的內容:
String text = element.getText();

Jdom盡可能的減少程序員的工作量。依據拇指規則,Jdom應該用20%或是更少的努力來完成80%或是更多的java/xml方面的問題。這並不是說Jdom只是支持80%的XML規範(實際上我們希望Jdom100%的支持XML規範)。這個拇指規則是說有些東西可以加進去,但是沒有必要。這些api函數應該保持簡潔。

Jdom的第二條原則是說Jdom應該是快速的和輕量級的。調入和執行文檔應該快速,內存的消耗應該盡量小。 Jdom的設計明顯是遵循這個原則。例如,就算在開始的時候,不太協調的操作已經比DOM快,但是比SAX顯的粗糙。儘管這樣,Jdom還是有許多SAX沒有的優點。

沒有留言:

張貼留言