Was ist XML?
XML ist ein Standard, der die erweiterbare Definition von maschinenlesbaren Dokumenten ermöglicht und damit den automatischen Informationsaustausch erlaubt.
Zuletzt überarbeitet: Mai 2025
Inhaltsverzeichnis
XML
Die digitale Welt basiert auf Daten – und wie wir diese speichern, austauschen und interpretieren, ist entscheidend für die Effizienz und Kompatibilität von Computersystemen. Genau hier kommt XML ins Spiel: Die Extensible Markup Language ist seit ihrer Einführung durch das World Wide Web Consortium (W3C) ein weltweiter Standard, wenn es darum geht, komplexe Datenstrukturen unabhängig von Plattformen und Programmiersprachen zu definieren, zu speichern und zu übertragen.
Ob beim Datenaustausch zwischen Anwendungen, beim Speichern von Konfigurationsdaten oder im Rahmen von Web Services – XML hat sich als Auszeichnungssprache mit enormer Flexibilität bewährt. In diesem Artikel erfährst du, was XML genau ist, wie es aufgebaut ist, wo es zum Einsatz kommt und welche Alternativen oder verwandten Technologien existieren.
Begriff und Definition
XML steht für Extensible Markup Language – zu Deutsch: «erweiterbare Auszeichnungssprache». Es handelt sich um eine textbasierte Sprache, die zur Darstellung hierarchisch strukturierter Daten entwickelt wurde. Der Name sagt es schon: Diese Sprache ist nicht starr – du kannst eigene Tags definieren, eigene Datenstrukturen modellieren und die Sprache so an nahezu jeden Anwendungsfall anpassen.
Ein XML-Dokument ist in der Regel eine Textdatei, die mithilfe von sogenannten Start Tags und End Tags Elemente beschreibt. Diese bestehen aus Elementnamen und optionalen Attributnamen, welche zusätzliche Informationen liefern. Die Syntax ist streng: Tags dürfen sich nicht überlappen, jedes XML-Element muss geschlossen werden, und die Gross-/Kleinschreibung ist relevant.
Es basiert ursprünglich auf SGML (Standard Generalized Markup Language) und ist – anders als etwa HTML – nicht zur Darstellung in Webbrowsern gedacht, sondern zur strukturierten Abbildung von Informationen für Menschen und Maschinen.
Bedeutung
Die Bedeutung von XML lässt sich kaum überschätzen. Von APIs über E-Commerce Plattformen bis zu Textdokumenten wie Office Dateien basiert ein Grossteil der digitalen Infrastruktur auf dieser Sprache oder einer darauf basierenden Technologie. Gerade bei der Integration von Anwendungen unterschiedlicher Herkunft, etwa in heterogenen Computersystemen, ist sie die bevorzugte Lösung für den Austausch von Daten.
Da diese Sprache als Textformat gespeichert wird und auf dem offenen UTF-8-Standard basiert, ist sie unabhängig von Hardware, Betriebssystemen und Programmiersprachen. XML-Dokumente lassen sich mit nahezu jedem Texteditor öffnen und lesen – das macht sie transparent und zugänglich.
Zudem gibt es zahlreiche Drittanbieter, deren APIs XML als Datenformat unterstützen. So können Informationen auf strukturierte Weise übertragen werden – sei es zwischen Webservices, über Dateischnittstellen oder als Basis für Datenbanken.
Grundlagen
Damit du verstehst, wie XML wirklich funktioniert, lohnt sich ein genauer Blick auf die technischen und logischen Grundlagen. Denn obwohl die Extensible Markup Language auf einem vergleichsweise einfachen Konzept basiert – nämlich der textuellen Beschreibung von Informationen mittels Tags –, bietet sie eine bemerkenswerte Tiefe und Strukturierungsmöglichkeiten.
XML-Dateien und Textformate
Grundsätzlich ist eine XML-Datei nichts anderes als eine Textdatei im Textformat. Anders als Binärformate ist XML dadurch transparent und sowohl von Menschen als auch Maschinen lesbar. Diese Auszeichnungssprache unterstützt dabei standardmässig UTF-8 als Zeichensatz, was eine Vielzahl von Sprachen und Sonderzeichen ermöglicht – ein wichtiger Punkt, etwa beim Datenaustausch zwischen internationalen Computersystemen.
Deklaration und Version
Ein XML-Dokument beginnt fast immer mit einer XML-Deklaration, die Version und Kodierung festlegt:
<?xml version="1.0" encoding="UTF-8"?>
Hiermit wird die XML-Version (z. B. 1.0 oder 1.1) sowie das Zeichencodierungsformat, meist UTF-8, spezifiziert. Diese Angabe ist nicht zwingend, aber empfohlen – besonders, wenn du XML-Daten an Drittanbieter weitergibst oder aus verschiedenen Quellen zusammenführst.
XML-Syntax: Streng, aber logisch
Die Syntax ist bewusst streng gehalten – ein Vorteil, wenn du strukturierte und fehlerfreie Daten verarbeiten willst. Die wichtigsten Regeln lauten:
- Jedes Element beginnt mit einem Start Tag (z. B. <titel>) und endet mit einem End Tag (</titel>).
- Start Tags und End Tags müssen exakt zueinander passen – inkl. Gross-/Kleinschreibung.
- Tags werden mit spitzen Klammern notiert (< >), was sie vom eigentlichen Textinhalt abgrenzt.
- Attributnamen stehen innerhalb eines Tags und nehmen Werte in Anführungszeichen an, z. B. <produkt id="007">.
- Elemente dürfen sich nicht überlappen (kein «Tag Salat» erlaubt).
Diese Formstrenge unterscheidet XML fundamental von HTML, wo die Regeln oft weniger konsequent durchgesetzt werden.
Elementnamen und Attribute
Ein Elementname definiert, welche Art von Daten innerhalb des Elements zu erwarten ist. Beispiel: <preis> zeigt an, dass es sich um einen Preis handelt. Dazu kommen optionale Attribute, die zusätzliche Informationen enthalten: <preis waehrung="EUR">19.99</preis>.
Attribute sollten nicht zu oft verwendet werden – besser ist es, möglichst viel Information in den eigentlichen Elementen unterzubringen. Das erleichtert die spätere Weiterverarbeitung mit XML-Parsern, XSLT (Extensible Stylesheet Language Transformation) oder DOM (Document Object Model).
Datenstruktur und Hierarchie
Ein Hauptmerkmal von XML ist die Fähigkeit, komplexe Datenstrukturen hierarchisch abzubilden. So lassen sich verschachtelte Inhalte einfach darstellen – z. B. Kunden mit Bestellungen und einzelnen Produkten. Diese datenstrukturierte Darstellung ist besonders in der Materialwirtschaft, beim E-Commerce oder in technischen Konfigurationen von Bedeutung.
Diese Sprache erlaubt es dir, eine Baumstruktur aufzubauen, die in vielen Programmiersprachen mithilfe des DOM navigiert werden kann. Dabei ist jedes Element ein Knoten im Baum, der weitere Knoten (Kinder) oder Daten (Blattknoten) enthalten kann.
Namespaces und Modularität
Ein weiteres zentrales Konzept ist der sogenannte Namespace. Dieser erlaubt dir, Elemente aus verschiedenen XML-Standards oder Quellen in einem Dokument zu kombinieren, ohne dass es zu Namenskonflikten kommt. Beispiel:
<html xmlns="http://www.w3.org/1999/xhtml"> <svg xmlns="http://www.w3.org/2000/svg">
Ohne Namespaces wäre die Wiederverwendung von gleichnamigen Elementnamen aus verschiedenen Kontexten nicht möglich – besonders problematisch bei komplexen Anwendungen oder Webservices.
Verarbeitung und Parsen
Damit Maschinen XML-Daten nutzen können, werden sogenannte XML-Parser eingesetzt. Diese sind in nahezu allen Programmiersprachen wie Java, JavaScript, Python oder C# verfügbar. Ein Parser liest das XML-Dokument ein, überprüft es auf Wohlgeformtheit (also korrekte Syntax) und kann – je nach Konfiguration – auch eine Validierung gegen eine DTD oder ein XML-Schema (XSD) durchführen.
Parser lassen sich in zwei Haupttypen unterteilen:
- DOM-Parser: Laden das gesamte Dokument in einen Baum im Speicher – praktisch zur Navigation und Bearbeitung.
- SAX-Parser: Arbeiten sequenziell – effizienter bei grossen Dokumenten, da weniger Speicherbedarf.
Aufbau einer XML-Datei
Ein XML-Dokument ist logisch und streng hierarchisch aufgebaut. Es besteht typischerweise aus:
- Deklaration: Gibt die XML-Version (z. B. 1.0 oder 1.1) und die Kodierung wie UTF-8 an.
- Wurzelelement: Zum Beispiel <katalog> – dieses Element enthält alle anderen Daten.
- Tags: Diese bestehen aus einem Start Tag (<buch>) und einem End Tag (</buch>).
- Elemente: Die grundlegenden Informationseinheiten. Sie können Text, weitere Elemente und Attribute enthalten.
- Attribute: Innerhalb eines Elements definieren sie zusätzliche Eigenschaften: <buch id="123">.
- Kommentare und Verarbeitungshinweise
Tags werden in spitzen Klammern geschrieben. Ein typischer Fehler ist es, Start Tags und End Tags nicht korrekt zu paaren – das führt zu einem ungültigen Dokument. Deswegen ist die XML-Syntax strenger als etwa bei HTML.
Beispiel
Hier ein einfaches Beispiel für eine XML-Datei:
<?xml version="1.0" encoding="UTF-8"?> <produkte> <produkt id="001" typ="buch"> <titel>Einführung in XML</titel> <preis waehrung="EUR">29.99</preis> </produkt> </produkte>
Die Datei besteht aus einem Textdokument, das eine Datenstruktur für Produkte abbildet. Es werden Elementnamen, Attribute, Tags und Hierarchien verwendet. So lassen sich Inhalte maschinenlesbar und dennoch für Menschen verständlich definieren.
Anwendungen
XML findet in einer Vielzahl von Anwendungen Verwendung:
- Web Services: SOAP-basierte Dienste nutzen XML als Standard.
- E-Commerce: Produktdaten, Bestellungen und Rechnungen im XML-Format.
- Textverarbeitung: Dateiformate wie DOCX oder XLSX basieren auf ZIP-komprimierten XML-Dateien.
- APIs von Drittanbietern: Viele bieten sowohl JSON als auch XML als Antwortformate.
- Mobile Apps: Android nutzt XML zur Definition von Layouts und Ressourcen.
- Konfigurationsdateien: In vielen Anwendungen, etwa in Java-Frameworks.
- Datenbanken und Data Warehousing: Speicherung grosser Mengen strukturierter Informationen.
- SVG (Scalable Vector Graphics): XML-basierte Bildsprache für skalierbare Grafiken.
Ein wichtiger Punkt ist die Verwendung von XML-Formaten zur Standardisierung: etwa XHTML (eine XML-Version von HTML), RSS-Feeds oder XSLT (zur Transformation von XML-Daten).
XML-Editoren
Du kannst XML mit jedem Texteditor bearbeiten – sei das Microsoft Editor (Windows), TextEdit (Mac), Notepad oder Sublime. Für grössere Projekte empfiehlt sich jedoch ein spezialisierter XML-Editor. Diese bieten:
- Syntaxhervorhebung
- Validierung gegen XML-Schema oder DTD
- Autovervollständigung
- Integration mit XPath, XSL, XSLT und DOM
Beliebte Tools sind Oxygen XML Editor, XMLSpy, VS Code mit XML-Plugins oder Online Editoren mit XML-Parsern im Backend. Letztere ermöglichen direktes Testen und Validieren, ohne Installation.
Validierung: DTD & XML Schema
Ein XML-Dokument kann nicht nur «wohlgeformt», sondern auch valide sein – das bedeutet, dass es einer formalen Beschreibung folgt.
DTD (Document Type Definition)
Eine DTD definiert, welche XML-Tags, Elementnamen und Attributnamen erlaubt sind. Sie wird meist inline oder extern eingebunden. Beispiel:
<!DOCTYPE katalog [ <!ELEMENT katalog (produkt+)> <!ELEMENT produkt (titel, preis)> <!ELEMENT titel (#PCDATA)> <!ELEMENT preis (#PCDATA)> ]>
XML Schema (XSD)
XML Schema, auch als XSD bezeichnet, ist der moderne Nachfolger von DTDs. Es erlaubt:
- Datentypen wie xs:string oder xs:decimal
- Restriktionen (z. B. Min-/Max-Werte)
- Mehr Struktur durch Namespaces
- Komplexe Validierungsregeln
Ein Beispiel:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="preis" type="xs:decimal"/> </xs:schema>
Mit Hilfe von XML-Parsern kann überprüft werden, ob eine XML-Datei den Vorgaben aus DTD oder XSD entspricht.
Vorteile & Grenzen
Vorteile
- Textbasiert & lesbar: Als Textformat mit UTF-8 überall einsetzbar
- Strukturiert & erweiterbar: Eigene Elementnamen & Tags
- Plattformunabhängig: Funktioniert auf allen Computersystemen
- Standardisiert: Weltweit durch das World Wide Web Consortium
- Sicher & transparent: Klare Syntax, keine Blackbox
- Kompatibel mit APIs & Webservices
Grenzen
- Komplexität: Für kleine Datenmengen oft überdimensioniert
- Grösser als JSON: Höherer Overhead durch umfangreiche Tags
- Strenge Syntax: Schon kleine Fehler führen zu Parsingfehlern
- Nicht zur Darstellung geeignet: Im Gegensatz zu HTML keine Layoutfunktion
Unterschiede zwischen XML und HTML
XML und HTML sind beide Auszeichnungssprachen, doch mit klar unterschiedlichem Fokus:
Merkmal | XML | HTML |
---|---|---|
Zweck | Strukturierter Datenaustausch | Darstellung von Webseiten |
Tag-Definition | Benutzerdefiniert | Vordefiniert (Standard-Set) |
Wohlgeformtheit | Pflicht | Nicht zwingend |
Validierung | DTD/XSD möglich | Selten genutzt |
Datenverarbeitung | Datenorientiert | Layout- und Format-orientiert |
Flexibilität | Sehr hoch | Gering |
HTML ist eine Hypertext Markup Language und wurde primär für die Anzeige von Inhalten im Web konzipiert, während XML auf den sicheren und flexiblen Austausch von Informationen abzielt.