【问题标题】:JAXB UnMarshall Collection element orderJAXB UnMarshal Collection 元素顺序
【发布时间】:2011-03-14 14:27:56
【问题描述】:

假设我有以下 XML

<?xml version="1.0" encoding="utf-8"?>
<names>
    <name first="John" last="Doe"/>
    <name first="Jane" last="Doe"/>
    ...
</names>

这是我的代码:

final JAXBContext context = JAXBContext.newInstance(Names.class);
final Unmarshaller um = context.createUnmarshaller();
final InputStream in = new FileInputStream(file);
final Reader reader = new InputStreamReader(in, Charset.forName("UTF-8"));
final Names namesList = (Names) um.unmarshal(reader);
...

现在我找不到任何描述这些元素的顺序的文档。 在我的应用程序中,我的 XML 文件中的顺序与 java 对象中的顺序相同,这一点很重要。我试图在源代码中查找它,但很难理解。我希望有人可以帮助我解决这个问题。谢谢。

库库

【问题讨论】:

  • 由于 XML 文件中的顺序 相关,我相当确定该顺序与 XML 文件中的顺序完全相同。

标签: java xml collections jaxb


【解决方案1】:

对于对应于 List 属性的元素,List 中的顺序将与 XML 文档中的顺序相匹配。

有关 JAXB 和集合属性的更多信息,请参阅:

【讨论】:

  • 在您的博客中,您提到了编组...对于解组也是如此吗?此外,您是否知道明确描述此行为的 javadoc 或文档?我已经使用 JAXB 一段时间了,但我不能 100% 确定集合和 xml 文档顺序是否匹配,因为我没有在文档中找到任何提及它的内容..
  • 我目前正在寻找参考资料。这是我们在 JAXB 2 专家组 (JSR-222) 中可能认为理所当然的行为。这是 Metro(参考 impl)和 EclipseLink MOXy(我是技术主管)实现的工作方式。从提供者和用户的角度来看,很难想象这种行为会以其他方式出现。
猜你喜欢
  • 2012-03-20
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2013-07-17
  • 2012-10-12
  • 2014-04-07
  • 2021-11-20
  • 1970-01-01
相关资源
最近更新 更多