Jaxb2-maven-plugin XJC Example To Generate Java Classes From XSD
jaxb2-maven-plugin
We use XSD to define the contract data structure, so it’s not common to generate java classes that represent the XML schema. jaxb2-maven-plugin XJC is JAXB Binding compiler tool that can be used to generate Java Classes from XSD files. Here we will learn how to use jaxb2-maven-plugin XJC in a maven project to generate java classes from XSD. First of all we have to create a maven project, then we need to use jaxb2-maven-plugin plugin to generate java classes from XSD. pom.xml
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jd</groupId> <artifactId>jd</artifactId> <version>0.0.1-SNAPSHOT</version> <name>JD Example XSD to Java</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <!-- Plugin required to build java classes from XSD using XJC --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>1.5</version> <executions> <execution> <goals> <goal>xjc</goal> </goals> </execution> </executions> <configuration> <!-- The name of your generated source package --> <arguments>-extension -npa -b ${project.basedir}/src/main/xsd/global.xjb</arguments> </configuration> </plugin> </plugins> </build> </project>Notice the global.xjb file in arguments, this is where we specify java binding rules. global.xjb
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jaxb:bindings version="2.0" xmlns:jaxb="https://java.sun.com/xml/ns/jaxb" xmlns:xjc="https://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="https://www.w3.org/2001/XMLSchema" jaxb:extensionBindingPrefixes="xjc"> <jaxb:globalBindings> <xjc:simple /> <xjc:serializable uid="-1" /> <jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime" /> </jaxb:globalBindings> </jaxb:bindings>Here is the XSD that will be used to generate java classes. Employee.xsd
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.journaldev.com/com/journaldev/employee/data" xmlns:empns="https://www.journaldev.com/com/journaldev/employee/data" elementFormDefault="qualified"> <element name="empRequest" type="empns:EmpRequest"></element> <element name="empResponse" type="empns:EmpResponse"></element> <complexType name="EmpRequest"> <sequence> <element name="id" type="int" minOccurs="0" maxOccurs="1" /> <element name="name" type="string" minOccurs="0" maxOccurs="1" /> </sequence> </complexType> <complexType name="EmpResponse"> <sequence> <element name="id" type="int" minOccurs="1" maxOccurs="1" /> <element name="name" type="string" minOccurs="1" maxOccurs="1" /> <element name="role" type="string" minOccurs="1" maxOccurs="unbounded" /> <element name="gender" type="string" minOccurs="1" maxOccurs="1" /> <element name="salary" type="string" minOccurs="1" maxOccurs="1" /> </sequence> </complexType> </schema>Just build the maven project using mvn clean install and you will see java classes generated in target/generated-sources/jaxb directory. Finally the project would look something like below image.
Further Read: JAXB Tutorial Reference: jaxb2 maven plugin official page, java xjc
Từ khóa » C 'xjv'
-
Xjc - Oracle Help Center
-
Using JAXB Xjc Tooling To Generate JAXB Classes From An XML ... - IBM
-
A Characterization Of Spherical Distributions E(u'XJv'X)=O. (1.1) 272
-
[PDF] Genius Thermocouple Input Blocks Datasheet, GFK-0055D
-
Tommy Hilfiger TH Outline Crossbody Bag Synthetic Fuchsia
-
Tommy Hilfiger TH Element Shoulder Bag Synthetic Fuchsia
-
Valve Assembly: XJV-E - P. W. Mall
-
AR Repair Kits - P. W. Mall
-
Pin On Good Morning Nature - Pinterest
-
Running Xjc Command For Java 11-works In Git Bash But Not Cygwin
-
海外交易所【网址:】.xjv | TeamLab
-
Carbpro AR 2858 UNLOADER VALVE KIT For Annovi Reverberi XJV ...
-
[PDF] ALJ/XJV/avs PROPOSED DECISION Agenda ID #11980 Ratesetting