2012-09-18 17 views
6

जेएक्सबी का उपयोग करना यह सुनिश्चित करना संभव है कि शून्य मानों को खाली तत्वों के रूप में चिह्नित नहीं किया जा सके। उदाहरण के लिएjaxb marshalling खाली तत्वों को छोड़ें

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

वर्तमान में अगर फोन तत्व के एक रिक्त है मैं

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

मैं निम्नलिखित उत्पादन

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

उत्तर

4

अशक्त मान खाली तत्व के रूप में मार्शल नहीं कर रहे हैं चाहते डिफ़ॉल्ट रूप से
केवल खाली मान खाली तत्व

अपने उदाहरण आप खाली Phone object तत्व के साथ संग्रह उपयोग कर रहे हैं के रूप में मार्शल कर रहे हैं। आपके पास सूची में दो तत्व हैं: empty Phone (सभी फ़ील्ड null) और Phone object शून्य फ़ील्ड के साथ नहीं हैं।
तो,

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

<contact/> 

लेकिन

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

को मार्शल की जाएगी

<contact> 
    <Phone/> 
    <Phone/> 
</contact> 
को मार्शल की जाएगी
संबंधित मुद्दे