Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

XML (Extensible Markup Language)

Strukturierte Daten in einer Textdatei
oder: Text mit strukturierenden Angaben

<artikel letzteÄnderung="2002-06-19">
  <überschrift>Ein Beispiel</überschrift>
  <körper>
    Zwei mal zwei gibt nach
    <person typ="historisch">Adam Riese</person> vier.
  </körper>
</artikel>

oder:

<rechnung>
  <empfänger>
    <vorname>Karlheinz</vorname>
    <nachname>Müller</nachname>
  </empfänger>
  <posten anzahl="1" preis="3,95" währung="EUR">
    Wärmflasche
  </posten>
  <posten anzahl="2" preis="16,34" währung="EUR">
    Wolldecke
  </posten>
</rechnung>
 

XML-Editoren (Beispiele gezeigt) präsentieren solche Dateien typischerweise als Baum. Das geht, weil die Elemente sauber verschachtelt sein müssen; vor einem End-Tag müssen alle zwischenzeitlich geöffneten Elemente erst geschlossen werden. Zum Beispiel ist deshalb ungültig:

<körper>Das war <person>Karlheinz</körper></person>

Vorteile von strukturiertem Text:

Idee: Alle Daten zunächst so anlegen, mit maximaler Informationsdichte, dann ggf. weiterverarbeiten (Druck, Finanzbuchhaltung, Web, Sprachausgabe usw.).

Diese Idee ist nicht neu:
1969: Goldfarb, Mosher und Lorie entwickeln bei IBM die "Generalized Markup Language" (GML) für juristische Informationssysteme
1985: Das daraus entwickelte SGML, die Standard Generalized Markup Language, wird ISO-Standard
1992: HTML als SGML-Ausprägung
1998: XML 1.0, die "Extensible Markup Language", wird Standard (W3C Recommendation)

XML ist eine schlanke Version von SGML. Beides sind Metasprachen, in denen man eigene Tags definiert (<rechnung> etc.), daher das "extensible" bei XML. HTML ist dagegen eine Anwendung/Ausprägung ("application") von SGML,  hat damit einen genau festgelegten Sprachschatz. XHTML ist eine Ausprägung von XML, also ebenfalls mit festem Sprachschatz (praktisch identisch mit HTML).

Weitere Ausprägungen:

Man darf verschiedene XML-Ausprägungen parallel im gleichen Dokument verwenden, z.B. XHTML und eine selbstgemachte Ausprägung:

<h1>Ein Beispiel</h1>
<p>
  Zwei mal zwei gibt nach
  <person typ="historisch">Adam Riese</person> vier.
</p>

Jede Software kann sich dann daraus den Teil herauspicken, den sie versteht. Beispiel: mit Microsoft® Word® erzeugtes Pseudo-HTML