tags:

views:

28

answers:

1

I wonder if this is possible in jaxb2. I have a xml that can be either < element > or < element2 > it will never apear at the some time. They are both of type String and I want it to map to the same property in my java class. Is there a way in jaxb2 to configure that?

Thanks Charlie

A: 

What would happen if you tried to serialize back to XML? Which element name would be used?

Assuming you only need to deserialize from XML to Java, then you can do this by annotating your setter methods instead of your fields:

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;
   }
}

You might also have to add getA() and getB() methods in order for JAXB to recognise the setters properly.

skaffman
Yea in my situation I only ever unmarshall the message to Object. However I do want it to map to the same get property so i dont have to to a if(getA == null) getB; Tho I have found a answer to this now using @XmlElements({ @XmlElement(name = "element"),@XmlElement(name = "element2")}) Thanks for the effort tho.