JAXB:注释@XmlAccessorType是仅用于序列化而与数据绑定无关?

Paw*_*wan 12 jaxb

我想知道为什么在使用JAXB时我们需要指定注释@XmlAccessorType.

当我用Google搜索时,我从一个网站上找到了这个描述,说明这个 @XmlAccessorType设置了默认字段和属性可序列化.默认情况下,JAXB序列化公共字段和属性.通过设置@XmlAccessorType,bean可以选择仅允许序列化带注释的字段.

在这里,作者提到通过这个注释,它可以控制序列化.

我的问题是,所以@XmlAccessorType与从XML到java和java到XML的JAXB绑定和解除绑定无关,而且它仅与序列化有关.

bdo*_*han 16

JAXB的@XmlAccessorType注释仅供JAXB(JSR-222)实现用于确定如何将文件封送到XML或从XML封送文件:

通常,主要决定是在FIELD&PROPERTY/ PUBLIC. FIELD当您在get/set方法中有逻辑时,在编组/解组时不需要触发逻辑时,它会特别有用.要查看此选项影响映射元数据的一种方式,请参阅:

NONE当您有许多未映射的属性并且您希望告诉您的JAXB实现仅映射您已注释的字段/属性时,这是一个有用的选择.这比@XmlTransient在模型中添加大量注释要容易得多.

更多信息