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