SELFHTML: XML / Regeln für XML-Dateien / Zeichen, Zeichenkodierungen und nicht interpretierte Abschnitte
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Welche Zeichen und Zeichenkodierungen in XML-Dateien erlaubt sind, welche Zeichen maskiert werden müssen, und wie nicht per Tastatur eingebbare Zeichen notiert werden können.
Keywords: SELFHTML, XML, Zeichen, Zeichenkodierung, ISO/IEC 10646, Unicode
Date: 2005-08-22T21:21:39+02:00

| # Zeichen, Zeichenkodierungen und nicht interpretierte Abschnitte
| XML-eigene Zeichen Standard-Zeichenkodierung und Unicode-Unterstützung Nicht interpretierte Abschnitte (CDATA)

## XML-eigene Zeichen

In XML gilt wie in HTML: Zeichen, die bei der XML-Syntax besondere Bedeutung haben, müssen Sie umschreiben, wenn Sie sie im normalen Text zwischen den Tags verwenden wollen. Folgende Zeichen sind betroffen:

Zeichen | Notation in XML
--- | ---
< | `&lt;`
> | `&gt;`
& | `&amp;`
" | `&quot;`
' | `&apos;`

### Beispiel:

    <Element>dieses Element wird notiert als &lt;Element&gt;...&lt;/Element&gt;</Element>

### Erläuterung:

Das Beispiel erzeugt folgende Ausgabe:
`dieses Element wird notiert als <Element>...</Element>`

## Standard-Zeichenkodierung und Unicode-Unterstützung

In einer XML-Datei lassen sich alle Zeichen des in ISO/IEC 10646 definierten Zeichenvorrats notieren. Dieses Zeichensystem wurde 1993 von der International Organization for Standardization (ISO) entwickelt. Es soll die Zeichen aller natürlichen und symbolischen Sprachen der Welt abdecken. Seit der Unicode-Version 1.1 entspricht ISO/IEC 10646 dem Unicode-System. Um genau zu sein: Erlaubt sind Unicode-Zeichen mit den Hexadezimalwerten `#x20` bis `#xD7FF`, `#xE000` bis `#xFFFD` und `#x10000` bis `#x10FFFF`. Nicht erlaubt sind lediglich die beiden Zeichen mit den Hexadezimalwerten `#xFFFE` und `#xFFFF`, da diese beiden keine Unicode-Zeichen darstellen.

Ferner sind folgende Steuerzeichen erlaubt: Tabulator-Zeichen (hexadezimal `#x9`), Zeilenvorschub-Zeichen (`#xA`) und Wagenrücklaufzeichen (`#xD`). Diese drei Zeichen plus das normale Leerzeichen (`#x20`) bilden die so genannten Leerraumzeichen.

Wenn Sie in der XML-Deklaration keine andere Kodierung angeben, verarbeitet der Parser den Inhalt einer Datei gemäß der Kodierung UTF-8 oder UTF-16. Für die Praxis des Editierens ist zu beachten, dass Ihr Editor die XML-Datei stets unter Verwendung derjenigen Kodierung speichern muss, die Sie in der XML-Deklaration angeben. Moderne Editoren erlauben das Wählen der Kodierung beim Speichern.

Beim Verwenden der fortschrittlichen Kodierungen UTF-8 oder UTF-16 können Sie alle Zeichen des Unicode-Systems ohne Umschreibung über die Tastatur eingeben oder direkt einfügen. Einige ältere Editoren unterstützen jedoch nur die herkömmlichen, auf 256 Zeichen begrenzten ISO-8859-Kodierungen, zum Beispiel die für westeuropäische Sprachen übliche Kodierung ISO-8859-1. Damit lassen sich lediglich die deutschen Umlaute und gewisse relevante Sonderzeichen ohne Umschreibung notieren.

Alle Zeichen des Unicode-Zeichenvorrats, die Sie mit Ihrem Editor nicht direkt eingeben können oder die im Zeichenvorrat der verwendeten Kodierung nicht vorkommen, können Sie über eine numerische Angabe notieren. Die Notationsweise ist dabei in XML die gleiche wie in HTML 4.0, also z.B. für den Buchstaben `ü` die Notation `&#252;` (dezimal) oder `&#xFC;` (hexadezimal). Siehe auch Allgemeines zur Zeichenreferenz (HTML)

## Nicht interpretierte Abschnitte (CDATA)

XML-Dokumente dürfen so genannte CDATA-Abschnitte enthalten, die vom Parser nicht als XML-Quellcode interpretiert werden. Im Unterschied zu Kommentaren werden solche Bereiche jedoch mit ausgegeben, einfach als eine nicht weiter interpretierte Zeichenfolge.

### Beispiel:

    <![CDATA[<Element>dieses Element wird nur als Zeichenfolge ausgegeben</Element>]]>

### Erläuterung:

Die Definition von CDATA-Abschnitten beginnt mit einer öffnenden spitzen Klammer `<`. Dahinter folgt unmittelbar anschließend ein Ausrufezeichen `!` und eine öffnende eckige Klammer `[`. Dahinter notieren Sie, in Großbuchstaben, das Schlüsselwort `CDATA`, und dahinter nochmals eine öffnende eckige Klammer (`[`). Zwischen dieser einleitenden Zeichenfolge und der beendenden, markiert durch zwei schließende eckige Klammern und ein eine schließende spitze Klammer (`]]>`), können Sie beliebigen Text notieren. Im Beispiel ist ein XML-Element durch die Tags `<Element>...</Element>` innerhalb des CDATA-Bereichs notiert. Dieses wird vom Parser jedoch nicht als Element namens `Element` betrachtet, sondern einfach als Text, genauso wie er da steht.

| Regeln beim Editieren von XML und Dateinamenkonventionen
| XML-Namensräume

© 2007 Impressum