For
example, I have student.xsd file like below.
student.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="student"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string" /> <xs:element name="middlename" type="xs:string" /> <xs:element name="lastname" type="xs:string" /> <xs:element name="age" type="xs:integer" /> <xs:element name="department" type="xs:string" default="CSE" /> <xs:element name="dresscode" type="xs:string" fixed="Black and White" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Use following
command to generate java classes from xsd file.
xjc -p
com.sample.app.model student.xsd
$xjc -p com.sample.app.model student.xsd parsing a schema... compiling a schema... com/sample/app/model/ObjectFactory.java com/sample/app/model/Student.java
Generated
Classes
Student.java
// // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // Any modifications to this file will be lost upon recompilation of the source schema. // Generated on: 2019.05.23 at 11:14:47 AM IST // package com.sample.app.model; import java.math.BigInteger; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; /** * <p>Java class for anonymous complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="firstname" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="middlename" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="lastname" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="age" type="{http://www.w3.org/2001/XMLSchema}integer"/> * <element name="department" type="{http://www.w3.org/2001/XMLSchema}string"/> * <element name="dresscode" type="{http://www.w3.org/2001/XMLSchema}string"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "firstname", "middlename", "lastname", "age", "department", "dresscode" }) @XmlRootElement(name = "student") public class Student { @XmlElement(required = true) protected String firstname; @XmlElement(required = true) protected String middlename; @XmlElement(required = true) protected String lastname; @XmlElement(required = true) protected BigInteger age; @XmlElement(required = true, defaultValue = "CSE") protected String department; @XmlElement(required = true) protected String dresscode; /** * Gets the value of the firstname property. * * @return * possible object is * {@link String } * */ public String getFirstname() { return firstname; } /** * Sets the value of the firstname property. * * @param value * allowed object is * {@link String } * */ public void setFirstname(String value) { this.firstname = value; } /** * Gets the value of the middlename property. * * @return * possible object is * {@link String } * */ public String getMiddlename() { return middlename; } /** * Sets the value of the middlename property. * * @param value * allowed object is * {@link String } * */ public void setMiddlename(String value) { this.middlename = value; } /** * Gets the value of the lastname property. * * @return * possible object is * {@link String } * */ public String getLastname() { return lastname; } /** * Sets the value of the lastname property. * * @param value * allowed object is * {@link String } * */ public void setLastname(String value) { this.lastname = value; } /** * Gets the value of the age property. * * @return * possible object is * {@link BigInteger } * */ public BigInteger getAge() { return age; } /** * Sets the value of the age property. * * @param value * allowed object is * {@link BigInteger } * */ public void setAge(BigInteger value) { this.age = value; } /** * Gets the value of the department property. * * @return * possible object is * {@link String } * */ public String getDepartment() { return department; } /** * Sets the value of the department property. * * @param value * allowed object is * {@link String } * */ public void setDepartment(String value) { this.department = value; } /** * Gets the value of the dresscode property. * * @return * possible object is * {@link String } * */ public String getDresscode() { return dresscode; } /** * Sets the value of the dresscode property. * * @param value * allowed object is * {@link String } * */ public void setDresscode(String value) { this.dresscode = value; } }
ObjectFactory.java
// // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // Any modifications to this file will be lost upon recompilation of the source schema. // Generated on: 2019.05.23 at 11:14:47 AM IST // package com.sample.app.model; import javax.xml.bind.annotation.XmlRegistry; /** * This object contains factory methods for each * Java content interface and Java element interface * generated in the com.sample.app.model package. * <p>An ObjectFactory allows you to programatically * construct new instances of the Java representation * for XML content. The Java representation of XML * content can consist of schema derived interfaces * and classes representing the binding of schema * type definitions, element declarations and model * groups. Factory methods for each of these are * provided in this class. * */ @XmlRegistry public class ObjectFactory { /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.sample.app.model * */ public ObjectFactory() { } /** * Create an instance of {@link Student } * */ public Student createStudent() { return new Student(); } }
You may
like
No comments:
Post a Comment