JAXBでは、アノテーションが提供されていない場合、要素名はフィールドではなくプロパティ名から派生しますが、この場合の属性はどうでしょうか。XMLファイルに属性を書き戻すためのデフォルトの動作はありますか?
質問する
121 次
1 に答える
1
1)アノテーションが提供されなかった場合:
{@ link XmlTransient}によるアノテーションが付けられていない限り、すべてのパブリックゲッター/セッターペアとすべてのパブリックフィールドは自動的にXMLにバインドされます
。
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属性は、フィールドまたはゲッター/セッターのペアのように名前が付けられ
、たとえばルートノードに 配置されます
@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 に答える