这是一个jaxb问题 一个豆类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "tableBean")
public class TableBean {
@XmlAttribute
private String type;
@XmlElement(name = "created_at")
private Date created_at;
@XmlElement(name = "database_id")
private int database_id;
@XmlElement(name = "id")
private int id;
我想要像这样的xml
<tables>
<table>
<created_at type="datetime">2013-08-28T21:14:35+09:00</created_at>
<database_id type="integer">1</database_id>
<id type="integer">1</id>
<table>
<tables>
我试图创建一个像这样的课程
public class Type_Int {
private String type;
private int id;
@XmlAttribute
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@XmlValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
在Type_Int.class中使用@ XmlAttribute我可以得到我想要的,但是我的项目有很多变量,我可以为每个人编写类,所以我可以在我的主bean.class中做一些事情,我可以轻松地做到/ p>
答案 0 :(得分:1)
如果您想映射如下字段:
private int id;
对于以下XML元素:
<id type="integer">123</id>
然后你可以利用XmlAdapter
。利用您问题中的Type_Int
类,您可以使用以下声明创建一个类,然后实现所需的marshal
和unmarshal
方法,以将Integer
转换为/从{{ 1}}。
Type_Int
要利用此适配器,您需要将字段从基本类型public class IntAdapter extends XmlAdapter<Type_Int, Integer> {
...
}
更改为对象类型int
,并将其注释为:
Integer