XML - HTML entities



  • Hallo zusammen,

    bin hier bei der Thematik etwas verwirrt, daher würde ich gerne einmal Klärung haben:
    Wenn ich in einem XML-Dokument XML enkodierte HTML-Entities habe, dann ist doch alles in Ordnung, richtig?
    Das heißt ein entsprechendes Marshalling-Framewok müsste damit zurecht kommen?
    Beispiel:

    <Name>&amp;sup2;</Name>
    

    Ich frage, denn ein Framework was ich momentan verwende (konkret: Java, Easy Batch) fällt mit dem konkreten Beispiel auf die Nase.
    Wenn ich es aber korrekt interpretiere dann liegt es daran, dass das Framework typisches ETL (extract - transform - load) macht - ich nehme an, dass der Reader das ganze decoded und dann so an den Mapper weiter gibt, dieser beschwert sich dann weil aus "&sup2;" "²" wurde und er hier eine entsprechende entity sucht, die nicht existiert.
    Das sollte dann aber, um die Frage zu wiederholen, ein Problem des Frameworks sein und nicht ein Problem mit dem XML-Dokument, korrekt?



  • Der XML-Standard definiert klar, daß bestimmte Sonderzeichen escaped werden müssen, also z.B. '&' zu '&' wird, s. z.B. XML/Regeln/Zeichen.
    Beim Einlesen (und parsen) wird dann wieder die Rücktransformation vorgenommen.

    Jedoch gibt es auch bei HTML so eine Liste, s. List of XML and HTML character entity references.

    Anscheinend kennt die verwendete XML-Library diese HTML Character Entities nicht, so daß aus "²" also "&ampsup2;" wird (also das '&' nochmals escaped wurde).

    Bei der Rücktransformation müßte (wenn dieselbe XML-Library dafür verwendet wird), wieder "²" daraus werden.

    Warum der Mapper dann aber "&sup2;" verlangt, kann ich mir nicht erklären, denn das ist ja nur die XML-Kodierung? 😕



  • War tatsächlich ein Fehler des Frameworks - die ganze Thematik hatte mich aber etwas verwirrt.

    Das Problem war, dass das Framework den Inhalt der XML geparsed und dabei auch unescaped hat und dann so an den Marshaller weitergegeben hat.
    Dadurch, dass die HTML-Entities an der Stelle dann nicht mehr escaped waren, fällt dieser dann aber auf die Nase, denn er liest die Syntax für eine Entity und wundert sich, was das sein soll (keine XML-Entity zu finden).
    Tatsächlich wurde das schon in einem minor release gefixed.

    Danke trotzdem für deine Antwort!


Log in to reply