如何从 XSD 创建 pojo 类?
How to create pojo classes from XSD?
我正在使用 Spring maven 插件,我想从特定文件夹中指定的 xml 模式创建 POJO 类。我尝试通过 java 代码使用 xjc
命令,但它没有生成 类。其次,我尝试使用 jaxb
,但它处理 xml
文件而不是 xsd
模式,而 marshell/unmarshelling。我认为这不是从 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>
My recommendation is to go with JAXB
.
我已经在 eclipse
中测试过了,对我来说效果很好。我的建议是尝试从 command line
或在 eclipse
的帮助下生成 POJO。一旦成功配置 maven
生成 POJO build time
.
有几个教程可以学习这个,请根据您的喜好遵循以下 link(s):
- Generate POJO Class from XSD in Eclipse
- Generate POJO class from XSD Schema command line
- Generate POJO Classes from XSD using
XJC
Maven Plugin
还有 youtube links:
希望对您有所帮助!
如果您遇到任何问题,请随时发表评论。
将 .xsd
文件转换为 Java 文件的一种简单方法是 xjc 工具。只需在同一工作目录中执行以下命令:
xjc test.xsd
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
生成的文件将位于 target\generated-sources\jaxb
jaxb2-maven-plugin
版本 2 更改了配置方式。
以下将运行对src/main/resource
中的所有内容进行xjc并把它com.yourcompany.xsd
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<source>src/main/resources</source>
</sources>
<packageName>com.yourcompany.xsd</packageName>
</configuration>
</plugin>
检查 https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.5.0/example_xjc_basic.html
中的隐式行为
我正在使用 Spring maven 插件,我想从特定文件夹中指定的 xml 模式创建 POJO 类。我尝试通过 java 代码使用 xjc
命令,但它没有生成 类。其次,我尝试使用 jaxb
,但它处理 xml
文件而不是 xsd
模式,而 marshell/unmarshelling。我认为这不是从 xsd
.
从 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>
My recommendation is to go with
JAXB
.
我已经在 eclipse
中测试过了,对我来说效果很好。我的建议是尝试从 command line
或在 eclipse
的帮助下生成 POJO。一旦成功配置 maven
生成 POJO build time
.
有几个教程可以学习这个,请根据您的喜好遵循以下 link(s):
- Generate POJO Class from XSD in Eclipse
- Generate POJO class from XSD Schema command line
- Generate POJO Classes from XSD using
XJC
Maven Plugin
还有 youtube links:
希望对您有所帮助!
如果您遇到任何问题,请随时发表评论。
将 .xsd
文件转换为 Java 文件的一种简单方法是 xjc 工具。只需在同一工作目录中执行以下命令:
xjc test.xsd
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
生成的文件将位于 target\generated-sources\jaxb
jaxb2-maven-plugin
版本 2 更改了配置方式。
以下将运行对src/main/resource
中的所有内容进行xjc并把它com.yourcompany.xsd
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<source>src/main/resources</source>
</sources>
<packageName>com.yourcompany.xsd</packageName>
</configuration>
</plugin>
检查 https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.5.0/example_xjc_basic.html
中的隐式行为