文档章节

在Java中,@XmlType 、@XmlRootElement、@XmlElement 这类用法

肥猫钓鱼
 肥猫钓鱼
发布于 2014/11/14 09:24
字数 282
阅读 96
收藏 0

默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使用@XmlType的propOrder属性 来指定序列化的顺序。

第一步:定义java类时,使用@XmlType(propOrder = { "id", "name", "age","book"})指定输出顺序。

package step2;

import java.util.Set;

import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType;

@XmlRootElement @XmlType(propOrder = { "id", "name", "age","book"}) public class Customer { String name; int age; int id; Set<Book> book; @XmlElement(name="name") public String getName() { return name; }

public void setName(String name) {
	this.name = name;
}

@XmlElement(name="age")
public int getAge() {
	return age;
}

public void setAge(int age) {
	this.age = age;
}
@XmlElement(name="id")
public int getId() {
	return id;
}

public void setId(int id) {
	this.id = id;
}


@Override
public String toString() {
	return "Customer [id=" + id + ",name=" + name + ",age=" + age + ",book=" + book + "]";
}
@XmlElementWrapper(name="books")
@XmlElement(name="book")
public Set<Book> getBook() {
	return book;
}

public void setBook(Set<Book> book) {
	this.book = book;
}

}

输出的xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<customer> <id>100</id> <name>suo</name> <age>29</age> <books> <book> <id>1</id> <name>哈里波特</name> <price>100.0</price> </book> <book> <id>2</id> <name>苹果</name> <price>50.0</price> </book> </books> </customer>

注: 1.对于@XmlElementWrapper标注的属性,不能出现在@XmlType的propOrder列表中。 2.对于所有@XmlElement标注过的属性,必须出现在@XmlType的propOrder列表中。

//参考: http://suo.iteye.com/blog/1233621

© 著作权归作者所有

共有 人打赏支持
肥猫钓鱼
粉丝 1
博文 52
码字总数 9287
作品 0
深圳
程序员
私信 提问
JAXB Annotation初步使用

JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式。JAXB提供两种主要特性:将一个Java对象序列化为XML,以及反向操作,将XML解析成Java对象。换...

秋风醉了
2014/07/02
0
0
Apache CXF 整合 Map

在进行编码前有必要对一些基本的认识进行介绍,以便后面的讲解。 1、JAXB: JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这...

yaokangjun
2014/08/21
0
1
JAXB注解 java 关于xml的注解,自动生成xml文件

JAXB中的注解,用来根据java类生成xml内容。 当使用 @XmlRootElement 注释对顶层类或枚举类型进行注释时,类型值被表示为 XML 文档中的 XML 元素。 JAXB Annotation XmlAccessorType默认规则...

于谦老师
2017/10/18
0
0
JAXB注解使用

一.Jaxb处理java对象和xml之间转换常用的annotation有: @XmlType @XmlElement @XmlRootElement @XmlAttribute @XmlAccessorType @XmlAccessorOrder @XmlTransient @XmlJavaTypeAdapter  二......

jason_wu_2
2016/12/22
9
0
[CXF REST标准实战系列] 一、JAXB xml与javaBean的转换

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1、不认识到犯错,然后得到永久的教训。 2、认识JAXB 3、代码实战 1、不认识到...

泥沙砖瓦浆木匠
2015/02/09
0
2

没有更多内容

加载失败,请刷新页面

加载更多

域名备案图文教程

摘要: 备案不易,且行且珍惜! 我买了个腾讯云的服务器,1核1G,打算用于部署个人网站kiwenlau.com。根据规定,在国内部署网站,是需要为域名备案的... 备案是通过腾讯云申请的,一切都很顺利...

Fundebug
5分钟前
0
0
怎么写出好的敏捷测试(Agile Tesing)策略文档

敏捷测试策略 在敏捷环境中,我们在短期冲刺或迭代中工作,每个sprint只关注一些需求或用户故事,因此文档在数量和内容方面可能不会那么广泛。 之前我们得出的结论是,由于时间限制,我们可能...

程序猿拿Q
5分钟前
0
0
Linux之《荒岛余生》(二)CPU篇

Linux之《荒岛余生》(二)CPU篇 温馨提示,动图已压缩,流量党放心查看。CPU方面内容不多,我们顺便学点命令。本篇是《荒岛余生》系列第二篇,垂直观测CPU。其余参见: Linux之《荒岛余生》...

小姐姐味道
9分钟前
0
0
DRDS SQL 审计与分析——全面洞察 SQL 之利器

背景 数据库存储着系统的核心数据,其安全方面的问题在传统环境中已经成为泄漏和被篡改的重要根源。而在云端,数据库所面临的威胁被进一步的放大。因此,对云数据库的操作行为尤其是全量 SQ...

阿里云云栖社区
10分钟前
2
0
JSONArray 排序

List<JSONObject> jsonArySort = new ArrayList<JSONObject>();    for (int i = 0; i < rtJsonArray.length(); i++) {    jsonArySort.add(rtJsonArray.getJSONObject(i));......

MoksMo
12分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部