我有一个建议,但它还没有准备好运行(见下文)。然而,也许还有另一个更好的解决方案......
类别项目
持有您的所有信息。
@Root(name="Item")
public class Item
{
@Element(name="ID", required=true)
private int id;
@Element(name="language", required=true)
private String language;
@Element(name="price", required=true)
private int price;
// ...
}
班级成绩
构建周围的一切Item
。顺便提一句。您不必在这里使用内部类。
@Namespace(prefix="soap", reference="http://schemas.xmlsoap.org/soap/envelope/")
@Root(name="Envelope")
public class Result
{
@Namespace(prefix="soap")
@Element(name="Body")
private SoapBody body;
// ...
// -----------------------------------------------------------------
// -- Some inner classes, constructing the elements as in you xml --
// -----------------------------------------------------------------
@Namespace(prefix="soap")
@Root(name="Body")
static class SoapBody
{
@Element(name="Response")
private Response response;
// ...
}
@Root(name="Response")
static class Response
{
@ElementList(name="Result", required=true)
private List<Item> result;
// ...
}
}
(示例)如何使用此代码
Writing
File f = ...
Serializer ser = new Persister();
Result r = new Result();
ser.write(r, f);
Reading
File f = ...
Serializer ser = new Persister();
Result r = ser.read(Result.class, f);
现在...有一个问题导致该示例无法运行:<language />
这个空元素让 SimpleXML 抛出一个ValueRequiredException
.