java - 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,不知道。
提前感谢您的帮助。
解决方案
推荐阅读
- node.js - 如何将 Nginx NJS 与本机 nodejs 模块和 webpack 一起使用?
- python-3.x - Python 3 - Scipy 和 KDEpy
- azure - LogicApps SFTP SSH 问题
- c++ - 将一个 std::optional 转换为另一个 std::optional
- node.js - 从 Express 中的 POST 端点检索特定值
- stored-procedures - 雪花使用存储过程进行错误处理
- javascript - 用 Javascript-Canvas 圆一个小费
- node.js - 自定义中间件 express.js 框架排序
- objective-c - NSButton 在运行时不显示图像或文本
- php - 在 php:7.4-fpm 映像上安装 PHP-zip