I am using Spring maven plugin, I want to create POJO classes from specified xml schema in particular folder. I tried with xjc
command through java code, but its not generating that classes. secondly, I tried with jaxb
, but its dealing with xml
file not a xsd
schema while marshell/unmarshelling. I think this not a way to create POJO from xsd
.
What is a correct way to generate classes from xsd in java?
below is 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>
In the active editor tab, open the desired Schema . xsd file or an XML document, which contains the desired Schema. In the main menu, go to Tools | XML Actions | Generate Java Code From XML Schema Using JAXB.
My recommendation is to go with
JAXB
.
I have tested it in eclipse
, works well for me. My suggestion is try generating the POJO from command line
or with the help of eclipse
. Once successful configure it with maven
to generate the POJO build time
.
There are several tutorials to learn this, please follow the below link(s) based upon your preference:
XJC
Maven PluginAlso the youtube links:
I hope it helps!
Feel free to comment if you encounter any issue.
One simple way to convert .xsd
files to Java file is xjc tool. Just execute the following command in the same working directory:
xjc test.xsd
jaxb2-maven-plugin
Using jaxb2-maven-plugin is the easiest way. Define the plugins as below :
<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>
and execute :
mvn jaxb2:xjc
the generated files will be located in target\generated-sources\jaxb
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With