【发布时间】:2017-11-27 15:42:43
【问题描述】:
我使用xsd2java 从 xsd 自动生成了 java 类。我不能修改 xsd 和 java 类。
问题:在一个类中生成了List<JAXBElement> 的元素。
如果我现在添加任何JAXBElement,jackson xml marshaller 将不会显示正确的 xml 元素,但JAXBElement 的属性将被序列化。比如declaredType、scope等。见下文。
@XmlRootElement(name = "bookingRequest")
public class AutogeneratedReq {
private List<JAXBElement<?>> someElements;
}
用法:
AutogeneratedReq req = new AutogeneratedReq();
JAXBElement<?> person = new ObjectFactory().createPerson();
req.getSomeElements().add(person);
结果:
<someElements>
<JAXBElement>
<name>person</name>
<declaredType>net.some.company.Person</declaredType>
<scope>net.some.company</scope><value someattribues="test"/>
<nil>false</nil>
<globalScope>false</globalScope>
<typeSubstituted>false</typeSubstituted>
</JAXBElement>
</someElements>
问题:如何告诉jackson 或spring-mvc 生成正确的xml,而不是JAXBElement 显式序列化?
【问题讨论】:
标签: java spring spring-mvc jackson jaxbelement