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

如何从XSD创建pojo类?

孙弘博
2023-03-14

我正在使用Spring maven插件,我想从特定文件夹中的指定xml模式创建POJO类。我尝试通过java代码使用< code>xjc命令,但是它不能生成这些类。其次,我尝试使用< code>jaxb,但是在marshell/unmarshalling时,它处理的是< code>xml文件,而不是< code>xsd模式。我认为这不是从< code>xsd创建POJO的方法。

在java中从xsd生成类的正确方法是什么?

下面是XSD

   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="Employee">
   <xs:complexType>
   <xs:sequence>
    <xs:element name="empId" type="xs:long"/>
    <xs:element name="lastName" type="xs:string"/>
    <xs:element name="title" type="xs:string"/>
    <xs:element name="salary" type="xs:integer"/>
    <xs:element name="address">
    <xs:complexType>
       <xs:sequence>
         <xs:element name="city" type="xs:string"/>
         <xs:element name="street" type="xs:string"/>
         <xs:element name="zipcode" type="xs:integer"/>
         <xs:element name="privatePhoneNo">
           <xs:complexType>
             <xs:sequence>
                 <xs:element name="privateMobile" type="xs:string"/>
                 <xs:element name="privateLandline" type="xs:string"/>
             </xs:sequence>
           </xs:complexType>
         </xs:element>
        </xs:sequence>
     </xs:complexType>
    </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:schema>

共有3个答案

郭云
2023-03-14

jaxb2-maven-plugin

使用jaxb2-maven-plugin是最简单的方法。将插件定义如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>${project.basedir}/src/main/xsd/</schemaDirectory>
                <schemaFiles>MARC21slim.xsd</schemaFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

并执行:

mvn jaxb2:xjc

生成的文件将位于目标\生成的源\jaxb

鞠边浩
2023-03-14

转换< code >的一个简单方法。xsd文件到Java文件是xjc工具。只需在同一个工作目录中执行以下命令:

xjc test.xsd
何晗昱
2023-03-14

我的建议是使用JAXB

我已经在< code>eclipse中测试过了,效果很好。我的建议是尝试从< code >命令行或借助< code>eclipse生成POJO。一旦成功,使用< code>maven对其进行配置,以生成POJO 构建时间

有几个教程可以学习这一点,请根据您的喜好点击以下链接:

  • 在Eclipse中从XSD生成POJO类。
  • 从XSD模式命令行生成POJO类
  • 使用XJCMaven插件从XSD生成POJO类

还有youtube链接:

    < li>Youtube视频教程 < li >使用maven的Youtube教程

我希望它有帮助!

如果您遇到任何问题,请随时发表评论。

 类似资料:
  • 问题内容: 我创建了一个简单的POJO: 经过一番搜索,我发现了这一点: 但是有了这个我得到了错误: 我找到了另一个解决方案: 但是这种方法不存在。 那么如何将POJO转换为JSON? 问题答案: 只需使用java Gson API : 然后您可以从json 创建一个,如下所示: 看看 GSON用户指南 ,这 SIMPLE GSON实例 的详细信息。

  • 问题内容: 我有一个Java应用程序,可以在其中将XSD类型映射到另一个具有相同类型的类型。现在,我需要拥有一个可以映射任何类型的anyType xsd。就像我们在Java中拥有Object类型一样,是否有可能在XSD中创建类似对象。 编辑:在复杂类型级别是可能的。 问题答案: 是的,有可能。类型是。这是一个例子: (摘自底漆) 这是一个更复杂的示例: (也从底漆开始-值得一看)

  • 问题内容: 开始听说“ POJO”(普通的旧Java对象)。我用谷歌搜索,但仍然不太了解这个概念。谁能给我关于POJO的清晰描述? 考虑带有变量“ id,名称,地址,薪水”的“人员”类-在这种情况下我将如何创建POJO?代码在POJO下方吗? 问题答案: POJO只是一个普通的,已删除限制的Java Bean。Java Bean必须满足以下要求: 默认的无参数构造函数 对于名为foo的可变属性,遵

  • 我有多个动态json模板如下 JSON 1 JSON 2 JSON 3 我想在运行时将它们隐藏到JAVA对象中,即在编译时不创建POJO。这可能吗?如果是,如何做到这一点? 我尝试使用Jackson lib将json转换为对象(对象类),但如何创建通用POJO,或者如何使用setter-getter动态创建POJO?

  • 问题内容: 尝试为客户端实现SOAP Web服务,我需要一个wsdl文件来通过soapUI测试该服务。但是,如您在下面看到的那样,此xsd没有Request和Response方法,所有请求和响应都在基本ServiceProvider元素中定义为“类型”。因此,当我尝试通过spring- ws自动生成wsdl文件时,它不会生成适当的wsdl,因为Spring-ws要求所有请求,并且response元

  • 试图为客户机实现SOAP Webservice,我需要一个wsdl文件来通过SOAPUI测试服务。但是正如您在下面看到的,这个xsd没有请求和响应方法,所有请求和响应都定义为基本ServiceProvider元素中的a“type”。因此,当我试图通过spring-ws自动生成wsdl文件时,它不会生成正确的wsdl,因为spring-ws要求所有请求和响应元素名称都应该以“request”“res