Menu

#149 Editor unterstützt das Escaping nicht XML-konform

open
nobody
None
5
2013-01-15
2008-01-29
No

In XML-Dokumenten sind laut Spezifikation (http://www.w3.org/TR/REC-xml/#syntax, http://www.w3.org/TR/REC-xml/#sec-cdata-sect\) und einer Interpretation (gängige Implementierungen, http://www.dpawson.co.uk/xsl/sect2/cdata.html#d3108e243\) folgende Werte für XML-Elemente als _identisch_ zu interpretieren:

1. <p>Text</p>

vs.

2. <![CDATA[<p>Text</p>]]>

Beides sollte im Editor angezeigt werden als 'Text'.
Der Editor jedoch zeigt bei ersterem folgenden Wert an (ohne Anführungszeichen):
'null
Text'

Bei 2. zeigt er an (ohne Anführungszeichen):
'Text'

Meine Vermutung ist folglich, dass der Editor die Inhalte unterschiedlich interpretiert, obwohl das lt. Spezifikation nicht vorgesehen ist. Konkret unterstützt der Editor offenbar nur eingeschränkt das Escaping von Markup-Zeichen (z.B. '&lt;' statt '<').

Wenn ich ein XML-Dokument lade, das die in 1. verwendete Notation hat, fügt der Editor ein "null" an den Anfang des Textfelds. Speichere ich das Dokument, so fügt er diesem Textfeld die CDATA-Informationen hinzu, so dass das Resultat aus dem obigen Beispiel dann ergibt:
<![CDATA[null<p>Text</p>]]>

Discussion

  • Daire Kivlehan

    Daire Kivlehan - 2008-07-02

    Logged In: YES
    user_id=715245
    Originator: NO

    Der grund warum wir CDATA benutzen ist dass HTML ist nicht XML konform. In XML muss jeder tag richtig geschlossen sein aber in HTML ist so etwas nicht pflight.
    Zum Beispeil um ein neue Zeile in HTML einzufügen benutzt man <br> - ohne ein zugehörende </br> - etwas was in XML verboten ist.

     
  • Thomas Ternité

    Thomas Ternité - 2008-07-02

    Logged In: YES
    user_id=1299704
    Originator: YES

    Aber wenn ich davon ausgehe, dass der Editor ein generischer XML-Editor ist, dann müsste er doch auch in der Lage sein XML-Dateien richtig anzuzeigen, die nicht mit dem Editor erstellt worden sind. In diesem Fall kann ich also nicht voraussetzen, dass bei html-Feldern ein CDATA-Feld eingetragen ist. Und wenn das nicht der Fall ist zeigt der Editor das Feld falsch an.

    Außerdem: CDATA hat doch lediglich einen Bezug zur Interpretation der Zeichen, nicht des HTML-Textes. Ich kann auch ohne CDATA konformes oder nicht konformes HTML schreiben, der Editor müsste mindestens das konforme HTML auch ohne CDATA anzeigen können.

     

Log in to post a comment.