Webservices4PM 18032021
Webservices4PM 18032021
Webservices 4:30PM
Mr. RAGHU
-------------------------------------
JAX-B API
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.2.11</version>
</dependency>
--sample code---
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlAttribute
private int empId;
private String empName;
private double empSal;
...//set,get..toString..
}
--sample output--
<employee empId="10">
<empName>SAMPLE</empName>
<empSal>200.0</empSal>
</employee>
--------------
*) Note:
Only @XmlRootElement is active by default. Other Annotation are
in disabled Mode. To activate other annotations wrote one
variable(instance variable-feilds) use
@XmlAccessorType(XmlAccessType.FIELD)
---sample code---
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlAttribute
private int empId;
private String empName;
private double empSal;
@XmlTransient
private String empPwd;
//set,get...toString..
}
--sample xml output--
<employee empId="10">
<empName>SAMPLE</empName>
<empSal>200.0</empSal>
</employee>
--sample code--
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlAttribute(name = "id")
private Integer empId;
@XmlElement(name = "employee-name")
private String empName;
@XmlElement(name="employee-salary")
private Double empSal;
@XmlTransient
private String empPwd;
//set,get..toStrig..
}
Employee created but no data set (id-null,name-null,sal-null)
=========Example==============
1. Model
package in.nit.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
@XmlAttribute(name = "id")
private Integer empId;
@XmlElement(name = "employee-name", required = true)
private String empName;
@XmlElement(name="employee-salary")
private Double empSal;
@XmlTransient
private String empPwd;
2. Test class
package in.nit.test;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import in.nit.model.Employee;