XML (Extensible Markup Language) ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten. Daten werden per XML in sogenannten Elementen und/oder Attributen transportiert. Wer HTML kennt, der kommt auch mit XML klar, denn auch HTML besteht aus Elementen und Attributen.

Ein Element besteht aus einem öffnenden Start- und einem schließenen Endtag:
<Fahrzeug></Fahrzeug>
<Fahrzeug> ist das Starttag, </Fahrzeug> ist das Endtag.

Der in einem XML-Dokument zu transportierende Inhalt steht zwischen dem öffnenden und schließenden Tag.

Beispiele für Elemente mit Inhalt:
<Fahrzeug>Auto</Fahrzeug>
<Beschreibung>Hallo Welt</Beschreibung>
<Geschwindigkeit>123</Geschwindigkeit>
In den Beispielen sieht man jeweils ein öffnendes Element, die Daten und das schließende Element.

Bei einem leeren Element läßt man einfach den Inhalt weg oder nutzt die Kurzschreibweise.
<Fahrzeug></Fahrzeug>
<Fahrzeug />

Attribute stehen immer im öffnenden Starttag und enthalten auch Daten.
(Somit kann durchaus die Frage entbrennen, ob Daten in Elementen oder Attributen zu transporieren sind. Beides wäre korrekt, aber ich habe bisher erlebt, dass die Menge der Daten in Elementen transportiert wird und mit Attributen eher sparsam umgegangen wird.)

Beispiele für Attribute:
<Fahrzeug Typ="Auto" />
<Fahrzeug Länge="123" Breite="456" Farbe="rot">Motorrad</Fahrzeug>
Im ersten Beispiel wird nur eine Information "Auto" transportiert und das im Attibut.
Im zweiten Beispiel werden 3 Informationen ("123", "456","rot") in Attributen transportiert und eine Information ("Motorrad") im Element.

Eine einfache Untereinanderreihung von Elementen kann bei großen Datenmengen unübersichtlich werden.
Deshalb schachtelt man die Struktur der Elemente sinnvoll.

Beispiel für eine korrekte (wohlgeformte) XML-Datei mit thematisch geschachtelten Elementen:
<?xml version="1.0" encoding="UTF-8"?>
<Fahrzeugliste>
  <AnzahlFahrzeuge>2</AnzahlFahrzeuge>
  <Fahrzeug Nr="1">
    <Typ>PKW</Typ>
    <Farbe>rot</Farbe>
    <Laenge>123</Laenge>
  </Fahrzeug>
  <Fahrzeug Nr="2">
    <Typ>PKW</Typ>
    <Farbe>blau</Farbe>
    <Laenge>456</Laenge>
  </Fahrzeug>
</Fahrzeugliste>
Eine XML-Datei beginnt immer mit der gezeigten ersten Zeile, die mindestens die Version und besser noch die Codierung enthält.
Beinhaltet eine XML-Datei üblicherweise mehr als ein Element, dann benötigt es ein alles umfassendes Wurzelelement (hier: "Fahrzeugliste").
Das Wurzelelement enthält darunter liegende "normale" Elemente (hier: "AnzahlFahrzeuge") oder geschachtelte Elemente (hier: "Fahrzeug").
Im Beispiel enthält das Element "Fahrzeug" ein Attribut "Nr" und 3 Unterelemente mit Inhalt.

Normale Elemente nennt man auch einfache Typen (simple types), Elemente mit Unterelementen nennt man komplexe Typen (complexe types).

    Regeln für Element- und Attributnamen:
  • Elementnamen beginnen mit einem Buchstaben oder einem Unterstrich!
    Anschließend sind dann Buchstaben, Ziffern, Unterstriche, Bindestriche und Punkte erlaubt.
  • Für den Aufbau der Attributnamen gelten dieselben regeln wie bei den Elementnamen

Zum Schluss noch ein Hinweis auf empfehlenswerte XML-Tools, denn mit Tools geht alles besser :-) Ein gutes kostenloses XML-Tool ist "XML-Spy". Wer etwas Geld ausgeben und mehr Komfort einkaufen möchte, der sollte mal nach "XML-Spy" googeln.

Ein XML-Dokument enthält Elemente und Elemente können Attribute enthalten. Elemente können untereinander oder ineinander geschachtelt werden:

  • Einfache Elemente: Einfaches nicht geschachteltes Element
  • Komplexe Elemente: Schachtelt mehrere Elemente oder enthält Attribute