JAXB属性的默认行为

JAXB属性的默认行为,jaxb,marshalling,Jaxb,Marshalling,在JAXB中,如果没有提供注释,那么元素名将从属性名而不是字段中派生,但是在这种情况下属性又如何呢?是否存在将属性写回XML文件的默认行为?1)如果未提供注释: 每个公共getter/setter对和每个公共字段都将 自动绑定到XML,除非由{@link xmltransive}注释 比如说 public class Cat { public String name = "tomcat"; private String nick = "catalina"; publ

在JAXB中,如果没有提供注释,那么元素名将从属性名而不是字段中派生,但是在这种情况下属性又如何呢?是否存在将属性写回XML文件的默认行为?

1)如果未提供注释:
每个公共getter/setter对和每个公共字段都将 自动绑定到XML,除非由{@link xmltransive}注释
比如说

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>
<cat home="java.home" nick="catalina">
    <name>tomcat</name>
    <age>5</age>
</cat>
输出为

<cat>
    <name>tomcat</name>
    <age>5</age>
</cat>
<cat home="java.home" nick="catalina">
    <name>tomcat</name>
    <age>5</age>
</cat>

雄猫
5.
1)如果未提供注释:
每个公共getter/setter对和每个公共字段都将 自动绑定到XML,除非由{@link xmltransive}注释
比如说

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>
<cat home="java.home" nick="catalina">
    <name>tomcat</name>
    <age>5</age>
</cat>
输出为

<cat>
    <name>tomcat</name>
    <age>5</age>
</cat>
<cat home="java.home" nick="catalina">
    <name>tomcat</name>
    <age>5</age>
</cat>

雄猫
5.

这意味着每次必须提供@xmldattribute注释时都要指定属性?这意味着每次必须提供@xmldattribute注释时都要指定属性?