2012年1月18日

AndroidでXMLを扱う一番簡単な方法(2)



今回はもう少し実践的な使い方を紹介しよう。


もう少し実践的な例


この記事では次のような処理について説明する。

  • オブジェクトのネスト
  • リスト
  • 属性
  • フィールド名とタグ名のマッピング

本と本棚の例


架空の蔵書管理アプリで、今度は本棚オブジェクトを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 コメント:

コメントを投稿

長崎県 引越 見積もり 単身引っ越し 料金 還暦祝い 父 Blog Entry Ranking
" ); 出会い系を例示