2
JAXBアノテーションを持つエンティティがいくつかあります。そのため、「着信」XMLをpojoに非マーシャルすることができます。 pojosをXMLにマーシャリングする必要がありますが、着信XMLとは異なる形式にする必要があります。これを行う最善の方法は何ですか?複数のJAXBアノテーションを複数のXMLにマーシャリング/アンマーシャリングすることはできますか?
JAXBアノテーションを持つエンティティがいくつかあります。そのため、「着信」XMLをpojoに非マーシャルすることができます。 pojosをXMLにマーシャリングする必要がありますが、着信XMLとは異なる形式にする必要があります。これを行う最善の方法は何ですか?複数のJAXBアノテーションを複数のXMLにマーシャリング/アンマーシャリングすることはできますか?
私の解決策は、JAXBオブジェクトに追加の「バージョン」フィールドを使用して、複数のバージョンのバインディングを区別することです。通常は、その型としてenumを使用します。すなわち、 enum Version {V1、V2、...};
だから、特定のXML要素フィールドに、私は1つだけ必要な列挙値にバージョン値を設定する必要があり、JAXBはの世話をする、マーシャリングの前に
@XmlElement
public String getField() {
if (version == Version.V1) {
return field;
} else if (version == Version.V2) {
return null; // hidden
}
}
としてのgetField()メソッドを定義します残り。
[複数のクライアントで異なるJAXBアノテーションが必要]の複製可能性(http://stackoverflow.com/questions/8838286/multiple-clients-require-different-jaxb-annotations) – dogbane