JAXB 2.0でXMLドキュメントを処理しています。ここでは、Javaオブジェクトにマップされた情報(私の例では「id」)が必要であり、でいくつかのビジネスロジックを実行しています。ここではすべてが正常に機能します。
ただし、これらのXMLドキュメントには、元のxml形式でデータベースに保存したい約500のノードのコレクションが常に保持されているため、文字列形式のXMLに関心があります。私の意見では、これらのノードをJavaオブジェクトにアンマーシャリングし、後で再度XMLにマーシャリングしてデータベースに保存することは意味がありません。
プロパティに注釈を付けて、XMLノード全体を文字列として保持する方法はありますか?そのクラスの現在のバージョンは次のとおりです。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Parent {
@XmlElement(name = "id")
public long id;
@XmlElement(name = "child", type = String.class)
@XmlElementWrapper(name = "children")
public List<String> children = new ArrayList<String>();
}
XMLドキュメントをアンマーシャリングした後、children.size()は正しい数のchildranを返しますが、それでもnullです。
XMLドキュメントは次のようになります。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<parent>
<id>45</id>
<children>
<child>
<name>Crash Dummy</name>
<age>21</age>
</child>
<child>
<name>Rockstar Programmer</name>
<age>12</age>
</child>
</children>
</parent>
すべてのヒントまたは可能な解決策を事前に感謝します。