`XmlMapper` output not well-formed when Object keys use invalid XML name characters
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne damit, die Konvertierung mit XmlMapper und dem verlinkten Open Food Facts JSON oder BadXmlFromJson.zip zu reproduzieren. Vergleiche das generierte XML mit dem Parsing durch Xerces oder Saxon und untersuche anschließend die verfügbaren Optionen von FromXmlParser.Feature und ToXmlGenerator.Feature. Als abgeschlossen gilt die Aufgabe, wenn die Ausgabe für Schlüssel wie agribalyse_proxy_food_code:en und 1 wohlgeformt ist und Namespace-Präfixe korrekt verarbeitet werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I've been working with a lot of web APIs and converting the JSON to XML using XmlMapper. It generally works great, but I have an example that creates invalid XML. I am using the latest version of Jackson (2.13.1).
When you call this API you get the attached JSON output.
https://world.openfoodfacts.org/api/v0/product/7622300315733.json
The Jackson pretty-printer has no problem indenting this nicely.
BadXmlFromJson.zip
After converting it to XML (also in the attached ZIP) you get some issues that prevent Xerces or Saxon from parsing it:
- Namespace prefixes are not declared
- Some elements are not well formed
For example, at line 48 you see this:
<agribalyse_proxy_food_code:en>12315</agribalyse_proxy_food_code:en>
and at line 653 you see this: <1> which is an error because XML names must start with a letter or underscore.
I'm using XmlMapper like this:
XmlMapper xmlMapper = new XmlMapper();
return xmlMapper.writeValueAsString(jsonTree);
I can't find any features in FromXmlParser.Feature or ToXmlGenerator.Feature that apply to either of these issues.
Is there another way to configure XmlMapper or is this a bug?
- Vorherrschende Sprache
- Java
- Sterne
- 636
- Forks
- 250
- Ø Merge
- 7 Std. 10 Min.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus FasterXML/jackson-dataformat-xml
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
FasterXML/jackson-dataformat-xml#931 · 3 Kommentare ·
-
XmlMapper with `FAIL_ON_UNKNOWN_PROPERTIES` fails on whitespace-only elementEvtl. vergeben @arimu1 hat das vor 89 Tagen übernommen. Offento-evaluate
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
-
3.x
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
FasterXML/jackson-dataformat-xml#787 · 1 Kommentar ·
Alle Issues in FasterXML/jackson-dataformat-xml
Ähnliche Issues
-
Cleanup: restore the interrupt flag in AiFailureAnalyzerEvtl. vergeben @Rishankgupta08 hat das heute übernommen. Offengood first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
seleniumboot/selenium-boot#258 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
dense-analysis/ale#5181 ·
-
bug subsystem:agent-harness triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
ShaftHQ/SHAFT_ENGINE#8043 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
johanhaleby/occurrent#1505 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag