【问题标题】:XML to java object structure [closed]XML到java对象结构[关闭]
【发布时间】:2016-11-13 22:28:15
【问题描述】:

我有 XML 文件,想制作 java 类。

我想要这样的东西

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }
}

但是在更大的 XML 中,一些元素有重复的子元素,而另一些则没有。 手动创建非常复杂,所以我尝试了一些在线工具,如Pojo,但它为每个元素创建类(根元素有 10 个相同的子元素),所以它创建了 100 多个类文件,我认为这不是正确的解决方案. 我查看了 JAXB,但我没有找到任何只是创建类文件的东西,只找到了如何填充这些类。尝试将 XML 转换为 XSD,然后转换为 java 类,但没有找到任何从 XSD 生成 java 类的东西。

感谢您的每一个回复,我尝试了很多方法,但没有一个是正确的。

【问题讨论】:

标签: java xml


【解决方案1】:

关于这个有几个线程: How to generate JAXB classes from XSD? 如果你使用 Eclipse,这个很好。 如果您使用的是 maven,请查看此站点 http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html

查看有关 jaxb 转换查找的更多示例xjc java示例

希望对你有帮助

【讨论】:

    【解决方案2】:

    我在 jetbrains 上找到了这个。它谈到了使用 XSD 和 JAXB 生成 Java 类。

    https://www.jetbrains.com/help/idea/2016.1/generating-java-code-from-xml-schema.html

    以下是该链接的摘录:

    使用 JAXB 从 XML Schema 生成 Java 类

    1. 在活动编辑器选项卡中,打开所需的架构 (.xsd) 文件或包含所需架构的 XML 文档。然后选择工具| JAXB |使用主菜单上的 JAXB 从 XML 模式生成 Java 代码。

    2. 在打开的使用 JAXB 从 Xml Schema 生成 Java 对话框中配置生成过程:

      -在 Schema/DTD/WSDL Path 下拉列表中,指定要用作代码生成基础的文件。默认情况下,该字段显示当前文件的完整路径。接受此建议或单击浏览按钮 [...] 并在打开的 Select XML Schema File for JAXB Generation 中选择所需文件。

      -从Output Path下拉列表中,选择要放置生成的Java类的模块源目录。

      -在“包前缀”下拉列表中,指定要包含生成的存根的包。

      -使用复选框,配置附加选项,例如生成注释、设置只读状态、下载和安装附加库。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:
      1. JAXB - 这是基于 DOM 的默认 JDK 解析器
      2. Castor- 使用 DOM 的第三方工具
      3. XStream- 第三方工具使用 SAX 解析器,但不支持或有限的命名空间支持

      JAXB 是迄今为止 Java 中最易于使用和最新的工具。它具有处理您提到的大多数点的选项,例如重复元素等。对于重复元素,如果您生成完全限定的名称空间,那么它应该可以工作。假设 XSD 命名空间等价于 Java 包。

      参考这个例子: Java 到 XML: JAXB with namespace unmarshalling (using Jersey from REST service)

      XML 到 Java: JAXB :Need Namespace Prefix to all the elements

      【讨论】:

        猜你喜欢
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 2012-09-12
        相关资源
        最近更新 更多