JAXB如何生成可能具有嵌套元素的元素?

时间:2013-05-17 11:29:52

标签: java xml jaxb

如何使用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>

1 个答案:

答案 0 :(得分:0)

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

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