我有三种不同的消息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,我不知道。
在此先感谢您的帮助。