XML: Was es ist, Dokumentenstruktur und Funktionsprinzip

Autor: IT Sectr Veröffentlicht: 2026-03-08 Lesezeit: 8 Min.

XML (eXtensible Markup Language) ist ein Textformat zum Speichern und Übertragen strukturierter Daten mit benutzerdefinierten Tags. Es wird häufig in Konfigurationsdateien, Webdiensten und der Android-Entwicklung verwendet. Laut dem W3C-Konsortium ist die XML-Spezifikation seit 2008 ein stabiler Standard. XML bietet eine strenge Datenstruktur mit der Möglichkeit der Validierung durch Schemas.

Wichtige Punkte

  • XML — erweiterbare Auszeichnungssprache mit benutzerdefinierten Tags für strukturierte Daten
  • Strenge Struktur — obligatorische schließende Tags, Wurzelelement und Validierung über XSD
  • Namespaces — Mechanismus zur Vermeidung von Namenskonflikten in einem Dokument
  • XSLT — Transformation von XML in andere Formate: HTML, PDF, CSV
  • Android-Entwicklung — XML wird für Layouts, Manifest und Ressourcen verwendet

Was ist XML?

XML ist eine Auszeichnungssprache, die eine Reihe von Regeln zum Codieren von Dokumenten in einem sowohl für Menschen als auch für Maschinen lesbaren Format definiert. Im Gegensatz zu HTML hat XML keinen festen Satz von Tags — Entwickler erstellen eigene Tags, die der Datenstruktur entsprechen.

XML wurde 1996 vom W3C-Konsortium als vereinfachte Teilmenge von SGML (Standard Generalized Markup Language) entwickelt. Das Hauptziel von XML ist die Trennung von Inhalt und Datenpräsentation. Im Gegensatz zu HTML, das das Aussehen beschreibt, beschreibt XML die Struktur und Bedeutung von Daten.

Die wichtigste Eigenschaft von XML ist die Erweiterbarkeit. Wenn in einem Projekt neue Datentypen auftauchen, fügt der Entwickler einfach neue Tags hinzu, ohne die vorhandene Struktur zu ändern. Dies macht XML praktisch für die langfristige Datenspeicherung und den Austausch zwischen verschiedenen Systemen.

Hauptanwendungsbereiche von XML

  • Android-Entwicklung — Layout-Dateien, Manifest, Ressourcen (strings, colors, themes)
  • Konfiguration — Maven POM, Ant Build, Web-Konfigurationen (web.xml)
  • Webdienste — SOAP, XML-RPC, RSS/Atom-Feeds
  • Dokumenten-Workflow — SVG, DocBook, Office Open XML
  • Datenbanken — SQL Server (XML-Typ), Oracle, PostgreSQL

XML-Syntax und -Struktur

Die XML-Syntax ist strenger als die von HTML. Jedes öffnende Tag muss ein entsprechendes schließendes Tag haben, Attribute werden in Anführungszeichen gesetzt und Tag-Namen unterscheiden zwischen Groß- und Kleinschreibung. Das Dokument muss genau ein Wurzelelement haben, das alle anderen enthält.

Ein XML-Dokument kann mit einer Deklaration beginnen, die die XML-Version und Kodierung angibt. Darauf folgt das Wurzelelement, das verschachtelte Elemente, Attribute, Textinhalte und Kommentare enthalten kann. Leere Elemente werden als geschrieben.

xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <book id="bk001">
        <title>XML Developer Guide</title>
        <author>John Smith</author>
        <price currency="USD">29.99</price>
        <published>2026-03-15</published>
    </book>
    <book id="bk002">
        <title>Advanced XML Schemas</title>
        <author>Jane Doe</author>
        <price currency="USD">49.99</price>
        </book>
</catalog>

Regeln für wohlgeformtes XML

Wohlgeformtes (Well-formed) XML muss grundlegende Regeln befolgen: schließende Tags sind für jedes öffnende Tag obligatorisch, die Verschachtelung ist streng (Tag-Überlappung ist verboten), Attributwerte stehen immer in Anführungszeichen. Die Verletzung einer Regel macht das Dokument ungültig und nicht parsbar.

  1. Ein Wurzelelement — das Dokument enthält genau eine Wurzel
  2. Korrekte Verschachtelung — Tags dürfen sich nicht überlappen
  3. Schließende Tags — obligatorisch für alle Elemente außer selbstschließenden
  4. Groß-/Kleinschreibung — <Book> und <book> sind unterschiedliche Elemente
  5. Anführungszeichen in Attributen — Attributwerte in doppelten oder einfachen Anführungszeichen

XML-Namespaces und -Schemas

XML-Namespaces lösen das Problem von Namenskonflikten, wenn Elemente aus verschiedenen Vokabularen in einem Dokument verwendet werden. Ein Namespace wird durch das xmlns-Attribut mit einer URI definiert, die das Vokabular eindeutig identifiziert.

XML Schema (XSD) ist eine Sprache zur Beschreibung der Struktur eines XML-Dokuments. XSD definiert, welche Elemente und Attribute erlaubt sind, ihre Datentypen, Obligatorik und Einschränkungen. Schemas ermöglichen die automatische Validierung des Dokuments vor der Verarbeitung, was für Integrationslösungen entscheidend ist.

Technologie Zweck Beispiel
DTD Basisstruktur-Validierung Älter, weniger Funktionen
XSD Strenge Typisierung und Validierung Industriestandard
RELAX NG Kompakte Alternative zu XSD Einfacher und lesbarer als XSD
XSLT Transformation von XML in andere Formate XML zu HTML, PDF, CSV
XPath Navigation und Knotenauswahl Abfragen an den XML-Baum

XML in der mobilen Entwicklung

XML spielt eine Schlüsselrolle in der Android-Entwicklung. Das Android-Betriebssystem verwendet XML zur Beschreibung der Benutzeroberfläche (Layout-Dateien), der Anwendungskonfiguration (AndroidManifest.xml), von Ressourcen (strings, colors, themes) und Vektorgrafiken (VectorDrawable). Unter iOS wird XML seltener verwendet, hauptsächlich für Storyboard- und Konfigurations-plist-Dateien.

In Android wird jeder Anwendungsbildschirm durch eine XML-Datei mit einer Hierarchie von View-Komponenten beschrieben: ConstraintLayout, LinearLayout, TextView, Button. Dieser Ansatz trennt die Anwendungslogik von der Präsentation und vereinfacht die Wartung und Anpassung an verschiedene Bildschirme. Ressourcen-XML-Dateien ermöglichen die Lokalisierung der Anwendung ohne Codeänderungen.

Beispiel für ein Android-Layout

Eine typische Layout-Datei enthält ein Wurzel-ConstraintLayout mit verschachtelten Elementen, die jeweils Attribute für Position, Größe und Stil haben. Android kompiliert XML in das binäre AXML-Format zur Leistungsoptimierung beim Start.

xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"
        app:layout_constraintTop_toBottomOf="@id/title"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

XML-Parsing auf mobilen Plattformen

XML-Parsing auf mobilen Plattformen erfolgt mit zwei Hauptansätzen: DOM (Document Object Model) lädt das gesamte Dokument als Baum in den Speicher, SAX (Simple API for XML) liest das Dokument streaming-artig und ruft Ereignis-Handler auf. DOM ist praktisch für kleine Dokumente, SAX für große Dateien mit Speicherbeschränkungen.

Android verfügt über integrierte Parser: XmlPullParser für das Streaming-Parsing und DocumentBuilder für den DOM-Ansatz. iOS verwendet Foundation XMLParser mit einem Delegaten-Protokoll. Zur Serialisierung von Objekten in XML werden häufig Bibliotheken wie SimpleXML in PHP oder Jackson XML in Java verwendet.

XML-Parsing auf Android (Kotlin)

Android empfiehlt die Verwendung von XmlPullParser für effizientes XML-Parsing. Der Parser arbeitet im ereignisgesteuerten Modus: Er ruft next() auf, um zum nächsten Element zu gelangen, und gibt den Ereignistyp zurück (START_TAG, TEXT, END_TAG). Dies ermöglicht die Verarbeitung von Dokumenten jeder Größe mit minimalem Speicherverbrauch.

kotlin
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import java.io.IOException

fun parseCatalog(parser: XmlPullParser): List<Book> {
    val books = mutableListOf<Book>()
    var eventType = parser.getEventType()
    var currentBook: Book? = null

    while (eventType != XmlPullParser.END_DOCUMENT) {
        when (eventType) {
            XmlPullParser.START_TAG -> {
                when (parser.getName()) {
                    "book" -> currentBook = Book()
                    "title" -> parser.next()
                    "author" -> parser.next()
                }
            }
            XmlPullParser.TEXT -> {
                currentBook?.apply {
                    title = parser.getText() ?: ""
                }
            }
            XmlPullParser.END_TAG -> {
                if (parser.getName() == "book") {
                    currentBook?.let { books.add(it) }
                }
            }
        }
        eventType = parser.next()
    }
    return books
}

XML-Beispiele in Anwendungen

Anwendungsbeispiele von XML zeigen seine Rolle in realen Projekten. Neben der Android-Entwicklung wird XML für Build-Konfiguration, Datenbeschreibung und Dokumenten-Workflow verwendet. Das Verständnis der XML-Syntax ist für die Arbeit mit Maven, SOAP-Diensten und vielen Enterprise-Tools erforderlich.

Maven-Konfiguration (POM)

Die pom.xml-Datei beschreibt ein Maven-Projekt: Abhängigkeiten, Plugins, Versionen und Build-Profile. Jede Abhängigkeit wird mit den Tags groupId, artifactId und version angegeben. Maven lädt die angegebenen Bibliotheken automatisch aus den Repositories herunter.

xml
<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>
</project>

XML vs. JSON: Wann man was wählt

Die Wahl zwischen XML und JSON hängt von den spezifischen Anforderungen des Projekts ab. JSON eignet sich für REST-APIs, mobile Anwendungen und Konfigurationen, bei denen Kompaktheit und Geschwindigkeit wichtig sind. XML ist in Enterprise-Systemen, Dokumenten-Workflow und der Android-Entwicklung unverzichtbar, wo strenge Validierung, Namespaces und Datentransformation benötigt werden.

XML punktet in Szenarien mit langfristiger Dokumentspeicherung. Dank XSD-Schemas können XML-Dokumente automatisch validiert werden, was für medizinische, finanzielle und rechtliche Systeme entscheidend ist. XSLT-Transformationen ermöglichen die Generierung von HTML, PDF und anderen Formaten aus einer einzigen XML-Quelle, was den Dokumenten-Workflow vereinfacht.

JSON wiederum ist zum Standard für Web-APIs und mobile Anwendungen geworden. Die einfache Integration mit JavaScript, die geringere Größe und die hohe Parsing-Geschwindigkeit machen JSON zur bevorzugten Wahl für REST-APIs, WebSocket-Nachrichten und Konfigurationsdateien. Für die meisten neuen Projekte wird empfohlen, mit JSON zu beginnen und nur dann auf XML umzusteigen, wenn spezifische Anforderungen auftreten.

Häufig gestellte Fragen

Wie unterscheidet sich XML von HTML?

XML beschreibt die Struktur und den Inhalt von Daten, HTML beschreibt das Aussehen und die Darstellung. XML erlaubt das Erstellen beliebiger Tags, HTML hat einen festen Satz. XML ist in der Syntax strenger: Alle Tags müssen geschlossen werden, HTML erlaubt ungeschlossene Tags. XML ist für Daten, HTML für die Anzeige.

Was ist XSD und wozu wird es benötigt?

XSD (XML Schema Definition) ist eine Sprache zur Beschreibung der Struktur eines XML-Dokuments. XSD definiert, welche Elemente und Attribute erlaubt sind, ihre Datentypen, Obligatorik und Einschränkungen. Das Schema ermöglicht die automatische Validierung eines XML-Dokuments vor der Verarbeitung, wodurch Fehler vermieden und die Datenintegrität sichergestellt wird.

Wie parst man XML auf Android?

Verwenden Sie auf Android XmlPullParser zum XML-Parsing — einen integrierten Streaming-Parser. Er arbeitet ereignisgesteuert: Er verarbeitet START_TAG, TEXT und END_TAG in einer Schleife und verwaltet den Speicher effizient. Für kleine Dokumente ist ein DOM-Parser über DocumentBuilderFactory geeignet, der das gesamte Dokument als Knotenbaum in den Speicher lädt.

Was ist der Unterschied zwischen DTD und XSD?

DTD (Document Type Definition) ist ein alter Validierungsmechanismus mit eingeschränkten Möglichkeiten: Er unterstützt keine Datentypen (alles sind Zeichenketten) und keine Namespaces. XSD ist ein moderner Ersatz mit Unterstützung für Datentypen (Zahlen, Daten, Aufzählungen), Namespaces und Erweiterbarkeit. XSD selbst ist ein XML-Dokument, während DTD eine eigene Syntax verwendet.

Warum werden Namespaces in XML benötigt?

Namespaces verhindern Namenskonflikte, wenn ein XML-Dokument Elemente aus verschiedenen Quellen kombiniert. In einem Android-Layout kann der View-Tag sowohl von android.view als auch von einer Bibliothek stammen. Das xmlns-Attribut mit einer URI identifiziert eindeutig die Quelle jedes Elements und Attributs.

Zusammenfassung

  • XML — erweiterbare Auszeichnungssprache mit benutzerdefinierten Tags für strukturierte Daten
  • Strenge Syntax — obligatorische schließende Tags, Wurzelelement, Groß-/Kleinschreibung
  • Namespaces und XSD-Schemas ermöglichen Validierung und verhindern Namenskonflikte
  • Android verwendet XML für Oberflächen, Ressourcen und Anwendungskonfiguration
  • Parsing erfolgt über XmlPullParser (Streaming) oder DOM (im Speicher)
  • XSLT ermöglicht die Transformation von XML in HTML, PDF und andere Formate
  • Weniger verbreitet in REST-APIs als JSON, aber XML ist in Enterprise und Android unverzichtbar

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch