如何使用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>
最佳答案
最好的方法是为您的XML格式生成XSD。然后,您运行jaxb以针对XSD生成代码。您可以手工创建带有JAXB注释的类,但是XSD可能更容易,并且可以实现多种(有价值的)目的。尤其重要的是,它可以帮助您了解数据格式是否有意义。例如,听起来您有字符串,整数或列表?在这种情况下,您的XSD将具有一个choice元素。自动生成的jaxb代码将处理该问题。编写XSD将有助于确保您的数据格式有意义。它可以用来验证输入是否符合您要求的格式。然后从中生成jaxb代码。
这是使用xjc从jaxb生成类的链接:
How to generate JAXB classes from XSD?