Marshall une carte vers XML avec la clé comme nom d'élément
JAXB fournit un moyen pratique de mapper des objets en XML. Cependant, pour une carte, il la rassemble généralement dans une structure avec
Dans certains cas, vous souhaiterez peut-être rassembler la carte en XML avec 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 le marshalling et le démarshalling personnalisé implique 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 de
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 où ce comportement est souhaité.
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!