У меня проблема с моим JAXB. У меня есть метод с @XmlAnyAttribute (на моем геттере), но, похоже, он не работает с сеттером (используя JAXB RI, если это важно).
Упрощенный код:
@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;
}
}
Эта работа отлично подходит для сортировки, и я получаю вывод, который хочу. Но когда я пытаюсь разобрать его, никакие значения не отправляются установщику.
Я попытался переместить аннотацию @XmlAnyAttribute в поле, и она работает нормально (но тогда я не могу выполнить адаптацию в геттере).
Это похоже на ошибку, но я не уверен. Есть идеи? Я использую Java 1.6 на Mac OS X (10.7.2)