2012-09-18 21 views
6

Utilizzando JAXB è possibile garantire che i valori nulli non vengano inseriti come() elementi vuoti. Per esempiojaxb marshalling salta elementi vuoti

public class Contacts { 
    @XmlElement(name = "Phone") 
    protected List<Phone> phone; 
    } 

attualmente se uno degli elementi di telefono è nullo ottengo

<contact> 
     </phone> 
     <phone> 
       <areacode>919</areacode> 
       <phonenumber>6785432</phonenumber> 
     </phone> 
    </contact> 

voglio il seguente output

<contact> 
      <phone> 
        <areacode>919</areacode> 
        <phonenumber>6785432</phonenumber> 
      </phone> 
    </contact> 

risposta

4

valori nulli non vengono marshalling come elemento vuoto per impostazione predefinita.
Solo i valori vuoti vengono inviati come elemento vuoto

Nell'esempio si utilizza la raccolta con elemento Phone object vuoto. Sono presenti due elementi nell'elenco: empty Phone (tutti i campi sono null) e Phone object con campi non nulli.
Così,

public class Contacts { 
    @XmlElement(name = "Phone") 
    protected List<Phone> phone = Arrays.asList(new Phone[]{null, null, null}); 
} 

saranno radunate per

<contact/> 

ma

public class Contacts { 
    @XmlElement(name = "Phone") 
    protected List<Phone> phone = Arrays.asList(new Phone[]{new Phone(), new Phone(), null}); 
} 

saranno radunate per

<contact> 
    <Phone/> 
    <Phone/> 
</contact> 
Problemi correlati