用于处理子元素的JaxB方法

时间:2015-05-28 17:15:45

标签: java xml jaxb

目前我的xml看起来像这样:

<Person>
  <ID>e5b160d07</ID>
  <Source>
    <Name>HardImpact</Name>
  </Source>
</Person>

我的JaxB看起来像:

@XmlRootElement(name="Person")
public class PersonDTO {
  private String id;
  private Source source;

  @XmlElement(name="ID")
  public void setId(String id) {...}


  @XmlElement(name="Source")
  public void setSource(Source source) {...}

}

@XmlRootElement(name="Source")
class Source {
  private String name;

  @XmlElement(name="Name", namespace=DTOConstants.cmnv3)
  public void setName(String name) {...}
}

有没有更好的方法来使用注释来消除类Source的需要?修改传入的XML不是一种选择。

1 个答案:

答案 0 :(得分:1)

AFAIK每个父标记应该是一个将子标记作为属性保存的实体。

因此,您的方法是一种干净,通用且首选的实现方法。没有自动创建Source类的标签

但是

您可以使用@XMLAnyElementSource标记映射到对象类型。 Refer this example for more info on this tag.