Marshallieren Sie eine Zuordnung zu XML mit Schlüssel als Elementname
JAXB bietet eine praktische Möglichkeit, Objekte zu XML abzubilden. Allerdings wird eine Map normalerweise in eine Struktur mit verschachtelten
In manchen Fällen möchten Sie die Map möglicherweise mit dem in XML marshallen Schlüssel als Elementnamen und die Werte als Elementinhalte.
Adressieren dynamischer Attributnamen
Der von JAXB-Entwicklern empfohlene Ansatz Für die Handhabung von benutzerdefiniertem Marshalling und Unmarshalling ist die Verwendung eines XmlAdapters erforderlich. Allerdings kann die Implementierung des Adapters zur Verarbeitung dynamischer Attributnamen eine Herausforderung darstellen.
Alternative Lösungen
Obwohl von der Generierung solcher XML-Daten aufgrund ihrer Auswirkungen auf den Schnittstellenvertrag generell abgeraten wird sind ein paar mögliche Lösungen:
1. Verwenden Sie einen Aufzählungstyp für Schlüssel:
Definieren Sie einen Aufzählungstyp für die Zuordnungsschlüssel. Dadurch wird sichergestellt, dass die XSD zur Kompilierungszeit eine Liste bekannter Elemente enthält.
2. Vereinfachen Sie die Standardstruktur:
Verwenden Sie einen MapAdapter, um die Map in ein Array von MapElements zu konvertieren, das Attribute für Schlüssel und Wert enthält. Dies vereinfacht die XML-Struktur auf eine Liste von
Schlussfolgerung
Obwohl es nicht empfohlen wird, XML mit dynamischen Elementnamen zu generieren, Die bereitgestellten Alternativen bieten Lösungen für bestimmte Szenarien, in denen dieses Verhalten gewünscht ist.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3