前回の記事でSimpleフレームワークの紹介をした。
今回はもう少し実践的な使い方を紹介しよう。
もう少し実践的な例
この記事では次のような処理について説明する。
- オブジェクトのネスト
- リスト
- 属性
- フィールド名とタグ名のマッピング
本と本棚の例
架空の蔵書管理アプリで、今度は本棚オブジェクトをXMLであらわすことにしよう。
1.XMLファイルを書く
bookshelfというタグを新設したXMLを作成する。bookmanagerというタグをルートノードにして、その下にbookshelfタグを置く。bookshelfタグには複数のbookタグが含まれる。
<?xml version="1.0" encoding="utf-8"?>プログラミング言語Java第4版 James Gosling 4410 Java仮想マシン仕様 Tim Lindholm 4200 詳解Javaプログラミング第2版 Patrick Niemeyer 5145
2.POJOクラスを定義する
ノードに対応するクラスを作る。
@Root
public class BookManager{
@Element(name="bookshelf")
public BookShelf bookshelf;
}
public class BookShelf{
@ElementList(name="book")
public List book;
@Attribute(name="category")
public String category;
}
public clas Book{
@Element(name="name")
public String name;
@Element(name="author")
public String author;
@Element(name="price")
public int price;
}
ノードの関係をあらわすと次のようになる。
登場するクラスは3つで、BookManagerがルートノードである。
オブジェクトのネスト
BookManagerはBookShelfオブジェクトを持っている。説明のために、本棚は1つしか存在しないものとしている。
そして、BookShelfがBookのリストを持っている。
BookManager以外のクラスにはアノテーションは不要なことに注意してほしい。
オブジェクトも基本型とまったく同じように@Elementアノテーションを付けて宣言すればよいだけ。
リスト
オブジェクトを複数持つ場合は、Listとして表現する。
それで、アノテーションを@Elementではなく@ElementListとすればよいだけだ。
属性
属性は@Attributeアノテーションをつけるだけ。
フィールド名とタグ名のマッピング
アノテーションではnameパラメータでタグ名を指定することができる。今の例ではフィールド名とタグ名が同じなのであまり意味はないけど。

0 コメント:
コメントを投稿