Apache Commons Digesterを使おう - サンプルから学ぶXML文書の読み込み
2009/02/09 21:24Update
DigesterはXMLファイルをJavaオブジェクトへ単方向にマッピングするためのライブラリです。
目次
XMLドキュメントおよびJavaクラスの定義
DigesterでXMLからJavaオブジェクトへのマッピング
Digester解析ルール
本文は、サンプルからApache Commons Digesterの使い方を紹介したいと思います。
たとえば、顧客注文を表すXML文書は次のようになります。
orders.xml
解説:
order要素:オーダーリスト。複数のオーダーが含まれると想定します。
order要素:オーダー。一つのオーダーを表します。
customer:顧客。
goods-list:商品リスト。何を注文したかを表します。顧客は一度に複数の商品(item)を注文できます。
item:商品。
で、Javaオブジェクト化にした場合、おそらく、Javaクラスの階層はこうなります。
Orders.java
Order.java
Customer.java
GoodsList.java
Item.java
さて、Digesterの場合、どうやって上のorders.xmlをJavaオブジェクトに読み込むのか?
XMLドキュメントおよびJavaクラスの定義
DigesterでXMLからJavaオブジェクトへのマッピング
Digester解析ルール本文は、サンプルからApache Commons Digesterの使い方を紹介したいと思います。
XML文書
たとえば、顧客注文を表すXML文書は次のようになります。
orders.xml<orders> <order seq="0001" date="2007-06-12"> <customer name="C1" /> <goods-list> <item id="01" name="book" /> <item id="02" name="CD" /> </goods-list> </order> <order seq="0002" date="2007-06-12"> <customer name="C2" /> <goods-list> <item id="05" name="Note" /> <item id="06" name="Pen" /> </goods-list> </order> </orders>
解説:
order要素:オーダーリスト。複数のオーダーが含まれると想定します。
order要素:オーダー。一つのオーダーを表します。
customer:顧客。
goods-list:商品リスト。何を注文したかを表します。顧客は一度に複数の商品(item)を注文できます。
item:商品。
Javaクラス定義
で、Javaオブジェクト化にした場合、おそらく、Javaクラスの階層はこうなります。
Orders.java
Order.java
Customer.java
GoodsList.java
Item.java
//オーダーリスト
class Orders {
List <Order> orderList; //オーダーを格納するためリスト
...
}
//オーダー
class Order {
String seq;
String date;
Customer customer;
GoodsList goodsList;
...
}
//顧客
class Customer {
String name;
}
//商品リスト
class GoodsList {
List <Item> itemList; //商品を格納するためリスト
}
//商品
class Item {
String id;
String name;
}
さて、Digesterの場合、どうやって上のorders.xmlをJavaオブジェクトに読み込むのか?
Sponsored Link
- Relative Articles
- Jakarta Commons NETによるFTP処理(FTPClient) - (2009/01/28 19:40)
- DTDファイル処理 - DTDParser - Java DTD パーサー - (2009/01/30 17:48)
- Apache Commons EmailによるEメール送信 - (2009/02/06 17:51)
- JAXBを使おう - サンプルから学ぶXML文書の読み書き - (2009/02/09 18:47)
- テンプレートエンジンApache Velocityを使おう - VelocityでDAOの自動生成ツールを作成 - (2009/02/10 11:12)
- Jakarta Commons によるHTTP処理(HttpClient) - (2009/02/17 15:14)
- Apache MINAを使ってみよう - Apache MINAで簡易なサーバ作成 - (2009/03/05 17:59)
- 全文検索システムApache Luceneを使ってみる - (2009/04/11 13:45)
- PSD-parser - JavaでPSDファイルを抽出するためのライブラリ - (2009/04/21 00:09)
- MockFtpServer - Ftpサーバのモック実装 - (2009/06/25 14:50)