Maison > Java > javaDidacticiel > le corps du texte

Comment rassembler une carte au format « valeur » dans JAXB ?

DDD
Libérer: 2024-11-21 08:59:09
original
218 Les gens l'ont consulté

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

JAXB : regrouper une carte en value Format

Context

JAXB prend en charge nativement le regroupement d'une carte dans une structure comme celle-ci :

<map>
  <entry>
    <key> KEY </key>
    <value> VALUE </value>
  </entry>
  <entry>
    <key> KEY2 </key>
    <value> VALUE2 </value>
  </entry>
  ...
</map>
Copier après la connexion

Cependant, dans certains cas, il peut être nécessaire de générer du XML là où le la clé devient un nom d'élément et la valeur devient son contenu, comme ceci :

<map>
  <key> VALUE </key>
  <key2> VALUE2 </key2>
 ...
</map>
Copier après la connexion

Solution 1 : éviter les éléments dynamiques Noms

Il est généralement conseillé d'éviter ce type de génération XML car il introduit une dépendance sur le contenu de la carte au moment de l'exécution. Cela peut avoir un impact sur les contrats d'interface définis dans le schéma XML (XSD).

Envisagez plutôt d'utiliser un type énuméré comme clé de la carte pour garantir que les noms des éléments sont connus au moment de la compilation, permettant ainsi à JAXB de générer un schéma. qui restreint les éléments dans le XML.

Solution 2 : Personnalisation de la structure XML

Pour simplifier la structure générée par défaut en quelque chose comme :

<map>
    <item key="KEY" value="VALUE"/>
    <item key="KEY2" value="VALUE2"/>
</map>
Copier après la connexion

Implémentez un MapAdapter personnalisé qui convertit la carte en un tableau de MapElements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal