为了账号安全,请及时绑定邮箱和手机立即绑定

什么可以改变Java生成的XML文件中元素属性的顺序?

什么可以改变Java生成的XML文件中元素属性的顺序?

婷婷同学_ 2022-04-28 16:16:48
我使用Jaxb2MarshallerandXMLStreamWriter从Java POJO-s生成 XML 文件XSD。而且我意识到,如果我在不同的环境中运行我的应用程序,元素中属性的顺序是不同的。我还意识到在我的机器中它使用与 XSD 中相同的顺序,而在其他机器中它看起来使用降序的字母数字顺序。但我无法证明这个描述。当然是字母数字顺序,但很有可能。什么可能导致此订单更改?我知道属性的顺序在 XML 中应该无关紧要,但真的没有解决方案来为 Java 中的元素属性设置顺序吗?当然可以使用任何类型的库。
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

我会检查 HashMaps 或 HashSets 是否参与处理(以及类似的集合/类......)。

这些集合的迭代器元素的顺序没有定义,可以在JVM版本和实现之间以不同的方式实现。

如果涉及数据库选择,则元素的顺序可以不同(按供应商、版本、机器、状态),当没有使用明确的“order by”时。例如,在 postgresql 上,在我的 PC上,最后接触的元素首先出现,然后是其他元素


查看完整回答
反对 回复 2022-04-28
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

JAXB 使用反射进行编组。通过反射返回的字段列表未按任何特定顺序排序(请参阅此处)。因此,在编组时,属性的顺序不一定反映 XSD 或 Java POJO 中的顺序。最有可能的是,不同操作系统上的不同 Java 版本可能会以不同的方式实现反射,因此顺序可能会改变。

如果您只需要在不同的安装中保持一致,请使用 . 按字母顺序对它们进行排序@XMLAccessorOrder

也可能有帮助。


查看完整回答
反对 回复 2022-04-28
  • 2 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信