我有XML如下:JAXB Unmarshalling多态对象 - 集合?
<Temp NAME="bobo">
<elem1 />
<elem2>
<Attri1 ID="123" />
</elem2>
<elem3>
<Attri2 MOM="9" ID="7" SSS="2" />
</elem3>
<elem3>
<Attri3 MOM="44" ID="4" DSC="First Test"/>
</elem3>
</Temp>
我使用注释映射到Java类:
@XmlRootElement(name = "Temp")
public class Temp {
@XmlElements({
@XmlElement(name="elem1",type=elem.class),
@XmlElement(name="elem2",type=elem.class)})
public ArrayList<elem> elms;
}
public class elem {
...
}
public class elem1 extends elem{
...
}
public class elem2 extends elem{
...
}
public class elem3 extends elem{
...
}
在每个元素可以有许多属性。
有人可以帮助我如何正确注释java类吗?
让我磨一下我的问题。 我需要从这个XML构建一个java对象,这些对象将有三个参数:第一个元素的名称(p1),子元素的名称(p2),地图值(p3)。
上面的XML将生成4个的java对象ELEM如下:
所有Java对象类型是ELEM!
OBJ1:
p1 = elem1
p2 = null
p3 = null
OBJ2:
p1 = elem2
p2 = Attri1
p3 = map: key value
(ID, 123)
OBJ3:
p1 = elem3
p2 = Attri2
p3 = map: key value
(MOM, 9)
(ID, 7)
(SSS, 2)
OBJ4:
p1 = elem3
p2 = Attri3
p3 = map: key value
(MOM, 44)
(ID, 4)
(DSC, First Test)
提前感谢! 鲍里斯。
好吧,那么当你尝试你有什么会发生什么? – skaffman
事情是我现在没有如何正确地处理属性 例如在elem2中有属性名'attri1'它也可以是一些其他属性,需要现在属性的名称,然后它的值.. 每个属性都是不同的对象。 – boris