前回の記事で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 BookShelfbookshelf; }
public class BookShelf{ @ElementList(name="book") public Listbook; @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 コメント:
コメントを投稿