Java jaxb当xsi:nil=true时,如果存在任何子元素,它仍将显示
我有下面的xml输出,当父元素具有xsi:nil=true属性时,即使子元素为nillable=true,我们如何隐藏子元素(endDate) //XML输出Java jaxb当xsi:nil=true时,如果存在任何子元素,它仍将显示,java,parsing,jaxb,marshalling,jaxb2,Java,Parsing,Jaxb,Marshalling,Jaxb2,我有下面的xml输出,当父元素具有xsi:nil=true属性时,即使子元素为nillable=true,我们如何隐藏子元素(endDate) //XML输出 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <snapshots xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:ns3="ws.mycompany.com"; mask="PAC"> &
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<snapshots xmlns:xsi="w3.org/2001/XMLSchema-instance"; xmlns:ns3="ws.mycompany.com"; mask="PAC">
<Offers>
<Offer xsi:type="wsMarketingOfferOP" entityId="1234" xsi:nil="true">
<endDate xsi:nil="true"/>
</Offer>
</Offers>
</snapshots>
JAXB正在输出那个XML吗?如果是这样,您如何填充对象模型以获得该输出?我没有看到
xmlns:xsi
namespace delaration有更多的XML文档没有显示吗?很抱歉,这里是完整的输出2014-02-23T00:00:00-05:00您的JAXB类看起来像什么?嗨,Blaise,请查看我的代码更新。您能否提供一些演示代码,说明如何填充对象模型以将其作为编组输出?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "OffersElement"})
@XmlRootElement(name = "snapshots")
public class Snapshots<T extends Offer>
{
@XmlElement(name = "Offers")
private OffersElement<T> OffersElement;
public OffersElement<T> getOffersElement() {
return offersElement;
}
public void setOffersElement(OffersElement<T> offersElement) {
this.offersElement = offersElement;
}
}
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "Offer")
public class OffersElement<T> {
@XmlElementRef(name="Offer")
List<JAXBElement<T>> listOffers;
public List<JAXBElement<T>> getListOffers() {
return listOffers;
}
public void setListMarketOffers(List<JAXBElement<T>> listOffers) {
this.listOffers = listOffers;
}
}
@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;
}
}
}