Java JAXB marshall类只有一个属性,没有中间元素
我有以下课程:Java JAXB marshall类只有一个属性,没有中间元素,java,xml,jaxb,marshalling,Java,Xml,Jaxb,Marshalling,我有以下课程: class A { Map<String, String> mapping; public A() {...} private Map<String, String> getMapping() {...}; private void setMapping(Map<String, String> mapping) { ... }; } JAXB甚至没有调用适配器代码 我的第二个尝试是使用另一个适配器,AAdapter应该直接
class A {
Map<String, String> mapping;
public A() {...}
private Map<String, String> getMapping() {...};
private void setMapping(Map<String, String> mapping) { ... };
}
JAXB甚至没有调用适配器代码
我的第二个尝试是使用另一个适配器,AAdapter应该直接处理对象,我认为它可以通过以下方式配置:
<Class name="A">
<XmlRootElement name="a"/>
<XmlJavaTypeAdapter value="AAdapter"/>
</Class>
如果调用了AAdapter,它应该直接生成entry元素
我看到了多篇关于如何删除子属性的中间标记的相关文章,但它们似乎与我的问题不同,因为这里我想删除直接属性的元素
那么,如何调用属性的适配器而不将其结果放入元素中呢?或者如何直接在类上调用适配器进行序列化
提前感谢您的回答
编辑:基于此,设计上似乎不可能,但如果有人有解决办法,那就太好了
<Class name="A">
<XmlRootElement name="a"/>
<Method name="getMapping">
<XmlElement name="mapping"/>
<XmlJavaTypeAdapter value="MappingAdapter"/>
</XmlMethod>
</Class>
<a>
<mapping>
<entry key="test" value="a"/>
<entry key="mdx.foo" value="bar"/>
</mapping>
</a>
<a/>
<Class name="A">
<XmlRootElement name="a"/>
<XmlJavaTypeAdapter value="AAdapter"/>
</Class>
<a/>