使用Simple-XML-Framework时的ValueRequired异常

时间:2013-03-29 12:21:44

标签: android simple-framework

我正在尝试使用Simple-XML-framework。但我得到了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

我的XML文件包含以下内容:

<?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>

我的注释课程如下:

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.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;


}

可能是什么问题?如何解决?

1 个答案:

答案 0 :(得分:9)

您的代码中存在两个错误:

首先,@Root()班级需要@Element而不是Emp

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

@Element
public String Name;

@Element
public String ID;


}

其次,如果您使用这样的列表:

@Root
public class Company {

@ElementList
public List<Emp> Employees;

}

将其包装到另一个xml标签中 您可以更改您的xml 或只使用@ElementList(inline = true)