我有以下结构:
<data name="piece-shipment" error-status="0"
product-name="test" name="Hook" street="Freeway 21" city="Bumphill"/>
以及以下jaxb注释模型..
@XmlRootElement(name = "data")
@XmlAccessorType(XmlAccessType.FIELD)
public class PieceShipment {
/**
* The field describes, of the parcel is returned to the origin sender
*/
@XmlAttribute(name = "product-name")
private String productName;
/**
* recipient information
*/
@XmlJavaTypeAdapter(RecipientAdapter.class)
private Recipient recipient;
.....
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Recipient {
private String name;
private String street;
private String city;
...
}
如何将PieceShipment的关系映射到收件人?它们处于相同的元素级别。
我尝试使用适配器,但不会调用适配器。
答案 0 :(得分:1)
使用标准JAXB (JSR-222)映射元数据,您无法将Recipient
中的属性映射到PieceShipment
映射到的同一父元素。
如果您使用EclipseLink MOXy作为JAXB提供商,那么您可以使用我们的@XmlPath
扩展程序来完成此任务:
@XmlPath(".")
private Recipient recipient;
了解更多信息
我在博客上写了更多关于MOXy XPath映射扩展的内容: