Jaxb 2将不同的元素映射到同一属性
我想知道这是否可能在jaxb2中。 我有一个可以是或的xml,它在某个时候永远不会出现。 它们都是String类型,我希望它映射到我的java类中的相同属性。 在jaxb2中有没有办法配置它?
谢谢查理
如果您尝试序列化回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。
你可以这样做:
@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 commands;
哪里:
public interface SubjectVO {} public class CommandVO implements SubjectVO {} public class ScriptVO implements SubjectVO {}