在 JAXB 中,如果未提供注释,则元素名称将派生自属性名称而不是字段,但是在这种情况下属性呢?将属性写回 XML 文件是否有任何默认行为?
问问题
121 次
1 回答
1
1) 如果未提供注释:
每个公共 getter/setter 对和每个公共字段都将自动绑定到 XML,除非由 {@link XmlTransient} 注释
例如
public class Cat
{
public String name = "tomcat";
private String nick = "catalina";
public int getAge() { return 5; }
public void setAge(int age) {}
}
后
JAXB.marshal(cat, System.out);
输出是
<cat>
<name>tomcat</name>
<age>5</age>
</cat>
2) XML 属性呢?XML 属性被命名为字段或 getter/setter 对并放置在根节点
中,例如
@XmlAccessorType(XmlAccessType.FIELD)
public class Cat
{
String name = "tomcat";
@XmlAttribute
String nick = "catalina";
@XmlAttribute
String home = "java.home";
int age = 5;
}
输出是
<cat home="java.home" nick="catalina">
<name>tomcat</name>
<age>5</age>
</cat>
于 2012-08-19T19:27:27.727 回答