Home > Artikel > Ausgabe 3/2019 > XML: Eine Einführung

XML: Eine Einführung

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

XML ist neben JSON eine der Sprachen, mit der Daten strukturiert in Textdateien gespeichert werden können. XML ähnelt HTML, der Auszeichnungssprache für Internetseiten. Die Inhalte werden in beiden Fällen dort durch bestimmte, in spitzen Klammern eingefasste Bezeichnungen gekennzeichnet und so zum Beispiel im Fall von HTML mit entsprechenden Formatierungen versehen. Unter Access und anderen Anwendungen dient XML der Vereinfachung beim Austausch von Daten zwischen verschiedenen Anwendungen. Wenn beide Anwendungen das gleiche XML-Format kennen, können die Daten etwa aus den Tabellen einer Datenbank in das XML-Format übertragen und dann von der empfangenden Anwendung in diesem Format eingelesen werden.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1903_XML.accdb.

XML: Extensible Markup Language

Die Abkürzung XML steht für Extensible Markup Language. Genauso wie bei HTML (Hypertext Markup Language) steht das M für Markup. Markup steht dabei für Markierung. Die Markup-Elemente in einem XML-Dokument sorgen dabei für die Strukturierung der darin enthaltenen Daten.

XML-Dokumente können sowohl von Maschinen als auch von Menschen recht gut gelesen werden, wobei es für den Menschen natürlich bessere Formate gibt – aber die lassen sich ja durchaus mit der Nutzung der Markup-Elemente aus einem XML-Dokument ableiten.

Das folgende ist ein Beispiel für ein XML-Dokument. Hier finden Sie ein übergeordnetes Element namens Kunden, das mehrere Kunde-Elemente enthält. Für das Kunde-Element ist ein Attribut namens Kundennummer definiert, welches die Kundennummer aufnimmt.

Außerdem gibt es innerhalb des Kunde-Elements weitere Elemente wie zum Beispiel eines für den Vornamen und eines für den Nachnamen. Das Kunde-Element enthält noch eine Element namens Bestellungen, das weitere Unterelemente namens Bestellung liefert. Diese enthalten wiederum ein Attribut namens Bestellnummer und ein Element namens Bestelldatum. Eine Bestellung enthält meist noch weitere Informationen etwa über die Bestellpositionen et cetera, aber für ein einfaches Beispiel wollen wir uns auf die bisher gezeigten Elemente beschränken:

<Kunden>

<Kunde Kundennummer="123">

<Nachname>Minhorst</Nachname>

<Vorname>André</Vorname>

<Bestellungen>

<Bestellung Bestellnummer="234">

<Bestelldatum>29.07.2019</Bestelldatum>

...

</Bestellung>

</Bestellungen>

</Kunde>

<Kunde Kundennummer="124">

...

</Kunde>

</Kunden>

Sie sehen, dass XML nicht nur etwa Daten in Listenform aufnehmen kann, sondern auch Daten in hierarchischer Beziehung.

In einer Access-Datenbank würden Sie die Kundendaten in einer Kunden-Tabelle speichern und die Bestelldaten in einer Bestellungen- und einer Bestellpositionen-Tabelle – wobei diese in der Regel noch eine Artikel-Tabelle referenziert. Unter XML können Sie durch geeignete Strukturierung die Daten mehrerer hierarchisch verknüpfter Tabellen in einer einzigen Datei unterbringen. Die Daten der Kunden-Tabelle landen dabei in den Kunde-Elementen unmittelbar unter dem Kunden-Element. Zum Kunde-Element gibt es ein Bestellungen-Element, das kein, ein oder mehrere Elemente des Typs Bestellung enthält – und so weiter.

Öffnende und schließende Elemente

Für XML-Dokumente gibt es einige grundlegende Regeln und außerdem können Sie noch benutzerdefinierte Regel festlegen. Zu den grundlegenden Regeln gehört, dass jedes Tag-Element, als eines der in spitzen Klammern eingefasstes Elemente, durch ein entsprechendes schließendes Element ergänzt werden muss.

Das schließende Element besteht dabei aus einer öffnenden spitzen Klammer, einem Schrägstrich, dem Elementnamen und einer schließenden spitzen Klammer. In unserem Beispiel ist das etwa beim Kunden-Element der Fall:

<Kunden>

...

</Kunden>

Dazwischen kann das Element beliebige weitere Elemente enthalten. Wichtig ist dabei, dass auch diese immer durch ein schließendes Element ergänzt werden, auch End-Tag genannt:

<Kunden>

<Kunde ...>

...

</Kunde>

<Kunde ...>

...

</Kunde>

</Kunden>

Bei Elementen, die keine weiteren Elemente einschließen, sondern beispielsweise komplett leer sind oder auch nur Attribute enthalten, können Sie das öffnende und das schließende Element zusammenfassen. Dazu fügen sie vor der schließenden spitzen Klammer einen Schrägstrich ein:

<Kunde/>

Ein solches Element kann auch Attribute enthalten:

<Kunde Kundennummer="123"/>

Interpretieren des XML-Dokuments

Ein Mensch könnte ein XML-Dokument, bei dem mal ein schließendes Element fehlt oder bei dem ein Tag falsch geschrieben ist, womöglich noch korrekt interpretieren. Wenn Sie das XML-Dokument hingegen maschinell einlesen wollen, dürfen Sie sich keine Fehler erlauben – sonst kann das Dokument nicht interpretiert werden.

Für XML gibt es für alle bekannten Programmiersprachen Bibliotheken, mit denen Sie den Inhalt eines XML-Dokuments lesen können. Dabei ist es nicht nötig, wie etwa bei HTML das ganze Dokument einzulesen und zu verarbeiten, um das gewünschte Ergebnis zu erhalten – nämlich eine optisch ansprechend formatierte Ausgabe im Internetbrowser.

Sie können etwa nur die Kunde-Elemente durchlaufen und die Kundendaten ausgeben oder verarbeiten, ohne die Bestelldaten zu berücksichtigen.

Sie können XML-Dokumente auch auf verschiedene Arten erstellen: Die auf den ersten Blick einfachste wäre, einfach einige Zeilen Text zusammenzustellen, welche die öffnenden und schließenden Elemente sowie die gewünschten Informationen enthalten.

Viel effizienter ist es jedoch, die Elemente über das sogenannte Document Object Model (DOM) zu erstellen und durch untergeordnete Elemente zu ersetzen.

Genau dieses Document Object Model können Sie auch nutzen, um auf die Elemente eines bestehenden XML-Dokuments zuzugreifen.

XML in Webservices

Einer der Einsatzzwecke von XML-Dokumenten ist der Austausch von Daten mittels Webservice. Ein Webservice ist ein Service, der Anfragen über das HTTP- oder HTTPS-Protokoll entgegennimmt und die Antwort über das gleiche Protokoll zurücksendet.

Wenn die zu sendenden Informationen strukturiert sein sollen, können Sie diese in ein nach den Anforderungen des Webservices gestaltetes XML-Dokument einbetten. Die Antwort kann dann auch in Form eines XML-Dokuments gesendet werden, welches Sie dann per Code interpretieren.

Wohlgeformte XML-Dokumente

Damit Programme XML-Dokumente parsen können, müssen diese wohlgeformt sein. Sie haben bereits erfahren, dass XML-Dokumente aus Elementen bestehen, die ein Starttag () und ein Endtag enthalten (), die aber auch durch ein einziges Element ersetzt werden können, wenn dieses keine weiteren Elemente oder Inhalte aufweist. Das heißt dann auch Leer-Tag ().

Damit ein XML-Dokument wohlgeformt ist, gelten einige weitere Regeln. So darf ein XML-Dokument nur ein Wurzelelement enthalten, also ein Element, das alle anderen Elemente einschließt.

Sie könnten in einem XML-Dokument also beispielsweise nicht einfach mehrere Kunde-Element anlegen:

<Kunde ...>...</Kunde>

...

<Kunde ...>...</Kunde>

Das wären dann zwei Wurzelelemente. Deshalb muss beispielsweise ein übergeordnetes Element namens Kunden vorhanden sein:

<Kunden>

<Kunde ...>...</Kunde>

...

<Kunde ...>...</Kunde>

</Kunden>

Eher würde man jedoch noch ein Element wie <Kundenverwaltung> nutzen:

<Kundenverwaltung>

<Kunden>

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!