【问题标题】:AccessOrder for Properties in JAXBJAXB 中属性的 AccessOrder
【发布时间】:2013-09-03 05:45:15
【问题描述】:

在我的班级里,我有 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>

【问题讨论】:

    标签: java xml jaxb marshalling unmarshalling


    【解决方案1】:

    如果您是从 Java 对象创建 xml,则使用

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

    类似的帖子谈到了 is 并且更详细地讨论了。 JAXB and property ordering

    供进一步检查

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

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

    【讨论】:

    • 感谢回复。我需要它自动生成而不是手动生成
    • @Ok 明白了,您的意思是根据 xml 动态设置 propOrder
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2011-12-16
      相关资源
      最近更新 更多