2013-03-29 3 views
5

का उपयोग करते समय मैं सरल-एक्सएमएल-फ्रेमवर्क का उपयोग करने की कोशिश कर रहा हूं।ValueRequired अपवाद सरल-एक्सएमएल-फ्रेमवर्क

Company.java:

package com.example.xmlparsing; 

import java.util.List; 

import org.simpleframework.xml.ElementList; 
import org.simpleframework.xml.Root; 

@Root 
public class Company { 

@ElementList 
public List<Emp> Employees; 

} 

Emp

<?xml version="1.0" encoding="utf-8"?> 
<Company> 
<Emp> 
    <Name>Venkat</Name> 
    <ID>661511</ID> 
</Emp> 
<Emp> 
    <Name>Shiv</Name> 
    <ID>661311</ID> 
</Emp> 
</Company> 

मेरे एनोटेशन कक्षाएं इस प्रकार हैं: लेकिन मैं ValueRequiredException

org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=false, name=, required=true, type=void) on field 'Employees' public java.util.List com.example.xmlparsing.Company.Employees for class com.example.xmlparsing.Company at line 2 

मेरे एक्सएमएल फ़ाइल है निम्न सामग्री हो रही है .java:

package com.example.xmlparsing; 

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Root; 
import org.simpleframework.xml.Text; 

@Element(name="Emp") 
public class Emp { 

@Element 
public String Name; 

@Element 
public String ID; 


} 

समस्या क्या हो सकती है? इसे कैसे जोड़ेंगे?

उत्तर

9

दो बातें अपने कोड में गलत कर रहे हैं:

सबसे पहले, आप Emp वर्ग में @Root() बजाय @Element की जरूरत है:,

@Root(name="Emp") 
public class Emp { 

@Element 
public String Name; 

@Element 
public String ID; 


} 

दूसरा यदि आप एक सूची का उपयोग इस तरह से:

@Root 
public class Company { 

@ElementList 
public List<Emp> Employees; 

} 

इसे एक और एक्सएमएल टैग में लपेटा गया।
आप या तो अपने xml को बदल सकते हैं या बस @ElementList(inline = true) का उपयोग कर सकते हैं।

संबंधित मुद्दे