Before using JAXB to create or access an XML document from Java application, we have to do the following steps:
1.Binding the schema
* Binding a schema means generating a set of Java classes that represents the schema for the XML document (Schema is not required for simple marshalling and unmarshalling).
2.Marshal the content tree /Unmarshal the XML document.
* After binding the schema, you can convert Java objects to and from XML document.
In this example we will see how to bind the schema. For that, we use Java Architecture for XML Binding (JAXB) binding compiler tool, xjc, to generate Java classes from XML schema.
‘xjc’ Command Line Options
Usage:
Complete list of options for ‘xjc’ is available in the help option.
Generate Java classes using ‘xjc’
xjc [-options ...] … [-b ] …
If dir is specified, all schema files in it will be compiled.
If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled.
Complete list of options for ‘xjc’ is available in the help option.
xjc -help
Follow the steps below to generate a set of Java source files from XML schema.
- Create a new Java project folder and name it as “JAXBXJCTool”.
- Create a new XSD file and name it as “employee.xsd” and copy the following lines. This is the XML schema in our example which is to be bound to java classes
- Save the file
- Create a new folder ‘src’ inside the project folder.
- In Windows open Command Prompt (Windows button + R and type cmd) or Terminal in Linux and go to the project folder (use cd command) where it exists in your machine and type the following command
- This will generate set of Java source files with appropriate annotation inside ‘src’ folder
Employee.xsd
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="employee" type="employee"/> <xs:complexType name="employee"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0"/> <xs:element name="salary" type="xs:double"/> <xs:element name="designation" type="xs:string" minOccurs="0"/> <xs:element name="address" type="address" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:int" use="required"/> </xs:complexType> <xs:complexType name="address"> <xs:sequence> <xs:element name="city" type="xs:string" minOccurs="0"/> <xs:element name="line1" type="xs:string" minOccurs="0"/> <xs:element name="line2" type="xs:string" minOccurs="0"/> <xs:element name="state" type="xs:string" minOccurs="0"/> <xs:element name="zipcode" type="xs:long"/> </xs:sequence> </xs:complexType> </xs:schema>
C:\Users\iByteCode\Desktop\JAXBXJCTool>xjc -d src -p com.theopentutorials.jaxb.beans employee.xsd
No comments:
Post a Comment