相关疑难解决方法(0)

@Order注释对XML序列化顺序没有影响

我正在使用Retrofit 2,SimpleXmlConverter我在创建Soap Request对象时面临一个问题,它基本上是一个包含4个元素子元素的元素,每个子元素都是不同的数据类型.

这是XML我想要产生的输出.必须遵守元素顺序:

 <prf:container>
    <prf:aaa>111111111</prf:aaa>
    <prf:bbb>true</prf:bbb>
    <prf:element>
        <prf:ddd>50</prf:ddd>
        <prf:eee>false</prf:eee>
    </prf:element>
    <prf:ccc>textcontent</prf:ccc>
</prf:container>
Run Code Online (Sandbox Code Playgroud)

现在,这是我的Android类,Container.java代表将被序列化的Soap Request对象:

@Root (name = "prf:container")
@Order(elements={"prf:aaa", "prf:bbb", "prf:element", "prf:ccc"})
public class Container {

    @Element (name = "prf:aaa")
    private int aaa;

    @Element(name = "prf:bbb")
    private boolean bbb;

    @Element (name = "prf:element", required = false)
    private MyElement myElement;

    @Element (name = "prf:ccc", required = false)
    private String ccc;

}
Run Code Online (Sandbox Code Playgroud)

根据Simple XML框架文档:

默认情况下,字段的序列化按声明顺序完成.

但是,在Android中,至少在某些情况下,情况并非如此.无论我如何在我的Container类中设置字段声明顺序,输出始终具有相同的元素顺序.这是一个已知的错误,正如其他SO帖子中所报道的那样.

尽管如此,这个问题还是有一个解决方案.该Order注解.阅读Javadoc中的更多内容.

我的问题是Order …

xml android soap simple-framework retrofit2

4
推荐指数
1
解决办法
806
查看次数

标签 统计

android ×1

retrofit2 ×1

simple-framework ×1

soap ×1

xml ×1