2012-04-04 10 views
8

JAXBを使用する際にAnnotation @ XmlAccessorTypeを指定する必要がある理由を知りたかったのです。JAXB:注釈@XmlAccessorTypeはシリアル化のみであり、データのバインドとは何も関係がありませんか?

私はこれを見つけたときに、この説明をウェブサイトから見つけました。 @XmlAccessorTypeはデフォルトのフィールドとプロパティの直列性を設定します。デフォルトでは、JAXBはパブリックフィールドとプロパティをシリアル化します。 @XmlAccessorTypeを設定することにより、Beanは注釈付きフィールドのシリアライズのみを許可することができます。

ここでは、この注釈ではシリアル化を制御すると述べています。

@XmlAccessorTypeは、JAXBのバインディングとアンバインドをXMLからjavaに、JavaからXMLにアンバインドすることとは何の関係もなく、シリアライゼーションについてのみです。

答えて

13

JAXBの@XmlAccessorType注釈のみをXMLから/へファイルをマーシャリングする方法を決定するためのJAXB (JSR-222)実装で使用されています

通常行われる主な決定はFIELD & PROPERTY/PUBLICの間にあります。 FIELDは、マーシャリング/アンマーシャリング中にトリガしたくないロジックを取得/設定メソッドに持つ場合に特に便利です。一つの方法を参照するには、この選択は、マッピング・メタデータの参照に影響:あなたは多くのマップされていない性質を持っている場合

NONEが有用な選択肢であるが、あなたはフィールドのみをマッピングするために、あなたのJAXBの実装を伝えたいです/注釈を付けたプロパティ。多くの@XmlTransient注釈をモデルに追加するよりも簡単に行うことができます。詳細情報

フォア

関連する問題