EXtensible Markup Language (XML)
Zur Navigation springen
Zur Suche springen
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.