我已经使用 .xsd 从 xsd 自动生成了 java 类xsd2java
。我既不能修改 xsd 也不能修改 java 类。
问题:在一个类List<JAXBElement>
中生成了一个元素。如果我现在添加 any 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
显式的序列化?