SELFHTML: XML / Regeln für XML-Dateien / XML-Deklaration und Verarbeitungsanweisungen
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Welche Bedeutung die XML-Deklaration <?xml... ?> in XML-Dateien hat und welche Aufgaben Verarbeitungsanweisungen (processing instructions) innerhalb der XML-Daten haben.
Keywords: SELFHTML, XML, XML-Deklaration, Verarbeitungsanweisung, processing instructions
Date: 2005-08-22T21:21:39+02:00

| # XML-Deklaration und Verarbeitungsanweisungen
| Einfache XML-Deklaration Zusätzliche Angaben zur Zeichenkodierung und zum DTD-Bezug Verarbeitungsanweisungen innerhalb einer XML-Datei

## Einfache XML-Deklaration

Jede XML-Datei sollte mit einer Auszeichnung beginnen, die den Bezug zu XML herstellt. Dazu dient die XML-Deklaration am Beginn der Datei.

### Beispiel:

    <?xml version="1.0"?>
    <!-- restliche XML-Datei folgt ab hier -->

### Erläuterung:

Die XML-Deklaration ist also eine besondere, alleinstehende Auszeichnung, deren erstes und letztes Zeichen innerhalb der spitzen Klammern `<` und `>` ein Fragezeichen `?` ist. Unmittelbar hinter dem Anfangsfragezeichen muss `xml` (kleingeschrieben) stehen. Dahinter können in Form von Attributen verschiedene Angaben folgen. Die Angabe der XML-Versionsnummer ist obligatorisch und deshalb auch in der einfachen Variante erforderlich. "Versionsnummer" bezieht sich dabei auf die Version der Sprachspezifikation von XML. Derzeit ist die Version 1.0 von XML maßgeblich. Es gibt zwar bereits eine Version 1.1, doch die gegenwärtigen XML-Parser unterstützen normalerweise nur die Version 1.0. Da das Konzept von XML syntaktisch weitgehend ausgereift ist, ist auch nicht mit einer Versionenflut zu rechnen. Benutzen Sie also außer in begründeten Ausnahmefällen die Angabe `version="1.0"`.

### Beachten Sie:

Die XML-Deklaration sieht vom Typ her aus wie eine Verarbeitungsanweisung. Sie gehört jedoch nicht zu den eigentlichen Daten der XML-Datei und wird in der Baumstruktur der Daten auch nicht repräsentiert.

## Zusätzliche Angaben zur Zeichenkodierung und zum DTD-Bezug

Neben der Versionsangabe kann die XML-Deklaration einer XML-Datei zwei weitere Attribute enthalten: eines zur verwendeten Zeichenkodierung, und ein Ja/Nein-Attribut, ob die zugehörige DTD in der aktuellen Datei steht oder in einer separaten Datei.

### Beispiel:

    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

### Erläuterung:

Mit dem Attribut `encoding` geben Sie an, welchen Zeichenkodierung Sie zum Speichern der XML-Datei verwenden. Folgende Angaben sollte jeder XML-Parser kennen:

Anweisung | Bedeutung | Hinweis
--- | --- | ---
`encoding="UTF-8"` | internationaler Kodierung auf Basis der ISO/IEC-10646-Norm mit mindestens 8 Bit Zeichenbreite |
`encoding="UTF-16"` | internationale Kodierung auf Basis der ISO/IEC-10646-Norm mit mindestens 16 Bit Zeichenbreite |
`encoding="ISO-8859-1"` | ISO-Kodierung für westeuropäische Sprachen | siehe ISO-8859-1
`encoding="ISO-8859-2"` | ISO-Kodierung für osteuropäische Sprachen | siehe ISO-8859-2
`encoding="ISO-8859-3"` | ISO-Kodierung für südeuropäische Sprachen | siehe ISO-8859-3
`encoding="ISO-8859-4"` | ISO-Kodierung für nordeuropäische Sprachen | siehe ISO-8859-4
`encoding="ISO-8859-5"` | ISO-Kodierung für kyrillische Sprachen | siehe ISO-8859-5
`encoding="ISO-8859-6"` | ISO-Kodierung für arabische Sprachen | siehe ISO-8859-6
`encoding="ISO-8859-7"` | ISO-Kodierung für griechische Sprache | siehe ISO-8859-7
`encoding="ISO-8859-8"` | ISO-Kodierung für hebräische Sprache | siehe ISO-8859-8
`encoding="ISO-8859-9"` | ISO-Kodierung für türkische Sprache | siehe ISO-8859-9
`encoding="ISO-8859-10"` | ISO-Kodierung für nordische Sprache | siehe ISO-8859-10

Wenn Sie keine Angaben zur Kodierung der XML-Datei machen, wird per Voreinstellung UTF-8 angenommen (siehe dazu Standard-Zeichenkodierung und Unicode-Unterstützung).

Mit dem Attribut `standalone` können Sie dem XML-Parser vorab mitteilen, ob die vorliegende Datei sich auf eine externe DTD bezieht oder nicht. Mit `standalone="yes"` geben Sie an, dass sich die DTD innerhalb der aktuellen Datei befindet. Mit `standalone="no"` teilen Sie mit, dass sich die DTD in einer separaten Datei befindet. Die Quelle müssen Sie in diesem Fall mit Hilfe der Dokumenttyp-Deklaration angeben.

### Beachten Sie:

Obwohl die beiden Attribute `standalone` und `encoding` optional sind, müssen sie, wenn sie verwendet werden, in einer bestimmten Reihenfolge notiert werden, nämlich in dieser:
`version - encoding - standalone`

## Verarbeitungsanweisungen innerhalb einer XML-Datei

Hin und wieder kann es notwendig sein, dass auch innerhalb der XML-Datei spezielle Anweisungen für die auslesende Software notiert werden müssen. Solche Anweisungen nennt man Verarbeitungsanweisungen (processing instructions).

### Beispiel:

    <?xml version="1.0"?>
    <!-- Daten -->
    <?xml-stylesheet type="text/css" href="styles.css"?>
    <!-- Daten -->
    <?PLZprozessor alertBox("es sind ungültige Postleitzahlen angegeben")?>
    <!-- Daten -->

### Erläuterung:

Die Verarbeitungsanweisung ist ein alleinstehendes Tag, dessen erstes und letztes Zeichen innerhalb der spitzen Klammern `<` und `>` ein Fragezeichen `?` ist. Unmittelbar hinter dem Anfangsfrageziechen folgt ein symbolischer Name derjenigen Software, an die sich die Verarbeitungsanweisung richtet. Die auslesende Software muss diesen symbolischen Namen natürlich kennen und wissen, dass die Verarbeitungsanweisung an sie gerichtet ist. Das Beispiel zeigt zwei typische Verarbeitungsanweisungen innerhalb der XML-Daten. Mit `xml-stylesheet` wird beispielsweise ein Browser angesprochen, der die XML-Daten anzeigen soll und durch die entsprechende Verarbeitungsanweisung erfährt, wo die Stylesheet-Datei abgelegt ist, in der die Formatdefinitionen für die XML-Elemente dieser Datei notiert sind. Die zweite Verarbeitungsanweisung innerhalb der XML-Daten im Beispiel ist eine Phantasie-Anweisung, die zeigen soll, dass Verarbeitungsanweisungen ganz verschiedener Natur sein können.

### Beachten Sie:

Die Browser reagieren nur auf die standardisierte Verarbeitungsanweisung `<?xml-stylesheet?>`.

| Die Dokumenttyp-Deklaration
| Einführung in XML

© 2007 Impressum