"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment marshall une carte en XML avec la clé comme nom d'élément dans JAXB ?

Comment marshall une carte en XML avec la clé comme nom d'élément dans JAXB ?

Publié le 2024-11-14
Parcourir:371

How to Marshall a Map to XML with Key as Element Name in JAXB?

Marshall un mappage vers XML avec la clé comme nom d'élément

JAXB fournit un moyen pratique de mapper des objets vers XML. Cependant, pour une carte, il la rassemble généralement dans une structure avec des éléments imbriqués contenant des éléments et .

Dans certains cas, vous souhaiterez peut-être rassembler la carte en XML avec le les clés comme noms d'éléments et les valeurs comme contenu d'élément.

Adressage des noms d'attributs dynamiques

L'approche recommandée fournie par les développeurs JAXB pour gérer les le marshalling et le unmarshalling impliquent l’utilisation d’un XmlAdapter. Cependant, la mise en œuvre de l'adaptateur pour gérer les noms d'attributs dynamiques peut s'avérer difficile.

Solutions alternatives

Bien que la génération d'un tel XML soit généralement déconseillée en raison de son impact sur le contrat d'interface, il Voici quelques solutions possibles :

1. Utiliser un type énuméré pour les clés :

Définissez un type énuméré pour les clés de la carte. Cela garantit que le XSD inclut une liste d'éléments connus au moment de la compilation.

2. Simplifiez la structure par défaut :

Utilisez un MapAdapter pour convertir la carte en un tableau de MapElements contenant des attributs de clé et de valeur. Cela simplifie la structure XML en une liste d'éléments avec des attributs de clé et de valeur.

Conclusion

Bien qu'il ne soit pas recommandé de générer du XML avec des noms d'éléments dynamiques, les alternatives fournies offrent des solutions pour des scénarios spécifiques dans lesquels ce comportement est souhaité.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3