クラス属性はホットな XStream トピックです: 誰もそれを望んでいません。
それを取り除く適切な方法は、カスタム コンバーターを作成することです (他の提案された微調整は、マーシャリング時にのみ機能し、アンマーシャリング時には機能しません)。良い実例はこちらです。
残念ながら、別の方法で動作する Converter が必要です。class 属性の値を、その属性を実際に含む要素の名前として使用したいのです。たとえば、代わりに
<codecData class="videoCodec">
...
</codecData>
と
<codecData class="audioCodec">
...
</codecData>
私が欲しい
<videoCodec>
...
</videoCodec>
と
<audioCodec>
...
</audioCodec>
これを行う正しい方法は何ですか?そのような Converter を作成する試みは失敗しました。
私が持っていると仮定します
public class MediumData {
public CodecData codecData;
public String otherInfo;
}
public abstract class CodecData {
public String name;
}
public class VideoCodec extends CodecData {
public String videoInfo;
}
public class AudioCodec extends CodecData {
public String audioInfo;
}
ありがとうございました。