当前位置: 首页 > 知识库问答 >
问题:

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

许俊贤
2023-03-14

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

戚衡
2023-03-14

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

这里有一个关于使用xjc从jaxb生成类的链接:如何从XSD生成JAXB类?

 类似资料:
  • 问题内容: 我有以下XML: 我有以下Java类将其映射到: 当我尝试与解组 我得到这个错误 我需要参数同时具有’attr’属性和内容,所以我在做什么错呢? 问题答案: 默认情况下, JAXB(JSR-222) 实现将公共属性(获取/设置方法)和带注释的字段视为已映射(和分开)。默认映射是这样,因此您的属性将被视为以此方式映射。 解决方案1 由于您要注释字段,因此需要在类中添加。 解决方案#2 注

  • 我目前正在学习如何在android中使用Jaxb解析xml文件。但是我不知道代码中有什么错误,以及在哪里和如何纠正它。我无法解析xml并获得食品列表。如果我删除List并简单地把它写成Food,那么只有xml中的最后一个元素被解析,其余的似乎都被覆盖了。请帮助我。 我试图解析http://www.w3schools.com/xml/simple.xml,,目前我有这样的代码: ---- 用于取消

  • 我正在使用Selenium和Chrome驱动程序,但我无法通过ID找到元素。但是,该元素在浏览器的web检查器中是可见的。我认为这是因为元素是动态生成的(我在浏览器URL栏中看到的所有时间都是相同的URL,但是内容是动态变化的。 解决的方法是适当的下砂驱动等。第一个页面是登录页面,我可以成功地通过它: 对不起,我只是网络浏览器自动化方面的一个十足的noob。

  • 我想从数组创建所有可能的数组可能大于或小于。输出数组中的元素不必是唯一的。 例如: 根据这个数组 给定所需大小的函数,应返回: 例2 根据这个数组 给定所需大小的函数,应返回: 用Swift怎么做?

  • 问题内容: 我试图找出所有可以嵌套在段落元素中的有效HTML5元素,以使w3验证程序不会显示任何错误。我的意思是我正在尝试找出所有可以替换以下代码中的点的标记,以便w3验证程序不显示任何错误: 有这样的清单吗?我尝试在Google上搜索时没有任何运气。 即使有相反的列表,即不能嵌套在段落元素中的元素,对我来说也足够了。 问题答案: HTML5规范告诉我们,元素的内容模型正在对content进行措辞

  • 问题内容: 我有一个:before开头的’quote’和一个:after结束的报价。 现在,我想要的是一个:after:after供“引用”参考,但我无法使其正常工作。 有人知道这是否可能吗? 到目前为止,我的代码: 问题答案: 已经提出了嵌套和伪元素的想法;请参阅“生成和替换的内容”模块的这一部分。但是,该模块已被放弃,等待完全重写,因此在重新发布该文档之前,我不会屏息。即便如此,嵌套内容伪元素