Begriff
XML
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
XML ist eine Sprache, um Daten so aufzuschreiben, dass sowohl Menschen als auch Maschinen sie lesen können.
Es sieht fast aus wie HTML (mit spitzen Klammern < >), aber du darfst die Tags selbst erfinden.
In HTML gibt es nur <h1> oder <p>.
In XML kannst du schreiben: <Auto><Marke>BMW</Marke><Farbe>Rot</Farbe></Auto>
Es ist wie ein digitaler Packzettel, der genau beschreibt, was im Paket ist.
Merksatz: Ein textbasiertes Format zum Austausch strukturierter Daten.
Früher (2000er) war XML der König des Datenaustauschs. Heute ist es oft durch JSON ersetzt worden (weil JSON einfacher und kürzer ist). Aber XML lebt noch überall:
- Konfigurationsdateien: Viele Server speichern ihre Einstellungen in XML.
- Office-Dateien: Eine
.docxDatei ist eigentlich ein ZIP-Archiv voller XML-Dateien. (Benenne mal eine Word-Datei in .zip um und öffne sie!). - Sitemaps: Google liest
sitemap.xml, um zu wissen, welche Seiten deine Webseite hat.
1. Schema (XSD)
Woher weiß der Computer, ob <Auto><Reifen>5</Reifen></Auto> erlaubt ist?
Dafür gibt es eine Bauanleitung: XSD (XML Schema Definition).
Darin steht: "Ein Auto darf maximal 4 Reifen haben und Marke muss ein Text sein."
Damit kann man XML Validieren ("Ist diese Datei gültig?").
2. XPath & XSLT
XML ist mächtig.
- XPath: Eine Sprache, um Teile aus dem XML herauszupicken ("Gib mir alle Autos, die rot sind").
- XSLT: Eine Sprache, um XML in etwas anderes zu verwandeln (z. B. XML -> HTML-Webseite oder XML -> PDF).
1. DTD vs. XSD (Die Validierung)
Es gibt zwei Wege, XML-Regeln festzulegen:
- DTD (Document Type Definition): Das alte Format. Einfach, aber schwach. Es kann z. B. nicht sagen "Dieses Feld muss eine Zahl zwischen 1 und 10 sein".
- XSD (XML Schema Definition): Das moderne Format. Es ist selbst in XML geschrieben. Es erlaubt komplexe Datentypen, Namensräume (Namespaces) und strikte Logik. In der Industrie (Finanzen/Logistik) ist XSD das Gesetz: Entspricht eine Datei nicht exakt dem Schema, wird sie sofort abgelehnt.
2. XXE (XML External Entity) Attack
Ein gefährliches Sicherheitsrisiko. XML erlaubt es, "Entities" zu definieren – quasi Variablen.
Hacker können eine Entity bauen, die auf eine lokale Systemdatei zeigt:
<!ENTITY xxe SYSTEM "file:///etc/passwd">.
Wenn ein unsicherer Webserver dein XML einliest und verarbeitet, schickt er dem Hacker eventuell den Inhalt deiner Passwort-Datei zurück.
Regel: Deaktiviere in deinem XML-Parser immer die Verarbeitung von externen Entities (External Entities), wenn du Daten von Usern empfängst.
3. DOM vs. SAX Parsing
Wie liest ein Programm eine XML-Datei?
- DOM (Document Object Model): Lädt die gesamte Datei in den Arbeitsspeicher. Vorteil: Man kann überall hinspringen. Nachteil: Bei einer 1 GB großen Datei stürzt dein Programm wegen RAM-Mangel ab.
- SAX (Simple API for XML): Ein "Streaming"-Parser. Er liest die Datei von oben nach unten, Zeichen für Zeichen. Er löst Events aus ("Hier fängt ein Auto-Tag an!"). Vorteil: Es braucht fast keinen RAM, egal wie groß die Datei ist. Nachteil: Du kannst nicht "zurückschauen".
Quick-Check
Was ist besser: XML oder JSON?
Für Web-Apps heute fast immer JSON (kleiner, schneller für JavaScript). XML ist besser für komplexe Dokumente mit strengen Regeln (Banken, Versicherungen).Was haben HTML und XML gemeinsam?
Beide sind "Markup Languages" (Auszeichnungssprachen) und basieren auf Tags. Aber HTML ist für Darstellung (Aussehen), XML für Daten (Inhalt).Warum sind Word-Dateien eigentlich XML?
Damit man sie auch ohne Word öffnen und lesen kann. Das "Open XML Format" (docx, xlsx) ist ein offener Standard, damit deine Daten nicht in einem geheimen Format gefangen sind.