2

JAXB アノテーションを持つエンティティがいくつかあるため、「着信」XML を pojo にアンマーシャリングできます。ここで、pojo を XML にマーシャリングする必要がありますが、受信した xml とは異なる形式にマーシャリングする必要があります。これを行う最善の方法は何ですか?

4

1 に答える 1

0

私の解決策は、JAXBオブジェクトの追加の「バージョン」フィールドを使用して、バインディングの複数のバージョンを区別することです。通常、私はそのタイプとして列挙型を使用します。つまり、列挙型バージョン{V1、V2、...};

したがって、特定のXML要素フィールドについて、getField()メソッドを次のように定義します。

@XmlElement
public String getField() {
    if (version == Version.V1) {
        return field;
    } else if (version == Version.V2) {
        return null; // hidden
    }

}

マーシャリングの前に、バージョン値を目的の列挙値に設定するだけで、残りはJAXBが処理します。

于 2012-06-01T05:05:20.960 に答える