转:JaxbContext生成xml文件或java类对象转化注解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

转:JaxbContext⽣成xml⽂件或java类对象转化注解
XmlAccessType.FIELD:映射这个类中的所有字段到XML
XmlAccessType.PROPERTY:映射这个类中的属性(get/set⽅法)到XML
XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)
XmlAccessType.NONE:不映射
@XmlElement
指定⼀个字段或get/set⽅法映射到XML的节点。

如,当⼀个类的XmlAccessorType 被标注为PROPERTY时,在某⼀个没有get/set⽅法的字段上标注此注解,即可将该字段映射
XML。

参数:defaultValue 指定节点默认值
name 指定节点名称
namespace 指定节点命名空间
required 是否必须(默认false)
nillable 该字段是否包含 nillable="true" 属性(默认为false)
type
定义该字段或属性的关联类型
@XmlAttribute 指定⼀个字段或get/set⽅法映射到XML的属性。

参数:name 指定属性名称
namespace 指定属性命名空间
required 是否必须(默认为false)
@XmlTransient 定义某⼀字段或属性不需要被映射为XML。

如,当⼀个类的XmlAccessorType 被标注为PROPERTY时,在某⼀get/set⽅法的字段上标注此注解,那么该属性则不会被映射。

@XmlType 定义映射的⼀些相关规则
参数:propOrder 指定映射XML时的节点顺序
factoryClass 指定UnMarshal时⽣成映射类实例所需的⼯⼚类,默认为这个类本⾝
factoryMethod 指定⼯⼚类的⼯⼚⽅法
name 定义XML Schema中type的名称
namespace 指定Schema中的命名空间
@XmlElementWrapper 为数组元素或集合元素定义⼀个⽗节点。

如,类中有⼀元素为List items,若不加此注解,该元素将被映射为
<items>...</items>
<items>...</items>
这种形式,此注解可将这个元素进⾏包装,如:
@XmlElementWrapper(name="items")
@XmlElement(name="item")
public List items;
将会⽣成这样的XML样式:
<items>
<item>...</item>
<item>...</item>
</items>
@XmlJavaTypeAdapter
⾃定义某⼀字段或属性映射到
XML的适配器。

如,类中包含⼀个接⼝,我们可以定义⼀个适配器(继承⾃ javax.xml.bind.annotation.adapters.XmlAdapter类),指定这个接⼝如何映射到XML。

@XmlSchema
配置整个包的namespace,这个注解需放在package-info.java⽂件中。

jaxb
编码:
JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
InputStreamReader
reader=new
InputStreamReader(inputStream,"GBK");
//
在此修改编码
return unmarshaller.unmarshal(reader);。

相关文档
最新文档