Leerraum |
XML 1.0 definiert Leerraum (Whitespace) als Leerzeichen (spaces), Tabulatoren, Wagenrücklauf (Carriage-return) oder Zeilenvorschub (Line-feed). In XML 1.1 sind das Zeichen für eine neue Zeile, NEL (#x85), und das Unicode-Zeilentrennzeichen (#x2028) hinzugekommen. Leerraum dient in XML demselben Zweck wie in den meisten Programmier- und natürlichen Sprachen, nämlich der Trennung von Token und Sprachelementen. Für einen XML-Parser ist der gesamte Leerraum im Elementinhalt signifikant und er wird daher an die Client-Anwendung weitergereicht. Leerraum innerhalb von Tags – etwa zwischen Attributen – ist nicht signifikant. Das lässt sich durch das folgende Beispiel veranschaulichen:
    <p>  This sentence has extraneous
      line breaks.</p>
Nach der Analyse durch den Parser werden die Zeichendaten aus diesem Beispielelement wie folgt an die zugrunde liegende Anwendung übergeben:
       This sentence has extraneous
    line breaks.
Wenngleich nach den XML-Richtlinien der gesamte Leerraum im Elementinhalt für die Verwendung in der Client-Anwendung erhalten bleiben soll, steht XML-Autoren ein weiteres Merkmal zur Verfügung, um noch einmal zu betonen, dass Leerzeichen und Zeilenformatierungen in den Zeichendaten eines Elements erhalten bleiben sollen. Weitere Informationen finden Sie in der Beschreibung des Attributs xml:space im Abschnitt Spezielle Attribute weiter hinten in diesem Kapitel. Um das Leben der Software-Entwicklerinnen zu erleichtern, sollen XML-Parser alle Wagenrücklaufzeichen (#xD) auf einzelne Zeilenvorschubzeichen (#xA) normalisieren. Erscheint das Wagenrücklaufzeichen direkt hinter einem Zeilenvorschub, wird es einfach entfernt. Das Ergebnis ist ein Dokument, das für die Kennzeichnung von Zeilenenden nur einzelne Zeilenvorschubzeichen enthält. In XML 1.1 geschieht diese Normalisierung auf ein Zeilenvorschubzeichen auch für die Unicode-Zeichen #x85 (NEXT LINE, NEL) und #x2028 (LINE SEPARATOR).