構成の詳細をxmlファイルに保存しています。その構造は次のようなものです
<A>
<b>
<name>xxxxx</name>
<age>xxxxx</age>
<c>
<someFeilds>yyyy</someFeilds>
</c>
<c>
<someFeilds>yyyy</someFeilds>
</c>
<c>
<someFeilds>yyyy</someFeilds>
</c>
</b>
<b>
<name>xxxxx</name>
<age>xxxxx</age>
<c>
<someFeilds>yyyy</someFeilds>
</c>
</b>
</A>
私はそれを私のDTO A
whoes構造にマーシャリングすることができます
class A {
public ArrayList<B> bdtoInst;
}
class B {
public String name;
public String age;
public ArrayList<C> cdtoInst;
}
class C {
public String someFeilds;
}
Xstream宣言は
XStream xStream = new XStream();
xStream.alias("A", A.class);
xStream.addImplicitCollection(A.class, "bdtoInst");
xStream.alias("b", B.class);
xStream.addImplicitCollection(B.class, "cdtoInst");
xStream.alias("c", C.class);
私はそれを自分の DTO にマーシャリングできますが、アンマーシャリングすると、正しい形式が得られません。次のようになります。
<A>
<b>
<name>xxxxx</name>
<age>xxxxx</age>
<c>
<someFeilds>yyyy</someFeilds>
</c>
<c>
<someFeilds>yyyy</someFeilds>
</c>
<c>
<someFeilds>yyyy</someFeilds>
</c>
<c>
<someFeilds>yyyy</someFeilds>
</c>
</b>
<b>
<name>xxxxx</name>
<age>xxxxx</age>
<c reference="../../b/c"/>
</b>
</A>
xstream-1.4.3.jarを使用しています。