Heim  >  Artikel  >  Java  >  Wie kann ich eine Karte in JAXB in das „Wert'-Format transformieren?

Wie kann ich eine Karte in JAXB in das „Wert'-Format transformieren?

DDD
DDDOriginal
2024-11-21 08:59:09202Durchsuche

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

JAXB: Marshallen einer Karte in value Format

Kontext

JAXB unterstützt nativ das Marshallen einer Map in eine Struktur wie diese:

<map>
  <entry>
    <key> KEY </key>
    <value> VALUE </value>
  </entry>
  <entry>
    <key> KEY2 </key>
    <value> VALUE2 </value>
  </entry>
  ...
</map>

In bestimmten Fällen kann es jedoch erforderlich sein, XML zu generieren, in dem die Der Schlüssel wird zu einem Elementnamen und der Wert wird zu seinem Inhalt, etwa so:

<map>
  <key> VALUE </key>
  <key2> VALUE2 </key2>
 ...
</map>

Lösung 1: Vermeiden Sie dynamische Elemente Namen

Im Allgemeinen wird empfohlen, diese Art der XML-Generierung zu vermeiden, da dadurch eine Abhängigkeit vom Inhalt der Karte zur Laufzeit entsteht. Dies kann sich auf im XML-Schema (XSD) definierte Schnittstellenverträge auswirken.

Erwägen Sie stattdessen die Verwendung eines Aufzählungstyps als Schlüssel der Map, um sicherzustellen, dass Elementnamen zur Kompilierungszeit bekannt sind, sodass JAXB ein Schema generieren kann das schränkt Elemente im XML ein.

Lösung 2: Anpassen der XML-Struktur

Um die standardmäßig generierte Struktur etwas zu vereinfachen wie:

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

Implementieren Sie einen benutzerdefinierten MapAdapter, der die Karte in ein Array von MapElements konvertiert.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Karte in JAXB in das „Wert'-Format transformieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn