Ich habe automatisch generierte Java-Klassen von xsd mit xsd2java
. Ich kann weder xsd noch die Java-Klassen ändern.Wie JAXBElement in Jackson XML-Serialisierung zu verwenden?
Problem: in einer Klasse wird ein Element List<JAXBElement>
generiert. Wenn ich jetzt eine hinzufügen, zeigt die jackson
XML-Marshaller nicht das richtige XML-Element, sondern die Eigenschaften der JAXBElement
serialisiert. Wie declaredType
, scope
, usw. Siehe unten.
@XmlRootElement(name = "bookingRequest")
public class AutogeneratedReq {
private List<JAXBElement<?>> someElements;
}
Verbrauch:
AutogeneratedReq req = new AutogeneratedReq();
JAXBElement<?> person = new ObjectFactory().createPerson();
req.getSomeElements().add(person);
Ergebnis:
<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>
Frage: Wie kann ich feststellen, jackson
oder spring-mvc
richtige XML zu generieren, und nicht JAXBElement
Serialisierung explizit?