XML: Das universelle Format für die Datenverarbeitung

XML wird als semantisches Beschreibungsformat für beliebige Dokumente und Informationsobjekte verwendet. Es transportiert damit semantische Zusatzinformationen die die Dokumentstruktur und deren Anwendungsmöglichkeiten maschinenlesbar machen. Häufig wird es auch in der Front-End-Webentwicklung verwendet. In der Back-End-Webentwicklung wird auch XML verwendet, da einige APIs es zur Übertragung von Daten in einem Standardformat nutzen. Auch Android-Anwendungen hängen stark von XML ab, um Layouts zu erstellen und Konfigurationen zu speichern. Wer sich für die Entwicklung von Mobilgeräten interessiert, sollte demnach XML beherrschen. Jede Programmiersprache, die man sich vorstellen kann, verfügt entweder über integrierte Möglichkeiten zur Verwendung von XML oder über Bibliotheken von Drittanbietern, die dies ermöglichen. Die Wahrscheinlichkeit, auf XML zu stoßen, ist entsprechend groß.

Was ist XML?

XML (Extensible Markup Language) wird zur Beschreibung von Daten verwendet. Der XML-Standard ist eine flexible Methode zur Erstellung von Informationsformaten und zum elektronischen Austausch strukturierter Daten über das öffentliche Internet sowie über Unternehmensnetze. XML ist eine Auszeichnungssprache, die auf der Standard Generalized Markup Language (SGML) basiert. SGML war dabei so kompliziert, dass deren breiter Durchbruch erst mit der Standardisierung von XML erreicht wurde. Die Konzepte ähneln sich jedoch in großen Teilen. XML wird mittlerweile vom W3C-Konsortium entwickelt.

Die Hauptfunktion von XML besteht darin, Datenformate zu erstellen, die zur Kodierung von Informationen für Dokumentationen, Datenbankeinträge, Transaktionen und viele andere Arten von Daten verwendet werden. XML-Daten können für die Erstellung verschiedener Inhaltstypen verwendet werden, die durch die Generierung unterschiedlicher Content-Arten – einschließlich Web-, Druck- und mobiler Inhalte – auf der Grundlage von XML-Daten erzeugt werden.

Wie die Hypertext Markup Language (HTML), die ebenfalls auf dem SGML-Standard basiert, werden XML-Dokumente im einfachsten Fall als American Standard Code for Information Interchange (ASCII)-Dateien gespeichert und können mit jedem Texteditor bearbeitet werden. Zur Internationalisierung der Dokumente trägt die Möglichkeit  unterschiedliche Codierung zu verwenden bei, sodass Dokumente auch als Unicode, z.B. mittels UTF-8 gespeichert werden können und dann unterschiedliche Sprachen in einem Dokument unterstützt werden.

Ein XML-Editor ist ein Werkzeug, welches der Erstellung und Anzeige von XML Dateien dient. Man kann mit dem XML-Editor neue, leere XML Dateien erstellen oder auch bestehende Dateien bearbeiten. Manche Werkzeuge erlauben auch das Generieren von Document Type Definitions (DTDs). Dateien lassen sich zudem DTDs oder XML-Schemata zuordnen. Im Editor lassen sich dann diese Dateien auch Validieren. Validierung bedeutet die Prüfung der XML-Struktur der Datei gegen eine DTD oder ein Schema. Schemas sind die Weiterentwicklung von DTD’s und erlauben komplexere und genauere Definitionen von XML-Strukturen. XML-Editoren erlauben damit die Erstellung, Bearbeitung und Prüfung der Dateien gegen die Regelwerke der DTD oder des Schemas.

Was ist der Unterschied zwischen XML und HTML?

XML und HTML wurden mit unterschiedlichen Zielen entwickelt. XML wurde entwickelt, um Daten zu übertragen – mit dem Schwerpunkt darauf, was Daten sind. HTML wurde entwickelt, um Daten darzustellen – mit dem Fokus darauf, wie die Daten aussehen. XML-Tags-Benennungen sind im Gegensatz zu HTML-Tags nicht vordefiniert.


Warum ist XML wichtig?

XML überwindet die Beliebigkeit von HTML und die Komplexität von SGML. Es beseitigt zwei Einschränkungen, die die Entwicklung des kontrollierten Datenaustauschs behindert haben:

  1. Die Abhängigkeit von einem einzigen, beliebig strukturierbaren Dokumententyp (HTML), der häufig für Aufgaben missbraucht wurde, für die er nie konzipiert wurde. Selbst invalide Strukturen konnten und können viele Browser interpretieren. Die Verwendung von XHTML schränkt diese absolute Beliebigkeit bereits etwas ein.
  2. Die Komplexität von SGML, dessen Syntax viele leistungsstarke, aber schwer zu programmierende Optionen erlaubt.

XML ermöglicht die flexible Entwicklung von benutzerdefinierten Dokumenttypen. Es bietet ein robustes, nicht-proprietäres, beständiges und überprüfbares Dateiformat für die Speicherung und Übertragung von Text und Daten sowohl im Web als auch außerhalb des Webs; und es beseitigt die komplexeren Optionen von SGML, wodurch es einfacher zu programmieren ist.

XML ist in Webanwendungen in mehrfacher Hinsicht von Bedeutung, z. B. bei

  • Web-Publikationen
  • Suchanfragen
  • einem unabhängigen Datenaustausch
  • Metadaten-Anwendungen
  • der Unterstützung von Datenbewertung und -aggregation
  • benutzerdefinierten Tags.

Web-Publikationen

XML ermöglicht es dem Nutzer, interaktive Seiten zu erstellen, auf denen Informationen angezeigt werden können. Diese Darstellung erscheint in strukturierter Form. Die Darstellung kann mithilfe von XSL oder XSLT beeinflusst werden. Der Leser oder Betrachter kann diese Seiten je nach Bedarf ändern oder anpassen.

Suchanfragen

XML enthält Daten in bestimmten Tags, die die semantische Suche erleichtern. Nehmen wir zum Beispiel XML-Dokumente, die Informationen über verschiedene Bücher enthalten, wie den Namen des Autors, das Erscheinungsjahr usw. Wenn wir nun die Elemente mit dem Namen des Autors durchsuchen, dann erfolgt die Suche nur direkt in den Tags des Autors und ruft die direkt zugehörigen Daten ab.

Unabhängiger Datenaustausch

Fast alle programmierbaren Sprachen können XML parsen. Wenn also eine Anwendung oder ein Mensch ein XML generiert, dann ist dieses XML für andere Anwendungen nützlich, sogar in einer anderen Sprache. XML ist sehr beliebt und wird für den Datenaustausch zwischen Webanwendungen über APIs verwendet. Zwar kann eine API Daten heute meist in verschiedenen Formaten wie JSON zurückgeben, aber XML ist weit verbreitet und wird gern genutzt.

Metadaten-Anwendungen

XML macht es einfacher, Metadaten in einem portablen, wiederverwendbaren Format auszudrücken. Durch die genaue Benennung und Typisierung der Metadaten kann eine schnelle und klare Zuordnung des Inhalts und die semantische Verwertbarkeit des Inhalts vereinfacht werden.

Unterstützung von Datenbewertung und -aggregation

Die XML-Dokumentenstruktur ist so konzipiert, dass die Dokumente effizient bewertet und Stück für Stück aggregiert werden können. Ein weiterer großer Vorteil von XML ist seine Fähigkeit, alle möglichen Arten von Daten zu referenzieren oder zur verlinken. Dabei kann es sich um aktive Komponenten wie SVG, Canvas oder Multimediadaten wie Video, Bild und Ton handeln.

Benutzerdefinierte Tags

XML ermöglicht es Entwicklern, benutzerdefinierte Tags nach ihren Bedürfnissen zu verwenden. Dies hilft bei der Speicherung von Daten in aussagekräftigen Tags, die zum Verständnis des Kontexts der Daten beitragen.


Welche Vorteile gibt es durch XML?

Es gibt viele gute Gründe, die für die Nutzung von XML sprechen. Dazu gehören:

  • Einfachheit
  • Organisation
  • Zugänglichkeit
  • Standardisierung
  • mehrere Anwendungen
Einfachheit

XML ist leicht zu verstehen. Man erstellt die Tags und entwickelt den Gesamtaufbau eines Dokuments. Was könnte einfacher sein als das? Wenn man eine Seite in XML schreibt, sind die Element-Tags eigene Kreationen. Es steht dem Anwender frei, ein System zu entwickeln, das seinen Anforderungen entspricht. Und wenn er mit der grundlegenden XML-Syntax vertraut ist, wird er feststellen, wie gut die Datei für Menschen lesbar ist.

Organisation

Mit XML kann man eine Plattform aufbauen, indem man den Entwurfsprozess segmentiert. Die Daten befinden sich auf einer Seite, die Formatierungsregeln auf einer anderen. Wenn man eine allgemeine Vorstellung davon hat, welche Informationen man produzieren muss, kann man zuerst die Datenseite schreiben und dann an der Gestaltung arbeiten. XML ermöglicht es den Nutzern, die Website schrittweise zu erstellen und dabei den Überblick zu behalten.

Zugänglichkeit

Mit XML kann man sich die Arbeit aufteilen. Durch die Trennung der Daten sind diese zugänglich, wenn Änderungen erforderlich sind. Die Formatierungsregeln existieren parallel pro Ausgabekanal. Somit kann die Datenänderung getrennt von möglichen Formatierungsänderungen erfolgen. Die Aufteilung der XML-Daten in viele kleine Informationsobjekte erleichtert daneben auch die parallele Überarbeitung von Daten. Mit XML lassen sich Änderungen durch die Trennung der Daten einfach und zeitsparend durchführen.

Standardisierung

XML ist ein internationaler Standard, sodass jeder auf der Welt ein bestimmtes Dokument einsehen und verstehen kann. Die Regeln für XML-Dokumente sind vom Standard klar vorgegeben und erlauben aber trotzdem so viel Flexibilität, um viele Anforderungen, die an strukturierte Dokumente gestellt werden, zu erfüllen.

Mehrere Anwendungen

In XML kann man ein Dokument erstellen und dies immer wieder verwenden. Anwendungsfälle dafür sind Dokumente, die sich inhaltlich ähneln aber nicht völlig gleich sind. Um dieses Konzept zu ermöglichen, wird oft von Topics gesprochen. Dies sind kleine XML-Dokumente, die für eine Wiederverwendung vorgesehen sind. Aggregiert man solche Topics in ihrer gewünschten Reihenfolge und Tiefenschachtelung, entsteht ein gewünschtes Gesamtdokument. DITA hat mit ihrem Konzept diese Art des Umgangs mit Dokumenten bekannt gemacht.

Letztendlich ist XML ein Werkzeug. Es sorgt dafür, dass inhaltliche Arbeit vom Design getrennt wird. Indem wir semantische Informationen im XML transportieren, erleichtern wir die Verständlichkeit, drücken aber gleichzeitig unseren Willen über den Inhalt aus. Design wird kanalorientiert zugeordnet. Wir wollen, dass unser XML auf einem Tablet anders erscheint als auf dem Mobiltelefon oder wir möchten, dass für einen Administrator andere Inhalte angezeigt werden als für einen Neuling.


Welche XML-Anwendungen gibt es?

Die Hauptfunktion von XML besteht darin, ein einfaches textbasiertes Format für die Darstellung strukturierter Informationen bereitzustellen, unter anderem für:

  • zugrundeliegende Datenformate für Anwendungen wie die in Microsoft Office
  • technische Dokumentation
  • Konfigurationsoptionen für Anwendungssoftware
  • Bücher
  • Kataloge
  • Transaktionen
  • Rechnungen.

XML ermöglicht den Austausch von strukturierten Informationen zwischen folgenden Elementen:
  • Programmen und Programmen
  • Programmen und Personen
  • lokal und über Netzwerke hinweg.

XML ist ein Format, in dem Daten zusammen mit ihrer Struktur gespeichert werden. Diese Eigenschaft macht es für viele Dinge nützlich, einschließlich der Übertragung von Daten, der Formatierung von Dokumenten, der Erstellung von Layouts und vielem mehr.


Datenübertragung mit XML

So gut wie jede Anwendung benötigt eine Möglichkeit, Daten zu speichern und abzurufen. Dies geschieht in der Regel über das Internet mithilfe einer API (Application Programming Interface). Back-End-Ingenieure erstellen APIs, die auf Webservern laufen. Dieselbe API kann von vielen Anwendungen, einschließlich Webanwendungen, Desktopanwendungen und mobilen Anwendungen, verwendet werden, um Daten in einer Datenbank zu speichern und abzurufen. Ein Standardformat für diese Daten macht dies möglich.

XML ist ein Format, das Programmierer verwenden, um Daten in einer Struktur zu übertragen, die von all diesen verschiedenen Anwendungen geparst werden kann, und es wird üblicherweise für die Erstellung von APIs verwendet. SOAP und XML-RPC sind zwei Arten von XML-APIs, die in Webdiensten verwendet werden. Jede Anwendung, die eine Verbindung zu einer dieser APIs herstellt, muss nur das Format kennen, um die darin enthaltenen Daten nutzen zu können.

Formatierung von Dokumenten

Webseiten sind HTML-Dokumente, und HTML ist XML sehr ähnlich. HTML wird von einem Webbrowser verarbeitet, der es dann in einem optisch ansprechenden Format darstellt. Die Tags in einem HTML-Dokument definieren bestimmte Arten von Elementen wie Überschriften, Absätze, Bilder und mehr. Der Browser weiß, wie er diese Elemente auf der Grundlage dieser Tags darstellen soll.

HTML speichert auch kontextbezogene Informationen über die enthaltenen Daten in Form von Attributen wie ID und Klasse. CSS arbeitet mit HTML zusammen, um auf der Grundlage dieser Attribute bestimmte Stile anzuwenden, z. B. eine Überschrift rot zu machen oder die Schriftart für einen Absatz festzulegen.

Dies ist nur eines von zahlreichen Beispielen für die Verwendung von XML für die Formatierung. Microsoft Word-Dokumente, PowerPoint-Dokumente werden ebenfalls im XML-Format gespeichert. Wenn man diese Dateien in der Standardanwendung öffnet, wird diese XML-Datei analysiert, formatiert und mit dem Stil versehen, den man auf dem Bildschirm sieht. PDF-Dateien verwenden XML für den Transport von Metadaten.

Suche im Internet

Suchmaschinen haben sich im Laufe der Jahre weiterentwickelt. Ursprünglich taten sie nicht viel mehr, als festzustellen, ob eine Webseite den von einem Nutzer gesuchten Begriff enthält. Heute verwenden sie HTML (XML)-Tags, um die Suche genauer zu machen. Ein Beispiel wäre die Suche nach einem Buch eines bestimmten Autors. Angenommen, man sucht nach Goethe. Indem man das Autor-Tag in HTML-Seiten analysiert, kann eine Suchmaschine die Suchergebnisse auf diejenigen beschränken, die Goethe in diesem Tag enthalten, anstatt die Suche auf jede Seite auszuweiten, die seinen Namen enthält.

Erstellen von Layouts

Jedes Layout in einer mobilen Android-Anwendung wird in XML erstellt. Diese Layouts bestimmen, wo die Daten auf dem Bildschirm des Telefons dargestellt werden sollen. Zu den gängigen Android-Layouts gehören das Linear-Layout, das der Anwendung vorgibt, den Inhalt auf dem Bildschirm horizontal oder vertikal auszurichten, das Frame-Layout, das so konzipiert ist, dass es andere Layouts dynamisch enthält, und das Listen-Layout, das Elemente anzeigt, durch die man blättern kann.

Speichern von Konfigurationsdaten

XML speichert auch die Daten, die zur Konfiguration einer Anwendung verwendet werden. Microsoft Excel speichert mittels XML alle Informationen, die in einem Arbeitsblatt enthalten sind. Nicht nur die Daten, sondern auch die Definitionen der Spalten, das Format der Felder, alle verwendeten Berechnungen und vieles mehr. Android-Apps verwenden XML nicht nur für Layouts, sondern auch zum Speichern der Farben, Stile und Abmessungen, die die App verwenden wird.


XML Techniken

Im Folgenden stellen wir Ihnen die wichtigsten XML Techniken und ihre Funktionsweise vor.

XML Aufbau

XML Dokumente bilden eine Baumstruktur, die an der „Wurzel“ beginnt und sich zu den „Blättern“ verzweigt. Sie sind als Elementbäume aufgebaut.

Ein XML-Baum beginnt mit einem Wurzelelement und verzweigt sich von der Wurzel zu den untergeordneten Elementen. Die Begriffe Eltern, Kind und Geschwister werden verwendet, um die Beziehungen zwischen Elementen zu beschreiben. Eltern haben Kinder. Kinder haben Eltern. Geschwister sind Elemente auf der gleichen Ebene (Brüder und Schwestern). Alle Elemente können Textinhalte und Attribute besitzen.

XML Tags / Elemente

XML Elemente bilden die Hauptklammern eines XML-Dokumentes. Sie beschreiben seine konkrete Form und transportieren die Hauptsemantik eines XML-Dokumentes.

Folgende XML Tags lassen sich unterscheiden:

  • Start-Tag: Der Anfang eines jeden nicht leeren XML Elements wird mit einem Start Tag kenntlich gemacht. Beispiel: <manual>
  • End-Tag: Jedes Element, das ein Start-Tag hat, muss entsprechend mit einem End-Tag abschließen. Start- und End-Tag besitzen den gleichen Namen, unterscheiden sich jedoch durch ein zugefügtes / im End-Tag. Beispiel: </manual>
  • Empty-Tag: Ein inhaltsloses Element, wird als leer (empty) bezeichnet. Beispiel: <manual/>

Bei XML Tags unterscheidet man zwischen Groß- und Kleinschreibung. Außerdem müssen XML Tags in der richtigen Reihenfolge geschlossen werden, d.h. man muss ein XML Tag, das innerhalb eines anderen Elements geöffnet wird, schließen, ehe man das äußere Element ebenfalls schließt.


XML Schema / DTD Document Type Definition

Eine XML DTD ist in XML ein formaler Ausdruck der strukturellen Beschränkungen für eine Klasse von XML Dokumenten. Die DTD Sprachkonstrukte sind Element- und Attributlisten-Deklarationen. Elementdeklarationen benennen die Elemente, die in einem Dokument dieses Typs zulässig sind, und geben an, ob und wie deklarierte Elemente und Zeichendaten in jedem Element enthalten sein dürfen. Attributlisten-Deklarationen benennen die zulässigen Attribute für jedes deklarierte Element, einschließlich des Typs jedes Attributwerts, wenn es sich nicht um eine explizite Menge gültiger Werte handelt. Eine DTD wird mit einem XML Dokument über eine Document Type Declaration verknüpft, ein Tag, das am Anfang des XML Dokuments erscheint. Die Deklaration legt fest, dass das Dokument eine Instanz des Typs ist, der durch die referenzierte DTD definiert ist. Diese Deklarationen innerhalb eines XML-Dokuments können entweder intern oder extern sein. Interne DTD-Deklarationen werden am Anfang des XML Dokuments angegeben und müssen in die !DOCTYPE-Definition eingeschlossen werden.

XML Attribute

XML Attribute gehören zu den XML Elementen, wobei einem Element mehrere eindeutige Attribute zugeordnet sein können. Diese liefern zusätzliche Informationen über die XML Elemente und definieren deren Eigenschaften. Ein XML Attribut besteht stets aus einem Namen und einem Wert. Man nutzt Attribute, zur Hinzufügung einer eindeutigen Bezeichnung für ein Element, für die Platzierung einer Bezeichnung in einer Kategorie, zum Hinzufügen eines booleschen Kennzeichens oder für eine anderweitige Verknüpfung mit einer Datenkette.

Auch nutzt man Attribute, für die Unterscheidung von gleichnamigen Elementen, wenn man die Erstellung eines neuen Elementes für jede Situation vermeiden möchte. Deshalb kann die Nutzung eines Attributs die Unterscheidung zwischen zwei oder mehreren ähnlichen Elementen etwas detaillierter gestalten.

Je Start-Tag oder Empty-Tag darf ein Attributname nur genau einmal genutzt werden. Ein Attribut muss in der Document Type Definition (DTD) unter Verwendung einer Attribut-Deklaration angegeben sein. Attributwerte dürfen weder direkt noch indirekt auf externe Entitäten verweisen. Der Ersetzungstext einer Entität, auf die direkt oder indirekt in einem Attributwert verwiesen wird, darf kein Kleiner-als-Zeichen enthalten.

XML Entity

Entities sind Konstrukte, um Werte im XML zu ersetzen. Sie beginnen mit einem & und werden mit ; geschlossen. Die bekanntesten Entities sind die, um die XML-Kodierungszeichen zu ersetzen:

< &lt;

> &gt;

& &amp;

Es existieren aber auch Zeichenentities, um bestimmte Sonderzeichen, die man nicht über die Tastatur eingeben konnte, im Text zu platzieren. Ein Beispiel ist &x2012; für den Gedankenstrich. Es existieren eine große Anzahl von Standard-Entities, die man einbinden kann, um bei Verwendung von eingeschränkten XML-Encoding Räumen diese auch zu verwenden. So steht &auml; für ä.

Entities können aber auch für ganze XML-Strukturen oder für die Einbindung von externen Dateien verwendet werden.

XML Kommentare

XML Kommentare sind ähnlich wie HTML Kommentare. Die Kommentare werden als Notizen oder Zeilen zum Verständnis des Zwecks eines XML-Codes hinzugefügt. Man verwendet sie etwa zur Aufnahme von verwandten Links, Informationen oder Begriffen. Dabei sieht man sie lediglich im Quellcode, meist aber nicht im XML-Editor. Kommentare können überall im XML-Code erscheinen.

XML unterstützt Kommentare, die dazu dienen, einem Menschen Informationen über den eigentlichen XML-Inhalt zu geben. Sie werden nicht zur Kodierung der eigentlichen Daten verwendet. Kommentare können als Kinder der Elemente erscheinen. Sie können auch als Top-Level-Konstrukte (Kinder des Dokuments) entweder vor oder nach dem Dokumentenelement auftauchen. Kommentare beginnen mit der Zeichenfolge und enden mit der Zeichenfolge. Der Text des Kommentars wird zwischen der Start- und der Endsequenz serialisiert. Die Zeichenfolge - - darf nicht innerhalb eines Kommentars erscheinen. Andere Auszeichnungszeichen wie „Kleiner als“, „Größer als“ und „Und“-Zeichen (&) können innerhalb von Kommentaren erscheinen, werden aber nicht als Auszeichnungszeichen behandelt. Daher werden Entitätsreferenzen, die innerhalb von Kommentaren erscheinen, nicht expandiert.

Beispiel <!- - dies ist ein Kommentar - ->

XML PI

PI steht für Processing Instructions, also Verarbeitungsanweisungen. Diese werden verwendet, um der Anwendung, die ein XML Dokument verarbeitet, Informationen zur Verfügung zu stellen. Solche Informationen können Anweisungen zur Verarbeitung des Dokuments, zu seiner Anzeige usw. enthalten. Verarbeitungsanweisungen können als Kinder von Elementen erscheinen. Sie können auch als Top-Level-Konstrukte entweder vor oder nach dem Dokumentenelement erscheinen.

Verarbeitungsanweisungen bestehen aus zwei Teilen: dem Ziel oder Namen der Verarbeitungsanweisung und den Daten oder Informationen. Für das Ziel gelten die gleichen Konstruktionsregeln wie für Element- und Attributnamen. Abgesehen von der abschließenden Zeichenfolge werden alle Auszeichnungselemente im Inhalt der Verarbeitungsanweisung ignoriert.

Beispiel: <?pi_name meine_werte und anderes?>