我正在使用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>
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
中
转换< code >的一个简单方法。xsd文件到Java文件是xjc工具。只需在同一个工作目录中执行以下命令:
xjc test.xsd
我的建议是使用JAXB
。
我已经在< code>eclipse中测试过了,效果很好。我的建议是尝试从< code >命令行或借助< code>eclipse生成POJO。一旦成功,使用< code>maven对其进行配置,以生成POJO 构建时间
。
有几个教程可以学习这一点,请根据您的喜好点击以下链接:
XJC
Maven插件从XSD生成POJO类还有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