本文概述
- JAXB 2.0的功能
- 简单的JAXB编组示例:将对象转换为XML
- 简单的JAXB UnMarshalling示例:将XML转换为对象
JAXB代表用于XML绑定的Java体系结构。它提供了将Java对象编组(写入)XML和将XML编组(读取)对象的机制。简单地说, 你可以说它用于将Java对象转换为xml, 反之亦然。
文章图片
JAXB 2.0的功能 JAXB 2.0包含JAXB 1.x中没有的一些功能。它们如下:
1)批注支持:JAXB 2.0提供了对批注的支持, 因此开发JAXB应用程序所需的编码更少。 javax.xml.bind.annotation包提供了JAXB 2.0的类和接口。
2)支持所有W3C XML Schema功能:与JAXB 1.0不同, 它支持所有W3C Schema。
3)其他验证功能:它通过JAXP 1.3验证API提供了额外的验证支持。
4)小型运行时库:它需要JAXB 1.0小型运行时库。
5)减少生成的架构派生的类:它减少了很多生成的架构派生的类。
简单的JAXB编组示例:将对象转换为XML 让我们看看将Java对象转换为XML文档的步骤。
- 创建POJO或绑定模式并生成类
- 创建JAXBContext对象
- 创建Marshaller对象
- 通过使用set方法创建内容树
- 调用元帅方法
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Employee {
private int id;
private String name;
private float salary;
public Employee() {}
public Employee(int id, String name, float salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
@XmlAttribute
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
}
@XmlRootElement指定xml文档的根元素。
@XmlAttribute指定根元素的属性。
@XmlElement指定根元素的子元素。
import java.io.FileOutputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class ObjectToXml {
public static void main(String[] args) throws Exception{
JAXBContext contextObj = JAXBContext.newInstance(Employee.class);
Marshaller marshallerObj = contextObj.createMarshaller();
marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee emp1=new Employee(1, "Vimal Jaiswal", 50000);
marshallerObj.marshal(emp1, new FileOutputStream("employee.xml"));
}
}
输出: 生成的xml文件将如下所示:
<
?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<
employee id="1">
<
name>
Vimal Jaiswal<
/name>
<
salary>
50000.0<
/salary>
<
/employee>
简单的JAXB UnMarshalling示例:将XML转换为对象
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class XMLToObject {
public static void main(String[] args) {
try {
File file = new File("employee.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Employee.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Employee e=(Employee) jaxbUnmarshaller.unmarshal(file);
System.out.println(e.getId()+" "+e.getName()+" "+e.getSalary());
} catch (JAXBException e) {e.printStackTrace();
}}
}
【JAXB教程介绍】输出:
1 Vimal Jaiswal 50000.0
推荐阅读
- JAXB解组示例(将XML转换为对象)
- JAXB编组示例(将对象转换为XML)
- 什么是Ionic框架()
- Ionic和Xamarin之间的区别
- iPhone手电筒不工作怎么办(10 种最佳修复方法和技巧!)
- 你可以购买的10款适用于iPad的最佳蓝牙鼠标推荐合集
- 如何从iPhone锁定屏幕中删除音乐播放器小部件(方法和技巧)
- 最佳OCR软件推荐合集(如何从图像和PDF中提取文本())
- PC、Mac和Android的14款最佳SNES模拟器合集推荐