输入持久数据结构

时间:2012-11-26 21:28:04

标签: android web-services arraylist xml-serialization

我有一个Android应用程序,它读取XML文件并向用户提供一些信息。数据结构是一个简单的ArrayList。用户浏览列表,他们可能会进行更改,或者他们可能无法进行更改。当他们完成后,他们保存。

最终我们希望RDBMS上的数据,但他们可能在那个时刻没有数据连接,所以我需要坚持下去。即使他们确实有数据连接,我也可能会觉得我已经将数据结构序列化到SD卡。

因此,第一步是将其保持在二进制状态(它是一个非常小的数据对象)或将其序列化为XML,这是我最初的想法。这样,它就可以以xml格式上传到Web服务。

如果我将其序列化为XML,那么我可以阅读任何库/示例。我使用SAX解析它但是认为必须有类似简单的重载才能将其转储出来????

伪代码:

ArrayList<MyOb>;
MyObj.Serialize("doc.xml");

如果我坚持使用它的二进制状态,那么当用户确实有数据连接时我需要考虑的步骤是什么,并且是时间上传。

TIA JB

2 个答案:

答案 0 :(得分:1)

您可以使用优秀的库 JAXB(用于XML绑定的Java体系结构)

JAVA Beans&lt; ---&gt; XML数据

JAXB Basic Tutorial

以下是一些示例代码,可以让您对它有所了解

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    @XmlElement
    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    @XmlAttribute
    public void setId(int id) {
        this.id = id;
    }

}

使用此代码形成的XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
    <age>29</age>
    <name>mkyong</name>
</customer>

答案 1 :(得分:0)

我将继续将数据保存为sdcard上的xml。这是我能辨认的最佳方法。