オブジェクトに変換したい XML オブジェクトがありますが、XStream でそれを行うのに問題があります。問題は、「RESULT」タグが異なる API サービスとは異なるため、異なるクラスにエイリアスを付ける方法がわからないことです。以下の例は、LOGIN サービスの例です。Envelope/Body/RESULT/ は同じですが、その中に異なる属性を持つ別のサービス (ログアウトなど) があるかもしれません。Envelope と Body を活用して冗長なコードを削減する方法がわかりません。
<Envelope>
<Body>
<RESULT>
<SUCCESS>true</SUCCESS>
<SESSIONID>1320948a32098</SESSIONID>
<ORGANIZATION_ID>1</ORGANIZATION_ID>
</RESULT>
</Body>
</Envelope>
現在、EnvelopeResponse、BodyResponse、および ResultResponse クラスのクラスを作成していますが、他のすべてのクラスを拡張したいですか? それはそれについて行く方法ですか?つまり、私の LoginResponse クラスは、LogoutResponse と同じように ResultResponse.class から拡張されています。
私は試した
xStream = new Xstream();
xStream.alias("Envelope", EnvelopeResponse.class);
xStream.alias("Body", BodyResponse.class);
xStream.alias("RESULT", LoginResponse.class); //Dynamic based on what API I'd like in the RESULT
助けてください。