Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create pojo classes from XSD?

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>
like image 867
Chaitanya Ghumare Avatar asked Nov 16 '15 09:11

Chaitanya Ghumare


People also ask

How do I create a class in XSD?

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.


3 Answers

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:

  • Generate POJO Class from XSD in Eclipse
  • Generate POJO class from XSD Schema command line
  • Generate POJO Classes from XSD using XJC Maven Plugin

Also the youtube links:

  • Youtube video tutorial
  • Youtube tutorial using maven

I hope it helps!

Feel free to comment if you encounter any issue.

like image 187
SyntaX Avatar answered Oct 02 '22 20:10

SyntaX


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
like image 39
Arpit Aggarwal Avatar answered Oct 02 '22 19:10

Arpit Aggarwal


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

like image 43
AzizSM Avatar answered Oct 02 '22 21:10

AzizSM