【问题标题】:JAXB how to generate element which may have with nested elements?JAXB 如何生成可能带有嵌套元素的元素?
【发布时间】:2013-05-17 11:29:51
【问题描述】:

如何使用 JAXB 生成以下结构?就我而言,我有一个动态属性列表,它可能有 3 种类型:整数、字符串或列表。但是,列表属性具有嵌套元素。我怎样才能实现它?

<settings>
    <setting type=”string” name="username">user1</setting>
    <setting type=”integer” name="age">25</setting>
    <setting type=”list” name="list">
        <setting type=”string”>foo</setting>
        <setting type=”string”>bar</setting>
    </setting>
</settings>

【问题讨论】:

  • 您希望您的班级是什么样的?所有设置对象在一个集合中还是按类型分隔?

标签: java xml jaxb


【解决方案1】:

最好的方法是为您的 XML 格式生成 XSD。然后运行 ​​jaxb 以针对 XSD 生成代码。您可以手动创建带有 JAXB 注释的类,但 XSD 可能更容易,并且可以用于多种(有价值的)用途。最重要的是,它会帮助您了解您的数据格式是否有意义。例如,听起来您有 string、int、 列表?在这种情况下,您的 XSD 将具有选择元素。自动生成的 jaxb 代码会处理这个问题。编写 XSD 将有助于确保您的数据格式有意义。它可用于验证输入是否与您所需的格式匹配。然后你从中生成 jaxb 代码。

这里是使用 xjc 从 jaxb 生成类的链接: How to generate JAXB classes from XSD?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多