Warum werden XML-eigene Zeichen automatisch umgeschrieben?
Wenn ich einen Text per SimpleXML in eine XML-Datei (<?xml version="1.0"
encoding="UTF-8"?>) speicher, dann werden aus < > und & von allein < > und
&
" und ' bleiben aber unverändert.
Warum werden < > und & automatisch umgeschrieben? (Ist das immer so, oder hängt
das von der Installation auf dem Server ab?)
Und warum sind " und ' (die ja auch XML-eigene Zeichen sind) nicht betroffen?
Antwort schreiben
Antwort 1 von son_quatsch vom 20.07.2022, 08:19 Options
Zitat:
Warum werden < > und & automatisch umgeschrieben? (Ist das immer so, oder hängt das von der Installation auf dem Server ab?)
Und warum sind " und ' (die ja auch XML-eigene Zeichen sind) nicht betroffen?
Ein Blick in die
W3C Recommendations für XML Punkt 2.4: Character Data and Markup definiert, dass
< und
& so gut wie nie verwendet werden dürfen.
> hingegen ist nicht zwingend notwendig, wird aber trotzdem gern auch maskiert - das ist also SimpleXMLs Entscheidung.
" und
' müssen genausowenig maskiert werden.
Macht auch alles Sinn: ein Tag wird immer mit einem
< eingeleitet - würde dieses Zeichen also im Tag-Inhalt auftauchen könnte keiner mehr zweifelsfrei entscheiden, ob es noch zum Text gehört oder ob ein neuer Tag grad anfängt. Dasselbe mit
& - damit wird immer eine Entity eingeleitet.