并非所有元素都将由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>