In der Informatik steht XML als Abkürzung für „Extensible Markup Language„. Es handelt sich um eine formale Auszeichnungssprache für Dokumente, mit der es möglich ist, Texte und Informationen mit sogenannten Metainformationen zu versehen. Dadurch ist es möglich, Bedeutung, semantische Struktur und Hierarchie von Daten formal zu kennzeichnen. Tauchen in einem Dokument beispielsweise Informationen über Personen und deren Beziehungen zu anderen Personen auf, können sowohl Personennamen, biographische Daten als auch die Beziehungen zwischen den Personen formal gekennzeichnet werden.
Aufgrund der starken Standardisierung sind XML-Dokumente sowohl durch Menschen als auch durch Maschinen lesbar. Im Gegensatz zu HTML kennzeichnet man also nicht vorrangig formale Elemente des Dokuments, wie zum Beispiel durch Formatierungstags, sondern es bezeichnet die semantische Struktur innerhalb von Daten. Das XML-Format kann zum Speichern und zum Senden von Daten verwendet werden, es spielt aber vor allem bei der Informationsverarbeitung eine entscheidende Rolle. Kurz gefasst handelt es sich vorrangig um ein Datenaustauschformat. „Extensible“ deutet darauf hin, dass XML erweiterbar ist, das heißt, dass Anwender und Programmierer können eigenständig Auszeichnungsmerkmale definieren, und die Metasprache kann auf verschiedene Kontexte und Ansprüche hin weiterentwickelt werden.
Inhalt
Historische Hintergründe
Das „XML-Projekt“ des W3-Consortiums entstand Ende der 1990er Jahre ursprünglich als Reaktion auf die beschränkte Interoperabilität und Syntax der Internet-Sprache HTML. Bekannte Probleme von HTML waren zum Beispiel die Abhängigkeit der Dokumentdarstellung von den Einstellungen des Internetbrowsers. Insgesamt sollte HTML vor allem für die Präsentation und formale Auszeichnung von Internet-Dokumenten fungieren. Als im Februar 1998 die erste offiziellen Empfehlung für eine Programmiersprache mit dem Namen „Extensible Markup Language, Version 1.0″ viral ging, wurde jedoch schnell klar, dass diese nicht nur auf den Kontext der Dokumentpräsentation im Internet beschränkt ist, sondern vielmehr auch ein Werkzeug liefert, das für unterschiedliche Aufgaben geeignet ist: von der Definition von Dokumentstrukturen bis zum Austausch von Informationen zwischen verschiedenen Systemen, von der Darstellung von Bildern bis zur Definition von Datenformaten.
Unterschiede zu HTML
Ein XML-Dokument sieht auf den ersten Blick wie HTML-Dokument aus. Ähnlich wie in HTML gibt es sogenannte Tags, die am Ende geschlossen sein müssen, Attribute und Werte. Der Unterschied zu HTML ist, dass die Tags (oder Elemente) hier durch die Anwender selbst definiert sein können. Beide Sprachen sind von der älteren Standarddefinitionssprache SGML abgeleitet. SGML ist keine eigene Sprache, sondern eine Sprachdefinition. XML ist eine vereinfachte Version von SGML, während HTML eine Anwendung von SGML ist, also eine konkrete Sprache, die sich an den SGML-Standard hält. HTML ist eine fertige Sprache, die auf Dokumente angewendet werden kann. XML ist eine Metasprache, die etwas über die Struktur eines Dokuments aussagen soll.
Aufbau von XML-Dokumenten
Trotz der Flexibilität und Erweiterbarkeit der Extensible Markup Language folgt ein XML-Dokument strengen formalen Kriterien. Sobald in einem XML-Dokument ein syntaktischer Fehler auftritt, kann man das Dokument nicht mehr lesen und ausgeben. (Ein weiterer Unterschied zu HTML, bei der fehlerhafte Auszeichnungen von der Maschine meist einfach ignoriert werden.) Daher ist bei der Erstellung von XML-Dokumenten eine große Sorgfalt nötig. Die Dokumentstruktur muss dem vom W3C definierten XML-Standard entsprechen.
Ein XML-Dokument folgt einer hierarchischen Baumstruktur und besteht aus Elementen und Element-Inhalten wie Attributen und Werten. Am Anfang eines XML-Dokuments steht die XML-Deklaration, gefolgt von einem Wurzelelement, das der Document Type Declaration entspricht. Dieses definiert die Funktion oder die Art des Dokuments, kann man selbst definieren oder standardisieren. Vom Wurzelelement ausgehend gehen weitere „Kindelemente„ mit jeweiligen Verzweigungen aus. Ein Element ist alles vom öffnenden bis zum schließenden Tag. Anders als bei HTML gibt es keine nicht-geschlossenen Tags. Jedes Element besteht also aus einem Anfangs- und einem Endtag und den Attributen und Werten darin. Bleibt ein Tag offen, ist das Dokument syntaktisch fehlerhaft.
Elemente können mit Attributen versehen werden oder aber leere Elemente bleiben. Ein Attribut kann seinerseits bestimmte definierte Werte besitzen. Bei den Attributen kann es sich um Text, Zahlen, Formeln, Bilder, Daten oder aber auch um Unterelemente handeln, bei den Werten um Zahlen oder Begriffe. Wichtig ist, dass jedes Element wieder geschlossen ist, damit die hierarchische Struktur logisch bleibt. Für die Schreibweise der Elemente existieren typische Regeln. So ist Gegensatz zu HTML bei der Schreibung von Element- und Attributnamen zwischen Groß- und Kleinschreibung zu unterscheiden, die daher immer konsistent angewendet werden müssen. Versieht man Attribute mit Werten, müssen diese unbedingt in Anführungszeichen stehen. Im Dokument können, genau wie in einem HTML-Dokument, Kommentare eingefügt werden, die Maschinen nicht erkennen.
Anwendungsbeispiele
Inzwischen ist HTML weitgehend zu XHTML gewechselt. Dadurch macht man das WWW intelligenter und können Daten innerhalb von Dokumenten lassen sich schneller auslesen. Ein Beispiel dafür sind Suchanfragen über Google, die selbständig Beziehungen von Entitäten verknüpfen können. Sucht man zum Beispiel „Kinder von prominenter Person X“ liefert Google ohne Verweis auf Websites bereits die passenden Antworten oder verlinkt auf Wikipedia-Artikel, die die entsprechenden Informationen enthalten. Dabei handelt es sich um Anwendungen des „semantic web“, einer Technologie, in der Verknüpfungen von Daten und intelligente Datenauswertung durch Extensible Markup Language-Dokumentstrukturierungen möglich sind. Lesen Sie hier alles zu Entitäten.
XML ist darüber hinaus eine weit verbreitete Syntax für den Export von Daten zwischen verschiedenen Datenbank-Management-Systemen. Dadurch ist es wesentlich leichter, Datenbanken zu exportieren oder mit externen Quellen (wie anderen Datenbanken oder Katalogen) zu verknüpfen und intelligenter zu machen. Schließlich wird die Extensible Markup Language auch häufig in den Konfigurationsdateien von Anwendungen und Betriebssystemen verwendet, um die Interoperabilität von verschiedenen Betriebssystemen (Computer und Handy, verschiedene Hersteller oder verschiedene Versionen) zu erleichtern. XML ist so universal einsetzbar und individualisierbar, dass inzwischen kaum noch Software, Betriebssysteme, Datenbanken oder Dokument ohne diese Metasprachen auskommen.