并非所有元素都将由JAXB编组
不幸的是,在编组之后,一些元素是空的,并且希望被序列化 编组:并非所有元素都将由JAXB编组,jaxb,marshalling,Jaxb,Marshalling,不幸的是,在编组之后,一些元素是空的,并且希望被序列化 编组: public static <T> String marschallObjectToXml(final Class<T> clazz, T object) { try { JAXBContext context = JAXBContext.newInstance(clazz); Marshaller marshaller = context.createMarshall
public static <T> String marschallObjectToXml(final Class<T> clazz, T object) {
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, UTF_8);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
QName qName = new QName(clazz.getPackage().getName(), clazz.getSimpleName());
Object objectToMarshal = new JAXBElement<T>(qName, clazz, object);
// object to XML
StringWriter sw = new StringWriter();
marshaller.marshal(objectToMarshal, sw);
return sw.toString();
} catch (JAXBException e) {
throw new RuntimeException(FEHLER_BEIM_PARSEN + e.getMessage(), e);
}
}
目标2:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"person"})
public static class Personen {
@XmlElement(name = "Person", required = true)
protected List<PersonTyp> person;
public List<PersonTyp> getPerson() {
if (person == null) {
person = new ArrayList<PersonTyp>();
}
return this.person;
}
// ...
如果我在调试模式下启动程序,我可以看到列表:T Object-->personundbeziehungen->Personen->Personen->Person将被一个对象填充,并且它不是空的。但在序列化之后,我看到:
<personenUndBeziehungen>
<kinder/>
<personen/> <!-- THIS SHOULD NOT BE EMPTY. IS EMPTY??? -->
</personenUndBeziehungen>
有什么想法吗!?
提前多谢!
PS:Java1.7
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "personTyp", propOrder = {"lfdID", "kundennummern", "typ", "vertriebsmassnahmen", "liquiditaet",
"risikobereitschaft", "kenntnisseUndErfahrungen", "bankmitarbeiter", "mitglied", "natuerlichePerson",
"juristischePerson", "betreuung", "beziehungen", "vermoegenswerte"})
public class PersonTyp {
@XmlElement(name = "LfdID", required = true)
@XmlJavaTypeAdapter(NormalizedStringAdapter.class)
@XmlSchemaType(name = "normalizedString")
protected String lfdID;
@XmlElement(name = "Kundennummern", required = true)
protected PersonTyp.Kundennummern kundennummern;
@XmlElement(name = "Typ", required = true)
@XmlSchemaType(name = "normalizedString")
// ...
<personenUndBeziehungen>
<kinder/>
<personen/> <!-- THIS SHOULD NOT BE EMPTY. IS EMPTY??? -->
</personenUndBeziehungen>