我不知道这是否可能在jaxb2。我有一个xml,它可以是< element>或< element2>它在某个时候永远不会出现。他们都是String类型,我希望它映射到我的java类中的同一个属性。有没有在jaxb2配置的方法?Jaxb 2将不同的元素映射到相同的属性
感谢 查理
我不知道这是否可能在jaxb2。我有一个xml,它可以是< element>或< element2>它在某个时候永远不会出现。他们都是String类型,我希望它映射到我的java类中的同一个属性。有没有在jaxb2配置的方法?Jaxb 2将不同的元素映射到相同的属性
感谢 查理
如果你试图序列化回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<SubjectVO> commands;
其中:
public interface SubjectVO {}
public class CommandVO implements SubjectVO {}
public class ScriptVO implements SubjectVO {}
是啊,在我的情况我只解组消息对象。然而,我确实希望它映射到相同的get属性,所以我不必去if(getA == null)getB;我现在已经使用@XmlElements({@XmlElement(name =“element”), @XmlElement(name =“element2”)})找到了对此的答案 感谢您的努力。 – charleetm 2010-07-01 10:06:31