title: Map XML to Java with multiple option for tag names
body: <p>I need to parse an XML file then map it to a Java object. So far, I do it with an annotated POJO : </p>
  
  <pre><code>@XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = {"title", "id", "eventList"})
  @XmlRootElement(name = "MyClass")
  public class MyClass {
  
    @XmlElement(name = "Title", required = true)
    protected String title;
  
    @XmlElement(name = "Id", required = false)
    protected String id;
  
    @XmlElement(name = "EventList", required = true)
    protected EventList eventList;
  }
  </code></pre>
  
  <p>Then unmarshall it with JAXB : </p>
  
  <pre><code>MyClass myObj = (MyClass) unmarshaller.unmarshal(new StreamSource(fis))
  </code></pre>
  
  <p><strong>Problem</strong> : Sometimes, my customer send files with slightly different tag names (for example, <code>Eventlist</code> instead of <code>EventList</code>)</p>
  
  <p>Is there an option to allow both names for a tag? Up to now, I solve this problem by giving 2 attributes in the POJO : </p>
  
  <pre><code>@XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = "", propOrder = {"title", "id", "eventList"})
  @XmlRootElement(name = "MyClass")
  public class MyClass {
  
    @XmlElement(name = "Title", required = true)
    protected String title;
  
    @XmlElement(name = "Id", required = false)
    protected String id;
  
    @XmlElement(name = "EventList", required = false)
    protected EventList eventList;
  
    @XmlElement(name = "Eventlist", required = false)
    protected EventList eventlist;
  }
  </code></pre>
  
  <p>This is hard to maintain and forbids me to use the 'required' attribute. Do you have a better solution?</p>