私はこのデータ構造を持っています:
<estates version="0.1">
<provider name="Foo">
<estate id="12345678">
<description>aaa</description>
<size>300</size>
</estate>
<estate id="12345679">
<description>bbb</description>
<size>450</size>
</estate>
</provider>
<provider name="Bar">
<estate id="987654321">
<description>yyy</description>
<size>100</size>
</estate>
<estate id="987654320">
<description>zzz</description>
<size>240</size>
</estate>
</provider>
</estates>
私のWebサービスから取得します。simple-xml ライブラリを使用して、Android の「Estates」、「Provider」、および「Estate」クラスをインスタンス化したいと考えています。
クラスEstates.java:
@Root
public class Estates {
@ElementList
private List<Estate> providers;
@Attribute
private String version;
}
クラス Estate.java:
public class Estate {
@Attribute
private String id;
@Element(required=false)
private String description;
@Element(required=false)
private Integers size;
}
@ElementList
つまり、プロバイダーに( )を使用しますが、この方法では1 つのList<Estate> providers
プロバイダー リストしか使用できません(私の例のように 2 つのリストを持つと、次のようになります。
「エラー/com.simplexml.XmlActivity(4266): キャッチされない例外: org.simpleframework.xml.core.PersistenceException: 要素 'providers' が 1 行目で 2 回宣言されました」)。
さらに、「名前」属性を取得できません。実際には、「」アプローチを却下する必要があると思いますがList<Estate> providers
、それを置き換える方法は? 「コレクション」を使用する必要がありますか?