使用JAXB更改MapAdapters默认元素输出名称

时间:2012-11-15 16:44:00

标签: java xml serialization jaxb

我创建了以下类来将Map<String, DynamicTarget>映射到DynamicTarget[]

class DynamicTargetMapAdapter extends XmlAdapter<DynamicTarget[], Map<String, DynamicTarget>> {

    public DynamicTarget[] marshal(Map<String, DynamicTarget> arg0) throws Exception {
        DynamicTarget[] mapElements = new DynamicTarget[arg0.size()];
        int i = 0;
        for (DynamicTarget d : arg0.values()) mapElements[i++] = d;
        return mapElements;
    }

    public Map<String, DynamicTarget> unmarshal(DynamicTarget[] arg0) throws Exception {
        Map<String, DynamicTarget> r = new HashMap<String, DynamicTarget>();
        for (DynamicTarget d : arg0) r.put(d.getName(), d);
        return r;
    }

}

结果如下:

<dynamicTargets>
    <item>
        ...
    </item>
    <item>
        ...
    </item>
    <item>
        ...
    </item>
</dynamicTargets>

但这是我想要实现的目标:

<dynamicTargets>
    <target>
        ...
    </target>
    <target>
        ...
    </target>
    <target>
        ...
    </target>
</dynamicTargets>

我需要做些什么来获得所需的输出?

0 个答案:

没有答案