我有注释@Entity的实体Bean A,B 当我尝试使用JAXB Marshing编组Bean时,我得到了一个类似XML的结构
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:A xmlns:a="..........." xmlns:b="...........">
<a:B dbId="0" >
<b:FirstName dbId="0">......</b:FirstName>
</a:B>
</a:A>
我用过
@XmlRootElement(name = "A",namespace = "........")
@XmlAccessorType(XmlAccessType.NONE)
@Entity
public class A{
@XmlElement(name = "B")
private B name;
............
...............
}
@Entity
@XmlRootElement(name = "B",namespace = "........")
@XmlAccessorType(XmlAccessType.NONE)
public class B{
.................
}
如何添加class =&#34; x.y.z.A&#34;喜欢以下属性中的东西:
<a:B class="x.y.z.B" >
我有一个类只有一个类型&#34; Float&#34; ,我不想在xml中显示浮动。
@XmlRootElement(name="start")
public class Start extends Timing{
private Float mFloat;
public Float getFloat() {
return mFloat;
}
public void setFloat(Float f) {
mFloat = f;
}
}
当我编组时,我得到了
<a:start>
<start:float>8.329042</start:float>
</a:start>
如果没有&#34;浮动标记&#34;我怎么能显示它? ,如下?
<a:start>8.329042<a/start>
出于安全原因,我无法提供真正的课程。
答案 0 :(得分:1)
JAXB_FRAGMENT
上设置Marshaller
属性,以防止将标头写入OutputStream
或Writer
。@XmlAttribute
注释的原始数字字段/属性。 JAXB不会封送空值,因此您可以将原语更改为其对应的对象形式(即int
到Integer
)。String
注释的私有静态@XmlAttribute
字段,并使用此值填充它。float
为@XmlValue
属性添加注释,以获得所需的结果。