Heim > Java > javaLernprogramm > 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
Freigeben: 2024-11-21 08:59:09
Original
250 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage