2011-03-14 109 views
5

可以说,我有以下XMLJAXB解组集合元素顺序

<?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对象中是相同的。我试图在源代码中查找它,但它很难理解。我希望有人能帮助我解决这个问题。谢谢。

裤裤

+1

由于为了在XML文件** **是相关的,我是** **非常肯定,订单将与XML文件中的完全相同。 – 2011-03-14 14:30:16

回答

4

对于对应于列表属性在列表中的顺序将匹配从XML文档的顺序的元件。

有关JAXB和收集属性的详细信息,请参阅:

+0

在你的博客中,你提到关于编组......这对解组还是真的吗?此外,你是否知道这个行为被明确描述的javadoc或文档?我已经使用JAXB一段时间了,但是我不能100%确定collection和xml文档的顺序是匹配的,因为我没有在文档中发现任何提及。 – chahuistle 2011-03-14 15:24:49

+1

我目前正在寻找一个参考。这是我们在JAXB 2专家组(JSR-222)中认为理所当然的行为。这就是Metro(参考impl)和EclipseLink MOXy(我是技术领导者)实现工作的方式。很难想象从提供者和用户的角度来看,行为都是其他方式。 – 2011-03-14 16:31:08