ホームページ  >  記事  >  Java  >  JAXB でマップを「value」形式にマーシャリングする方法

JAXB でマップを「value」形式にマーシャリングする方法

DDD
DDDオリジナル
2024-11-21 08:59:09202ブラウズ

How to Marshal a Map into `value` Format in JAXB?

JAXB: マップを value にマーシャリングします。形式

コンテキスト

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>

解決策 1: 回避する動的要素名

このタイプの XML 生成は、実行時にマップのコンテンツへの依存関係が生じるため、通常は避けることをお勧めします。これは、XML スキーマ (XSD) で定義されたインターフェイス コントラクトに影響を与える可能性があります。

代わりに、要素名がコンパイル時に認識されるようにして、JAXB がスキーマを生成できるように、マップのキーとして列挙型を使用することを検討してください。 XML 内の要素を制限します。

解決策 2: XML 構造をカスタマイズする

デフォルトで生成される構造を簡素化するには

<map>
    <item key="KEY" value="VALUE"/>
    <item key="KEY2" value="VALUE2"/>
</map>

Map を MapElement の配列に変換するカスタム MapAdapter を実装します。

以上がJAXB でマップを「value」形式にマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。