SimpleXML元素和内联元素列表随机顺序

时间:2019-02-25 09:19:42

标签: java android xml simple-framework

我有三种不同的消息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,我不知道。

在此先感谢您的帮助。

0 个答案:

没有答案