2
ポリモーフィッククラスの結果であるxmlを逆シリアル化する必要があります。 以下は2つの例です。Simple XMLを使用してポリモーフィッククラスを逆シリアル化する
例1:
<Root>
<TYPE>TYPE1</TYPE>
<Data>
<data1>fdfdf</data1>
<data2>dfdfdf<data2>
</Data>
</Root>
例2:
<Root>
<TYPE>TYPE2</TYPE>
<Data>
<data3>fdfdf</data1>
<data4>dfdfdf<data2>
</Data>
</Root>
マイJavaクラス構造は、XMLでRoot.TYPEがデータかどうかを決定するために使用することができる
class Root {
String TYPE ;
Data data;
}
class Data {
}
class DataType1 extends Data{
data1;
data2;
}
class DataType2 extends Data{
data3;
data4;
}
ありますxmlはDataType1またはDataType2のためのものです。 XMLではタグの「クラス」属性は提供されません。
シンプルなxmlから様々なStrategyクラスを試していましたが、うまく動作しませんでした。
XMLを正しく解析して、デシリアライズ時にDataType1またはDataType2の適切なオブジェクトを作成できるように、どのような戦略やその他のクラスを使用すべきか提案はありますか? @alykhalidとして
おかげで、
Tushar
単純にXMLのtypeの値を読み、switch文を使用することについて考えましたか? – alykhalid
私の意図は、XMLの解析が完了したときにDataType1クラスまたはDataType2クラスの正しいオブジェクトを生成することです。現在のクラス構造でxmlを解析しようとすると、エラーメッセージが表示されます "org.simpleframework.xml.core.ElementException:要素 'data1'がcom.test.xml.Data行の1行目で一致しません" – Tushar