JAXB は、マップを次のような構造にマーシャリングすることをネイティブにサポートしています。
<map> <entry> <key> KEY </key> <value> VALUE </value> </entry> <entry> <key> KEY2 </key> <value> VALUE2 </value> </entry> ... </map>
ただし、場合によっては、XML を生成する必要がある場合があります。
<map> <key> VALUE </key> <key2> VALUE2 </key2> ... </map>
このタイプの XML 生成は、実行時にマップのコンテンツへの依存関係が生じるため、通常は避けることをお勧めします。これは、XML スキーマ (XSD) で定義されたインターフェイス コントラクトに影響を与える可能性があります。
代わりに、要素名がコンパイル時に認識されるようにして、JAXB がスキーマを生成できるように、マップのキーとして列挙型を使用することを検討してください。 XML 内の要素を制限します。
デフォルトで生成される構造を簡素化するには
<map> <item key="KEY" value="VALUE"/> <item key="KEY2" value="VALUE2"/> </map>
Map を MapElement の配列に変換するカスタム MapAdapter を実装します。
以上がJAXB でマップを「value」形式にマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。