首页 > 解决方案 > SimpleXML Element & Inline Elementlist 随机顺序

问题描述

我有三个不同的消息 pojo,要在 Android 应用程序上使用 SimpleXML lib 解析为 XML。第一个pojo:

@Root(name = "Message")
public class InventoryMessage {

    @Element(name = "Header")
    private Header header;

    @ElementList(inline = true)
    private ArrayList<InventoryBarcode> inventoryData;

    public InventoryMessage(ArrayList<InventoryBarcode> inventoryData) {
        this.header = new Header(ScanSource.INVENTORY);
        this.inventoryData = inventoryData;
    }

}

以我希望的方式解析消息:

<Message>
   <Header>
      <DateTime></DateTime>
      <HospitalCode></HospitalCode>
      <MessageType></MessageType>
   </Header>
   <InventoryData>
      <EventDtm></EventDtm>
      <ItemCode></ItemCode>
      <UserCode></UserCode>
      <LocationCode></LocationCode>
   </InventoryData>
</Message>

但是,当我对这个做同样的事情时:

@Root(name = "Message")
public class CyclecountMessage {

    @Element(name = "Header")
    private Header header;

    @ElementList(inline = true)
    private ArrayList<CyclecountBarcode> cyclecountData;

    public CyclecountMessage(ArrayList<CyclecountBarcode> cyclecountData) {
        this.header = new Header(ScanSource.CYCLECOUNT);
        this.cyclecountData = cyclecountData;
    }
}

我得到:

<Message>
   <CyclecountData>
      <EventDtm></EventDtm>
      <ItemCode></ItemCode>
      <UserCode></UserCode>
      <LocationCode></LocationCode>
   </CyclecountData>
   <Header>
      <DateTime></DateTime>
      <HospitalCode></HospitalCode>
      <MessageType></MessageType>
   </Header>
</Message>

无论我尝试什么,订单都保持不变。清单将页眉放在顶部,而另外两个(您在此处看到的其中一个)将页眉放在底部。这是什么原因造成的?我试过添加@Order 但没有运气,因为@ElementList 我猜不是真正的@Element,不知道。

提前感谢您的帮助。

标签: javaandroidxmlsimple-framework

解决方案


推荐阅读