EXtensible Markup Language (XML)
XML (Extensible Markup Language)
XML (Extensible Markup Language) ist ein textbasiertes Datenformat zur strukturierten Darstellung und Speicherung von Informationen. Es wurde entwickelt, um Datenplattform- und sprachunabhängig auszutauschen und ist sowohl für Menschen lesbar als auch maschinell verarbeitbar.
Ziele und Eigenschaften
XML wurde mit folgenden Zielen konzipiert:
- Strukturierte Datenrepräsentation
- Plattform- und Sprachunabhängigkeit
- Einfache Austauschbarkeit von Daten zwischen Systemen
- Erweiterbarkeit durch eigene Tags
Wichtige Eigenschaften:
- Menschenlesbar (Klartextformat)
- Hierarchische Struktur (Bäume)
- Selbstbeschreibend durch Tags
- Standardisiert durch das W3C
Grundaufbau
Ein XML-Dokument besteht aus Elementen, die durch Tags definiert werden.
Beispiel
<?xml version="1.0" encoding="UTF-8"?>
<Person>
<Name>Alice</Name>
<Alter>30</Alter>
</Person>
Bestandteile von XML
- Elemente: Grundbausteine, umfasst durch Start- und Endtags
- Attribute: Zusätzliche Informationen zu Elementen
- Textknoten: Werte oder Inhalte innerhalb von Elementen
- Kommentare: ``
- Prolog: Metadaten (Version, Encoding)
Beispiel mit Attributen
<Teilnehmer id="123" aktiv="ja">
<Name>Max</Name>
</Teilnehmer>
Wohlgeformtheit und Validität
Ein XML-Dokument muss wohlgeformt sein:
- Jeder Starttag braucht einen Endtag.
- Tags dürfen nicht überlappen.
- Es muss exakt eine Wurzel geben.
Optional kann ein Dokument zusätzlich validiert werden.
DTD (Document Type Definition)
Definiert die Struktur und erlaubten Elemente.
<!DOCTYPE Person [
<!ELEMENT Person (Name, Alter)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Alter (#PCDATA)>
]>
XML Schema (XSD)
Moderner, typisierter Standard zur Definition von Datenstrukturen.
<xs:element name="Alter" type="xs:int"/>
XML-Namespaces
Namespaces verhindern Namenskonflikte.
<buch xmlns:h="http://example.com/header">
<h:titel>XML Grundlagen</h:titel>
</buch>
Verarbeitung von XML
XML wird häufig über Parser verarbeitet.
| Parser-Typ | Beschreibung | Einsatz |
|---|---|---|
| DOM | Lädt gesamtes Dokument in den Speicher | Flexible Manipulation |
| SAX | Ereignisbasierte Verarbeitung, kein vollständiger Speicherbedarf | Sehr große Dateien |
| StAX | Pull-basierter Streaming-Parser | Kontrollierte sequenzielle Verarbeitung |
XML in der Praxis
XML wird in vielen Bereichen verwendet:
- Konfigurationsdateien (z. B. Java EE, Spring)
- Webservices (SOAP)
- Datenbankexporte
- Graphische Oberflächenbeschreibungen (z. B. Android Layout XML)
- Dokumentformate (z. B. Office Open XML, SVG)
Beispiel: SOAP-Nachricht
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getDataResponse>
<value>42</value>
</getDataResponse>
</soap:Body>
</soap:Envelope>
Vorteile
- Klar definierte Struktur
- Standardisiert und weit verbreitet
- Selbstbeschreibend
- Hohe Interoperabilität
Nachteile
- Höherer Speicherplatzbedarf als Binärformate
- Parser-Overhead → langsamer als kompakte Formate (z. B. JSON, Protocol Buffers)
- Komplexität bei umfangreichen Schemas
Vergleich mit JSON
| Kriterium | XML | JSON |
|---|---|---|
| Lesbarkeit | Menschenlesbar, aber umfangreich | Kompakter und einfacher lesbar |
| Struktur | Hierarchisch + Attribute | Hierarchisch (Key-Value) |
| Schemadefinition | DTD/XSD weit verbreitet | JSON Schema weniger etabliert |
| Einsatz | Enterprise, Webservices, Konfiguration | Web-APIs, moderne Anwendungen |
Zusammenfassung
- XML beschreibt strukturierte Daten in einer baumartigen Textform.
- Es ist universell, erweiterbar und plattformunabhängig.
- Wohlgeformtheit ist zwingend, Validität optional.
- Wird in zahlreichen Standards und Enterprise-Systemen verwendet.