У меня есть следующая структура:
<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 к Получателю? Они находятся на одном уровне элементов.
Я попытался использовать адаптеры, но адаптер не вызван.
Используя стандартные метаданные сопоставления JAXB (JSR-222), вы не можете иметь свойства от Recipient
сопоставленные с одним и тем же родительским элементом, PieceShipment
которого сопоставляется PieceShipment
.
Если вы используете EclipseLink MOXy в качестве поставщика JAXB, вы можете использовать наше расширение @XmlPath
для выполнения этого:
@XmlPath(".")
private Recipient recipient;
Чтобы получить больше информации
Я написал больше о расширении MOXy XPath в моем блоге: