我不知道這是否可能在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