JAXBに問題があります。 @XmlAnyAttribute(getter上)のメソッドがありますが、setter(JAXB RIを使用する場合は問題ありません)で動作しないようです。@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アノテーションを移動しようとしましたが、正常に動作しますが、ゲッタでアダプテーションを実行できません。
バグのような感じですが、わかりません。何か案は?私はMac OS X(10.7.2)でJava 1.6を使用しています
私は必要に応じてさらにコードを提供することができます。 – mortenoh