JAXB2.0のXml出力

ちょっと調査をしたので忘れないようにメモをしておきます。

基本
XmlAccessTypeはjavaクラス中のフィールドやプロパティを
デフォルトでXMLにマッピングする対象とするかを指定する。

FIELD - フィールドが対象
PROPERTY - プロパティ(getter)が対象
PUBLIC_MEMBER - publicなフィールドとプロパティが対象
NONE - 対象にしない
※指定しないときは"PUBLIC_MEMBER"が指定されたものとされる。


使い方
"@XmlAccessorType(XmlAccessType.FIELD)"などを
クラスにアノテーションとして付ける。

@XmlAccessorType(XmlAccessType.PROPERTY)
public class Hoge extends Base {

    public String test = "hogehoge";
以下略

調べたこと
1. 継承されたクラスの内容もXmlAccessorTypeでXMLの要素となる
Baseクラスを継承したHogeクラスがあるとする。
HogeクラスにXmlAccessorTypeを指定した場合、
継承されたBaseクラスのフィールドとプロパティも
XMLの要素として含まれる。


2. XMLの要素に入る値
"FIELD"を使った場合はgetterに関係なくフィールドの値がXML要素の値として入る。
"PROPERTY"を使った場合はgetterを通した値がXML要素の値として入る。