リクエストとユーザーに基づいてフィールドを選択的にシリアル化したい。
たとえば、管理者ユーザーには、いくつかの追加フィールドを含む XML が提供されます。一方、通常のユーザーは、これらのフィールドのない XML を取得します。
@XmlIDREF
第二に、現在、参照されているオブジェクトまたはコレクションの不要な拡張を防ぐために使用しています。
ただし、ユーザーがそれらの詳細を必要とする場合もあります。参照されたオブジェクトに対して 2 番目の要求を行うことは望ましくありません。XYZ属性を展開する必要があることをユーザーにサーバーに伝えたい(つまり、参照だけでなく完全なオブジェクトを含める)
ユーザーとリクエストが与えられると、ビジネス ロジックに基づいて、どのフィールドをシリアル化する必要があるかがわかります。この情報を JAXB に伝えるにはどうすればよいでしょうか。
可能な限り、XSD を作成したくありません。リクエスト パラメータは動的であることに注意してください。シリアル化するフィールドは実行時に決定されます。そのため、ハードコーディングする必要があるもの@Transient
(または@XmlIDREF
注釈など) を使用することはできません。