J'ai un problème lors de l'utilisation de Jaxb2Marshaller pour les attributs XML unmarshalling (de types primitifs). Voici l'exemple:Jaxb2Marshaller et attributs
<?xml version="1.0" encoding="UTF-8"?>
<request xmlns="...">
<items>
<item id="1"/>
<item id="2"/>
<item id="3"/>
</items>
</request>
Et la classe d'entité est:...
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlRootElement(name = "request", namespace = "...")
@XmlType(name = "Request", namespace = "...")
public class Request {
private List<Item> _items;
@XmlElementWrapper(name = "items", namespace = "...")
@XmlElement(name = "item", namespace = "...")
public List<Item> getItems() {
return _items;
}
public void setItems(List<Item> items) {
_items= items;
}
@XmlType(name = "Item", namespace = "...")
public static class Item {
private Long _id;
@XmlAttribute(name = "id", namespace = "...")
public Long getId() {
return _id;
}
public void setId(Long id) {
_id = id;
}
}
}
Après unmarshalling je request.getItems() iterator() suivant() getId() == null alors que cela devrait être 1. Si j'utilise des éléments imbriqués à la place des attributs, tout fonctionne correctement. Comment cela pourrait-il être réparé? Je ne veux pas écrire un lot de XmlAdapters pour tous les types Java primitifs.
Merci. Il a résolu le problème. – Vladimir