如何使用JAXB维护入口订单信息?

如何使用JAXB维护入口订单信息?,jaxb,Jaxb,假设我有一个如下所示的XML文件 <root> <record>foo</record> <record>bar</record> </root> 我使用JAXB读取记录。JAXB是否保留saybarcomeforfoo的信息 我的直觉是否定的,JAXB不维护这些信息。但是我被困住了,因为我真的需要得到这些信息。。。任何建议。。。顺便说一句,我不能更改xml的格式 谢谢。你真的试过了

假设我有一个如下所示的XML文件

    <root>
      <record>foo</record>
      <record>bar</record>
    </root>
我使用JAXB读取记录。JAXB是否保留saybarcomeforfoo的信息

我的直觉是否定的,JAXB不维护这些信息。但是我被困住了,因为我真的需要得到这些信息。。。任何建议。。。顺便说一句,我不能更改xml的格式


谢谢。

你真的试过了吗

JAXB的注释是一个属性,它定义了属性的顺序

因此,您可以:

@XmlRootElemen(name="root")
@XmlType(propOrder={"record2", "record1"})
public class Root {

  public String record1;
  public String record2;

}
更新

OP根据以下内容编辑了其原始XML:

<root>
  <record2>
  <record1>
</root>
为此:

<root>
  <record>foo</record>
  <record>bar</record>
</root>
我的答案适用于包含两个元素record2和record1的原始XML。

Order&Repeated elements 如果您的XML如下所示:

福 酒吧 如果将重复元素映射到java.util.List,元素的顺序将在列表中保持

@XmlElementname=记录 公共记录列表{ 退货记录; } 顺序与非重复元素 另一方面,如果您的XML如下所示:

福 酒吧 使用马歇尔 然后使用Marshaller,元素封送到XML的顺序将由以下各项控制:

@XmlType注释上的proporter属性。 @XmlAccessorOrder注释 使用粘合剂 使用活页夹,您可以将XML解析为DOM,并使用活页夹将其解组。然后可以对对象进行更改,并将这些更改应用回DOM。这允许您保留一些方面,例如从原始XML排序


有人改变了我原来的问题,foo和bar都属于同一个,但我怎么知道bar在foo之前呢???Thanks@user2167013我已经编辑了你的问题,只更正了->foo上的标记。现在你把这两个问题都改成了一个完全不同的问题。现在看来,我的回答是错误的,它对最初的问题是正确的。抱歉,这是不可接受的。问题是JAXB读取xml并填充其数据结构。订购信息已经在那里丢失了。如何使用java.util.List进行映射?对不起,我想我遗漏了一些东西。@user2167013-你说订单丢失是什么意思?一个java.util.List维护顺序。