Zum Inhalt

Behandlung von Leerraumzeichen

Unter einem Leerraumzeichen versteht man ein Leerzeichen, Tabulator oder einen Zeilenumbruch. Diese werden in edML ähnlich wie in HTML und CSS behandelt (siehe MDN Artikel How whitespace is handled by HTML, CSS, and in the DOM). Das bedeutet, dass Leerraumzeichen, die im XML-Dokument auftreten, im dargestellten Kurs zum großen Teil nicht auftauchen, sondern stattdessen dazu genutzt werden können, den Quellcode gut lesbar zu halten. Es gibt jedoch auch Ausnahmen.

Darstellung von Leerraumzeichen

Die genauen Regeln für die Darstellung von Leerraumzeichen sind wie folgt:

  • In allen Elementen, die mehr als nur Inline-Elemente oder Text enthalten dürfen, werden Leerraumzeichen ignoriert. Das betrifft etwa die beiden Elemente list und table, weil diese Elemente noch die Nicht-Inline-Elemente listitem und row enthalten dürfen. Außerdem betrifft das all diejenigen Elemente, welche die grobe Struktur des Kursdokuments beschreiben, wie etwa course oder variant. Leerraumzeichen dienen in diesen Elementen nur der Lesbarkeit des Quellcodes.
  • In Elementen, welchen nur Inline-Elemente oder Text enthalten dürfen, aber selbst keine Inline-Elemente sind, wie etwa p oder title, wird bei der Darstellung nach folgendem Verfahren vorgegangen:

    • Zuerst werden alle Leerraumzeichen, die im Element oder einem Unterelement vorkommen, durch Leerzeichen ersetzt.
    • Anschließend werden diese Leerzeichen kollabiert, das heißt, aufeinanderfolgende Leerzeichen werden durch ein einfaches Leerzeichen ersetzt. Dabei können auch Leerzeichen, die aus unterschiedlichen Unterelementen stammen, kollabiert werden.
    • Schließlich werden alle Leerzeichen am Anfang und am Ende des Elements gelöscht.
  • In speziellen Elementen, wie etwa codelisting, werden die Leerraumzeichen dagegen behalten und nicht kollabiert.

Example

Der Paragraf

<p>
  Java  <strong>  ist </strong><emph> toll</emph>.  </emph> 
</p>
wird nach den oben beschriebenen Regeln genau gleich dargestellt wie der Paragraf
<p>Java <strong>ist </strong><emph>toll</emph>.</p>