JAXB用途
- 将Java对象序列化为XML
- 将XML数据文件解析成一个Java对象
JAXB工作原理
JAXB映射主要由四个部分组成:schema、 JAXB、 XML文档和Java对象。
- schema可以看作是数据库中的表结构,document(XML文档)是表中的一条条的数据,
- 而jaxb可以看作是hibernate,他提供schema到java对象的映射,类似于xxx.HBM格式的映射文件。
- 将XML转换成java对象的过程叫Unmarshal.
- 而将java对象转换成XML的过程叫Marshal
使用:
主要使用的类和注解
- JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。
- Marshaller接口,将Java对象序列化为XML数据。
- Unmarshaller接口,将XML数据反序列化为Java对象。
- @XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标 注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE
- @XmlRootElement,将Java类或枚举类型映射到XML元素。
- @XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。
- @XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性.
xml解析为object
原数据
citylist.xml
<?xml version="1.0" encoding="UTF-8"?>
<c c1="0" provinceName="广东">
<d d1="101280101" d2="广州" d3="guangzhou" d4="广东"/>
<d d1="101280102" d2="番禺" d3="panyu" d4="广东"/>
<d d1="101280103" d2="从化" d3="conghua" d4="广东"/>
</c>
对应OBJECT
- 城市列表
<c c1="