jaxb当xsi:nil = true如果存在任何子元素,它仍然显示

我有下面的xml输出,当父元素具有属性xsi时,我们如何隐藏子元素(endDate):nil = true即使子元素是nillable = true?

// XML输出

        

//快照类

  @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "OffersElement"}) @XmlRootElement(name = "snapshots") public class Snapshots { @XmlElement(name = "Offers") private OffersElement OffersElement; public OffersElement getOffersElement() { return offersElement; } public void setOffersElement(OffersElement offersElement) { this.offersElement = offersElement; } } 

// OffersElement类

  @XmlAccessorType(XmlAccessType.NONE) @XmlRootElement(name = "Offer") public class OffersElement { @XmlElementRef(name="Offer") List<JAXBElement> listOffers; public List<JAXBElement> getListOffers() { return listOffers; } public void setListMarketOffers(List<JAXBElement> listOffers) { this.listOffers = listOffers; } } 

// WSOffer类,其中提供了marshelling,endate nillable设置为true,以便它出现在null的位置。

  @XmlRootElement(name = "Offer") @XmlType(name = "", propOrder = { "endDate" }) @XmlAccessorType(XmlAccessType.FIELD) public class WSOffer { @XmlElement(nillable = true) protected WSOffer.EndDate endDate; public WSOffer.EndDate getEndDate() { return endDate; } public void setEndDate(WSOffer.EndDate value) { this.endDate = value; } @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "value" }) public static class EndDate { @XmlValue protected Date value; public Date getValue() { return value; } public void setValue(Date value) { this.value = value; } } }