JAXB中属性的AccessOrder

时间:2013-09-03 05:45:16

标签: java xml jaxb marshalling unmarshalling

在我的课堂上,我有超过80个属性。

我必须使用JAXB在类中使用相同的顺序将其写入xml文件。

所以请建议我自动创建或以其他方式提供与我在课堂上给出的相同顺序的propOrder。

注意:默认情况下我按字母顺序输出

示例:

Java object : order[id = 1, item = 121, qty = 10, city = QWE, ..........., addr = ASD]

excepted result : In xml file
    <order>
      <id>1</id>
      <item no>121</item no>
      <qty>10</qty>
      .
      .
      .
      .
      <addr>ASD</addr>
    </order>

2 个答案:

答案 0 :(得分:4)

如果要从Java对象创建xml,请使用

@XmlType (propOrder={"id","item",..."addr"})

类似的帖子谈论的是更多细节。 JAXB and property ordering

进行额外检查

如果要将xml转换为Java对象,则应通过xsd进行验证时使用 sequence 元素。

http://www.w3schools.com/schema/el_sequence.asp

答案 1 :(得分:3)

您在类中指定字段和属性的顺序并不重要。这意味着当JAXB(JSR-222)实现内省类时,它可能看不到您指定它们的相同顺序的字段/属性。字母顺序是提供一致排序的最简单方法。如果您要指定订单,则需要在propOrder上使用@XmlType