我想知道这是否可能在jaxb2中。我有一个xml可以是<元素>或者< element2>它永远不会在某个时候出现。它们都是String类型,我希望它映射到我的java类中的相同属性。在jaxb2中有没有办法配置它?
由于 查理
答案 0 :(得分:1)
如果您尝试序列化回XML,会发生什么?将使用哪个元素名称?
假设您只需要从XML反序列化为Java,那么您可以通过注释setter方法而不是字段来执行此操作:
public class Bean {
private String value;
@XmlElement(name="element")
public void setA(String value) {
this.value = value;
}
@XmlElement(name="element2")
public void setB(String value) {
this.value = value;
}
}
您可能还需要添加getA()
和getB()
方法,以便JAXB正确识别setter。
答案 1 :(得分:1)
你可以这样做:
@XmlElements({
@XmlElement(name="command", type=CommandVO.class, namespace="http://chains.projetox.com.br/"),
@XmlElement(name="script", type=ScriptVO.class, namespace="http://chains.projetox.com.br/")
})
private List<SubjectVO> commands;
其中:
public interface SubjectVO {}
public class CommandVO implements SubjectVO {}
public class ScriptVO implements SubjectVO {}