2012-09-18 9 views
6

Użycie JAXB umożliwia upewnienie się, że wartości puste nie są uporządkowane jako() puste elementy. Na przykładJastrząbowanie zestawień wolnych elementów

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

chwili, gdy jeden z elementem telefonu jest null ja dostać

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

chcę następujący wynik

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

Odpowiedz

4

wartości Null nie są marshaled jako element pusty domyślnie.
Tylko puste wartości są sortowane jako pusty element.

W twoim przykładzie używasz kolekcji z pustym elementem Phone object. Masz dwa elementy na liście: empty Phone (wszystkie pola są null) i Phone object z polami niezerowymi.
Więc

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

będą przetaczane do

<contact/> 

ale

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

będą przetaczane do

<contact> 
    <Phone/> 
    <Phone/> 
</contact> 
Powiązane problemy