XML 2023

Juni 2023
Nein, es gibt keine Version 2023 von XML. Ich habe nur mal alle Wörter aus meinem alten XML-Buch (von 2003) ausgeschüttelt, zusammengekehrt und durch das Zeitsieb von heute (wir sind im Jahr 2023) fallen lassen, um zu schauen, was da hängenbleibt. Und da blieb ziemlich viel hängen! Der aktuelle XML-Standard hat genau wie damals die Versionsnummer 1.0, zwar die 5. Ausgabe, aber auch schon von 2008. Ist XML in Vergessenheit geraten? Oder war die Version 1.0 schon so gut, dass sie die Zeiten quasi als Norm überdauert hat? Tatsächlich trifft Letzteres zu.
Durchgefallen ist allerdings die damalige Idee, dass HTML von XML-Sprachen abgelöst werden könnte. Hängengeblieben ist eine XHTML-Schreibweise. Da hat die Praxis einen anderen Verlauf genommen. Doch - so ganz richtig ist das auch nicht. Wir kennen in HTML verwendete XML-Sprachen wie SVG und MathML und bei genauer Betrachtung gibt es zwischen HTML und XML mehr Gemeinsamkeiten als Unterschiede.

Was ist XML im Kern?

XML, genauer der XML-Standard, ist in erster Linie ein Werkzeug, mit dem man eine Markup-Sprache definieren kann. Die Fülle von XML-Sprachen ist recht groß, viele sind für den Datenaustausch gedacht. Einen prima Überblick über XML und damit verbundene Sprachen bietet Wikipedia: Extensible Markup Language (XML)

Wir bauen uns ein XML-Dokument ...

... und kommen zunächst mit ganz wenigen Regeln aus.
<?xml version="1.0" encoding="UTF-8" ?>
<Datum>
  <Tag>12</Tag>
  <Monat>Juni</Monat>
  <Jahr>2023</Jahr>
</Datum>
Dieses kleine XML-Dokument hat nur die Aufgabe, ein Datum zu speichern.
Nennen wir doch einmal einige Regeln, nach denen dieses Dokument aufgebaut ist und vergleichen dies mit HTML.
  • Die erste Zeile muss der sogenannte Prolog sein. Die Version ist immer anzugeben, der Zeichencode ist mit UTF-8 vorgegeben.
    Gibt es noch in früheren XHTML-Versionen. Der Zeichencode und andere Vorgaben werden in meta-Tags gesetzt.
  • Nach dem Prolog kann eine Document Type Definition (DTD) folgen, die den Typ des XML-Dokuments bestimmt.
    Ein HTML-Dokument beginnt mit der Rest-DTD <!DOCTYPE html> und definiert damit den Dokumentyp HTML.
  • Der Inhalt wird von einem einzigen Element umhüllt, genannt Root-Element geben. In unserem Beispiel ist es das Element Datum.
    Genauso in HTML, nur der Name ist mit html vorgegeben.
  • Aber natürlich dürfen weitere Elemente darin enthalten und beliebig tief verschachtelt sein.
    In HTML genauso.
  • Es gibt einige wenige von XML vorgegebene Namen, wie der Name "xml" des Prologs. Die vorgegebenen Namen beginnen in der Regel mit "xml...".
    HTML besteht hauptsächlich aus vorgegebenen Namen.
  • Wir können Elementnamen (Tagnamen) frei erfinden, aber natürlich so wählen, dass sie den Inhalt auch verständlich definieren.
    Dürfen wir in HTML auch, Stichwort: Custom Elements
  • Bei Elementnamen wird Groß- und Kleinschreibung unterschieden, die Verwendung von Kleinbuchstaben wird bevorzugt.
    Groß- und Kleinschreibung von Elementnamen wird in HTML nicht unterschieden
  • Ein Element besteht immer aus Start-Tag und Ende-Tag.
    In HTML auch, es gibt Ausnahmen für bestimmte Elemente.
  • Bei Elementen mit leerem Inhalt ist die Kurzschreibweise <Tagname /> alternativ erlaubt.
    Auch in HTML.
  • Nicht erlaubt sind Tags, die kein Abschlusstag oder keinen Abschluss wie zuvor haben.
    Leider ist das in HTML bei einigen Elementen erlaubt.
  • Elemente können freidefinierte Attribute in der Schreibweise Attributname="Attributwert" enthalten.
    In HTML sind Attribute und deren Wertebereich vorbestimmt, es gilt dieselbe Schreibweise, mit Ausnahmen.
Haben wir in unserem XML-Dokument alle syntaktischen Regeln (die sogenannten Wellformedness-Constraints, kurz: WC) eingehalten, dann haben wir ein wohlgeformtes XML-Dokument erstellt. Unser Dokument hat zwar ein XML-Format, ist aber noch lange keine neue XML-Sprache.
Der nächste Schritt wäre, das Dokument gültig zu machen. Das geht mit XMLSchema (sehr aufwändig, aber höchst präzise) oder der zu XML gehörenden Document Type Definition (DTD). Jedoch mit einem wohlgeformten XML-Dokument kann man schon eine ganze Menge anfangen.

XML im Browser

Wir können XML-Dateien ohne weiteres vom Browser anzeigen lassen. XML-Formate werden intern im Document Objekt Model (DOM) repräsentiert werden, genau wie HTML. Linksseitig sehen wir die Ausgabe im Browser, rechtsseitig die Browserausgabe des Quelltextes.
Screenshot, Datei als Elementbaum sichtbar
Der Browser kann den Elementen keine Bedeutung zuordnen, daher wird einfach nur der Elementbaum dargestellt. Es geht aber auch anders, siehe Darstellung als Kalenderblatt.
Screenshot, Datum korrekt dargestellt
Wir sehen schon an der Quelltext-Darstellung, dass die Zeile
<?xml-stylesheet type="text/css" href="Datum.css" ?>
eingefügt wurde. So kann man einer XML-Datei ein CSS-Stylesheet zuordnen, womit für den Browser klar ist, wie die Elemente abzubilden sind.

XML-Code

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/css" href="Datum.css" ?>
<Datum>
  <Tag>12</Tag>
  <Monat>Juni</Monat>
  <Jahr>2023</Jahr>
</Datum>

CSS-Code

Datum {
  margin-top: 20pt;
  margin-left: 20pt;
  padding-top: 15pt;
  padding-bottom: 12pt;
  padding-left: 20pt;
  padding-right: 20pt;
  width:min-content;
  white-space: nowrap;
  border: 1pt solid black;
  font-family: sans-serif;
  box-shadow: 10pt -5pt 8pt grey;

  display:grid;
  justify-items:center;
  grid-template-areas:
  "Jahr"
  "Tag"
  "Monat";

}

Datum Tag {
  grid-area: Tag;
  display:inline-block;
  color: red;
  font-size: 4em;
  padding-right:4pt;
}

Datum Monat {
  grid-area: Monat;
  display:inline-block;
  font-size: 2em;
}

Datum Jahr {
  grid-area: Jahr;
  display:inline-block;
  font-size: 1.5em;
}
Das ganze Beispiel hier zum Anschauen: die XML-Datei und der CSS-Code

Was XML für uns heute ist

XML ist momentan keine Alternative für Webseiten. Das heutige HTML ist im Web verankert und erfüllt alle modernen Anforderungen.
Zu in HTML verwendbaren XML-Sprachen (wie bereits genannt MathML, SVG) werden in Zukunft vielleicht noch weitere hinzukommen.
Manche Tools nutzen das XML-Format, um ihre eigene Konfiguration zu speichern. So findet man im Ordner settings von FileZilla gleich fünf XML-Dateien. Datenbankprogramme, z.B. MariaDB, können ihre Suchergebnisse im XML-Format ausgeben. Verschiedene Office-Programme können Daten im XML-Format speichern, importieren und exportieren. Behörden und Firmen nutzen XML-Formate für den internen und externen Datenaustausch.
Und da sind wir auch schon in Bereichen, die für Projektentwickler von Interesse sind. Überall dort, wo Informationen aus Fremdanwendungen bezogen werden müssen, sind XML-Formate ein geeignetes Mittel, besonders unterstützt von XPath und XSLT.