J'ai un problème avec mon JAXB. J'ai une méthode avec @XmlAnyAttribute (sur mon getter) mais cela ne semble pas fonctionner avec le setter (en utilisant JAXB RI si c'est important).Bug avec @XmlAnyAttribute et méthodes? (en utilisant JAXB RI)
Code simplifié:
@XmlRootElement(name = "element")
@XmlAccessorType(value = XmlAccessType.PUBLIC_MEMBER)
public class Element
{
private Map<QName, String> convertedAttributes = new HashMap<QName, String>();
private List<Attribute> attributes = new ArrayList<Attribute>();
@XmlAnyAttribute
public Map<QName, String> getConvertedAttributes() throws Exception
{
if (attributes != null)
{
return new AttributeMapAdapter().marshal(attributes);
}
return new HashMap<QName, String>();
}
public void setConvertedAttributes(Map<QName, String> convertedAttributes)
{
this.convertedAttributes = convertedAttributes;
}
@XmlTransient
public List<Attribute> getAttributes()
{
return attributes;
}
public void setAttributes(List<Attribute> attributes)
{
this.attributes = attributes;
}
}
Ce grand travail pour permettre le rassemblement, et je reçois la sortie que je veux. Mais quand j'essaye de le démasquer, aucune valeur n'est envoyée au setter.
J'ai essayé de déplacer l'annotation @XmlAnyAttribute dans le champ, et cela fonctionne bien (mais je ne peux pas faire l'adaptation dans le getter).
Cela ressemble un peu à un bug, mais je ne suis pas sûr. Des idées? J'utilise Java 1.6 sur Mac OS X (10.7.2)
Je peux fournir plus de code si nécessaire. – mortenoh