JAXB注解及xml相关操作

简单介绍
@XmlRootElement指定根节点,name指定根节点名称,nameSpace指定命名空间。
@XmlAccessorType用于指定由java对象生成xml文件时对java对象属性的访问方式。常与@XmlRootElement、@XmlType一起使用。它的属性值是XmlAccessType的4个枚举值,分别为:
  XmlAccessType.FIELD:java对象中的所有成员变量;
  XmlAccessType.PROPERTY:java对象中所有通过getter/setter方式访问的成员变量;
  XmlAccessType.PUBLIC_MEMBER:java对象中所有的public访问权限的成员变量和通过getter/setter方式访问的成员变量;默认;
  XmlAccessType.NONE:java对象的所有属性都不映射为xml的元素。
注意:@XmlAccessorType的默认访问级别是XmlAccessType.PUBLIC_MEMBER,因此,如果java对象中的private成员变量设置了public权限的getter/setter方法,就不要在private变量上使用@XmlElement和@XmlAttribute注解,否则在由java对象生成xml时会报同一个属性在java类里存在两次的错误。同理,如果@XmlAccessorType的访问权限为XmlAccessType.NONE,如果在java的成员变量上使用了@XmlElement或@XmlAttribute注解,这些成员变量依然可以映射到xml文件。

@XmlType使用propOrder属性来控制XML元素的排序,使用该属性时,必须列出JavaBean对象中的所有字段;当XmlAccessType.FIELD时值为成员变量名称;当XmlAccessType.PUBLIC_MEMBER时为get/set的名称;
@XmlElement映射Java属性与xml标签
@XmlAccessorOrder用于对java对象生成的xml元素进行排序。它有两个属性值:
  AccessorOrder.ALPHABETICAL:对生成的xml元素按字母书序排序
  XmlAccessOrder.UNDEFINED:不排序
JAXB注解介绍
JAXB注解使用

Java实体

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
//设置生成的xml的根节点的名称  
@XmlRootElement(name = "DOCUMENT")
//设置根据字段生成  
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DOCUMENT", propOrder = {
    "signature", "packet" })
public class Request {
   
	@XmlElement(name = "SIGNATURE")
	private String signature;
	@XmlElement(name = "PACKET")
	private Packet packet;
	........
}

@XmlRootElement(name = "PACKET")
@XmlAccessorType(XmlAccessType.FIELD)
//按xml标签字母排序
@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL)
@XmlType(name = "PACKET", propOrder = {
    "head", "body" })
public class Packet {
   
	@XmlElement(name = "HEAD")
	private Head head;
	@XmlElement(name = "BODY")
	private Body body;
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值