最近项目原因,研究了下jaxb。jaxb是Java api xml binding的简称,是为实现java与xml数据的相互转换而定义的一个api标准。该标准以annotation的方式实现xml的转换。不用开发人员单独解析每个对象属性与xml元素的mapping关系,只需在java bean中注入简单的java annotation,其他的交给工具去处理。该工具包类能给xml数据处理带来极大方便。具体实现见下。
Java bean对象定义:
说明:上文定义了一个促销对象类Promotion.
类标注表示:
@XmlRootElement:用于定义该对象映射成xml根节点元素名,默认与类名一致。可通过@XmlRootElement(name="otherRootElement")方式指定具体名称。
@XmlAccessorType: 用于标识该java对象与xml映射的访问方式。有如下属性值。
PROPERTY/FIELD/PUBLIC_MEMBER/NONE
PROPERTY: 所有set/get方法对将被映射为xml元素.除非被XmlTransient标注例外.
FIELD:所有对象属性将被映射为xml元素。除非被XmlTransient标注例外.
PUBLIC_MEMBER:每个public的get/set对方法或public field将被映射为xml元素。除非被XmlTransient标注例外.
NONE:没有fields 或 property被映射,除非显示指定具体fields或property。
属性标注表示:
@XmlTransient:指对应属性不做xml映射。
@XmlElement(name="product"):指定属性映射时对应xml元素名称
@XmlElementWrapper(name="products"):在某些场景下,需要对映射的属性做包装处理。如例子中products List对象属性,在xml中我想在映射对所有的product元素再做一个products 元素包装,如下所示,就可以按此种方式实现。
<products>
<product> … </product>
…
</products>
Java与xml映射方法
Java对象到XML
XML到Java对象
Powered by: BlogJava Copyright © 月下孤城