Java 使用JAXB更改MapAdapters默认元素输出名称
我创建了以下类来将Java 使用JAXB更改MapAdapters默认元素输出名称,java,xml,serialization,jaxb,Java,Xml,Serialization,Jaxb,我创建了以下类来将映射映射到动态目标[]: 类DynamicTargetMapAdapter扩展了XmlAdapter{ 公共DynamicTarget[]封送处理(映射arg0)引发异常{ DynamicTarget[]mapElements=新的DynamicTarget[arg0.size()]; int i=0; 对于(DynamicTarget d:arg0.values())mapElements[i++]=d; 返回映射元素; } 公共映射解组(DynamicTarget[]arg
映射
映射到动态目标[]
:
类DynamicTargetMapAdapter扩展了XmlAdapter{
公共DynamicTarget[]封送处理(映射arg0)引发异常{
DynamicTarget[]mapElements=新的DynamicTarget[arg0.size()];
int i=0;
对于(DynamicTarget d:arg0.values())mapElements[i++]=d;
返回映射元素;
}
公共映射解组(DynamicTarget[]arg0)引发异常{
Map r=新的HashMap();
for(DynamicTarget d:arg0)r.put(d.getName(),d);
返回r;
}
}
结果是:
<dynamicTargets>
<item>
...
</item>
<item>
...
</item>
<item>
...
</item>
</dynamicTargets>
...
...
...
但这正是我想要实现的:
<dynamicTargets>
<target>
...
</target>
<target>
...
</target>
<target>
...
</target>
</dynamicTargets>
...
...
...
我需要做什么才能获得所需的输出?尝试使用
@RootElement(name=“target”)
注释dynamicTargets
,并使用@xmlementref
注释dynamicTargets
属性。未经测试。