2012-09-18 17 views
6

El uso de JAXB permite garantizar que los valores nulos no se agrupen como() elementos vacíos. Por ejemplojaxb marshalling omitir elementos vacíos

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

actualmente si uno de los elementos de teléfono es nula I Get

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

Quiero que la siguiente salida

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

Respuesta

4

valores nulos no se calculan como elemento vacío por defecto.
valores Sólo vacías son formateados como elemento vacío

En su ejemplo está utilizando colección con vacío Phone object elemento. Tiene dos elementos en la lista: empty Phone (todos los campos son null) y Phone object con campos no nulos.
Así,

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

serán movilizados a

<contact/> 

pero

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

serán movilizados a

<contact> 
    <Phone/> 
    <Phone/> 
</contact> 
Cuestiones relacionadas