Was ist die richtige Art und Weise zu Kodieren, CR-LF-Zeilenumbrüche in text - /xml-Werte?

Im Gegensatz zu application/xml Dateien, die etwas tun konnte, oder normalizedString Werte, die konvertieren, werden alle whitespace-Zeichen-Sequenzen zu einem einzigen Leerzeichen, ich Frage hier speziell im Zusammenhang mit der text - /xml-Dateien mit string-Werte. Der Einfachheit halber, sagen wir, ich bin nur mit ASCII-Zeichen mit utf-8-codierte Datei.

Angesichts der folgenden zwei-line-text-string möchte ich darstellen, in XML:

Hello
World!

Welche der folgenden bytes im Speicher:

0000: 48 65 6c 6c 6f 0d 0a 57 6f 72 6c 64 21 Hello..World!

Gemäß RFC 2046, text/* MIME-Typ MUSS (nicht sollte) stellen einen Zeilenumbruch mit Wagenrücklauf gefolgt von Zeilenvorschub-Zeichen-Sequenz. In diesem Licht, das folgende XML-fragment sollte Recht behalten:

<tag>Hello
World!</tag>

oder

0000: 3c 74 61 67 3c 48 65 6c 6c 6f 0d 0a 57 6f 72 6c <tag>Hello..Worl
0010: 64 21 3c 2f 74 61 67 3c                         d!</tag>

Aber ich regelmäßig Dateien wie die folgenden:

<tag><![CDATA[Hello
World!]]></tag>

Oder, noch seltsamer:

<tag>Hello&xD;
World!</tag>

Wo die &0xD; Sequenz, gefolgt von einem einzelnen Linefeed-Zeichen:

0000: 3c 74 61 67 3c 48 65 6c 6c 6f 26 78 44 3b 0a 57 <tag>Hello&xD;.W
0010: 6f 72 6c 64 21 3c 2f 74 61 67 3c                orld!</tag>

Was vermisse ich hier? Was ist die richtige Art und Weise zu repräsentieren mehrere Zeilen text in eine XML-Zeichenfolge-Wert, so dass es aus dem anderen Ende unbehelligt?

InformationsquelleAutor AlwaysLearning | 2013-02-22

Schreibe einen Kommentar