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
- File.createTempFileで一時ファイルの作成 - (2010/09/09 17:11)
- XMLからJaxbクラス群を自動生成する例 - (2010/03/16 14:10)
- Velocityテンプレートエンジン繰り返しforeach の使い方一例 - (2010/01/22 18:37)
- VelocityテンプレートエンジンのResourceNotFoundExceptionについて - (2010/01/20 19:08)
- File.mkdir/File.mkdirsでディレクトリ作成 - (2009/07/15 11:05)
- Java JIOパッケージでファイルgrep機能を実装してみる - (2009/04/23 18:52)
- PSD-parser - JavaでPSDファイルを抽出するためのライブラリ - (2009/04/21 00:09)
- FreeMarkerの文字化け対策 - (2009/04/01 14:12)
- File.listFiles/FileFilterでファイル選別 - (2009/03/23 18:20)
- Webアプリケーションにおける相対パスのファイルを読み込み - (2009/02/18 16:31)
- File.deleteでファイル/フォルダを削除 - (2009/02/16 18:49)
- File.renameToでファイルを移動 - (2009/02/16 18:42)
- InputStreamオブジェクトにあるデータをファイルに出力 - (2009/02/16 18:07)
- テンプレートエンジンApache Velocityを使おう - VelocityでDAOの自動生成ツールを作成 - (2009/02/10 11:12)
- JAXBを使おう - サンプルから学ぶXML文書の読み書き - (2009/02/09 21:22)