Java 使用简单XML反序列化多态类

Java 使用简单XML反序列化多态类,java,xml,xml-parsing,deserialization,Java,Xml,Xml Parsing,Deserialization,我需要反序列化xml,这是多态类的结果。 下面是两个例子 例1: <Root> <TYPE>TYPE1</TYPE> <Data> <data1>fdfdf</data1> <data2>dfdfdf<data2> </Data> </Root> xml中的Root.TYPE可用于确定xml中的数据是用于DataType1还是DataType2。X

我需要反序列化xml,这是多态类的结果。 下面是两个例子

例1:

<Root>
  <TYPE>TYPE1</TYPE>
  <Data>
    <data1>fdfdf</data1>
    <data2>dfdfdf<data2>
  </Data>
</Root>
xml中的Root.TYPE可用于确定xml中的数据是用于DataType1还是DataType2。XML不为标记提供任何“类”属性

我试着从简单的xml中创建各种类,但无法使其正常工作

您是否有任何建议,我应该使用什么策略或其他类,以便在反序列化期间正确解析xml并创建DataType1或DataType2的适当对象

谢谢


< Tushar >

< P> > AykalID在评论中说,你应该考虑使用简单的IF或Switter语句。

你是否想过简单地读取XML中的类型值并使用一个Switter语句。我的目的是在完成XML解析时生成类DATATYPE1或DATATYPE2的正确对象。当我试图用当前类结构解析xml时,我收到错误消息“org.simpleframework.xml.core.ElementException:元素'data1'在类com.test.xml.Data的第1行没有匹配项”
<Root>
  <TYPE>TYPE2</TYPE>
  <Data>
   <data3>fdfdf</data1>
  <data4>dfdfdf<data2>
  </Data>
</Root>
class Root {
 String  TYPE ;
 Data data;

}

class Data {
}

class DataType1 extends Data{
  data1;
  data2;
}

class DataType2 extends Data{
  data3;
  data4;
}