XML, XSL, XPath, XLink und XPointer

Was ist XML?

XML steht für Extensible Markup Language, was soviel wie erweiterbare Auszeichnungssprache bedeutet und ist eine vereinfachte Teilmenge von SGML. Es wurde vom World Wide Web Konsortium (W3C) entwickelt, um HTML und weitere von SGML abgeleitete Sprachen um erweiterbare Elemente zu bereichern. XML ist sozusagen die Grundlage für jeden, der eigene Sprachen entwickeln möchte. Eine Sprache zur Definition anderer Sprachen nennt man Metasprache. XML beschreibt, ähnlich wie HTML, die Anordnung und das Auftreten von Elementen, die Verwendung von Attributen und was sonst noch zu einem Dokument gehört. Das neue ist die Erweiterbarkeit. HTML ist relativ statisch. XML verfügt hingegen über die Möglichkeit eine vormals mit SGML definierte Sprache zu erweitern. Grundgedanke von XML ist es, Daten und ihre Repräsentation zu trennen, aber für beide Funktionen die gleiche Datenbasis im XML–Format zu nutzen. Programme, die XML–Daten auslesen, interpretieren und auf Gültigkeit prüfen, nennt man XML–Parser.

Verwendung und Aufbau von XML

Für eine gewöhnliche Homepage braucht man XML eigentlich nicht. XML wird für Aufgaben verwendet, denen HTML und Co. nicht gerecht werden, zum Beispiel Metadaten. XML wird nicht anders geschrieben als gewöhnliches HTML. Die XML–Datei ist eine reine Text–Datei, die zum Beispiel mit einem Text–Editor oder einem speziellen XML–Editor geschrieben werden kann. Die allgemein verwendete Dateiendung ist dabei .xml. Die Leistung von XML besteht darin, dass man mit den Konzepten und Regeln, die es bereitstellt, eigene Auszeichnungssprachen definieren kann, die ähnlich funktionieren wie HTML. All diese Sprachen bestehen immer wieder aus Elementen, markiert durch Tags, deren Verschachtelungsregeln, und aus Attributen mit erlaubten Wertzuweisungen. Daneben gibt es Regeln, wie man solche Sprachen – in XML auch Namensräume genannt – in andere Sprachen integrieren und somit eine Sprache innerhalb einer anderen Sprache benutzen kann. Die Regeln für erlaubte Elemente, Attribute und Verschachtelungsmöglichkeiten einer XML–gemäßen Auszeichnungssprache werden unabhängig von den darzustellenden Daten definiert. Um definierte Elemente und Attribute innerhalb eines XML–Dokuments verwenden zu können, muss innerhalb des Dokumentes definiert werden, welche Definition verwendet werden soll. Die Daten mit den Definitionen stellen eine sogenannte Dokumenttyp–Definition (engl. document type definition, Abkürzung DTD) dar. Dies sind Beschreibungen der Elemente, Attribute und ihres Verhaltens zueinander, also ihrer Reihenfolge, Verschachtelung und der Art des Inhalts von Attributen, kurz der Struktur des Dokuments. Die DTD spezifiziert also die Syntax einer Anwendung von XML.

Zu jeder XML–Datei gehört am Anfang der Datei eine entsprechende Auszeichnung, dass es sich um XML handelt, die XML–Deklaration. Alle Namen von Elementen und Attributen in XML dürfen nur aus Buchstaben, Zahlen, dem Punkt, Unterstrichen und Bindestrichen bestehen. Außerdem müssen die Namen mit einem Buchstaben oder Unterstrich beginnen und dürfen keine Leerzeichen enthalten. Damit eine XML–Datei als gültig anerkannt wird, müssen zudem folgende Definitionen strikt eingehalten werden:

XML–basierte Dateien enthalten nichts anderes als semantische Auszeichnungen. Sie sagen nur etwas über die Bedeutung der an dieser Stelle gespeicherten Daten aus, aber nichts darüber, wie solche Daten darzustellen sind. Die so bezeichneten Daten sind völlig unabhängig vom Ausgabemedium (etwa Bildschirm, Display, Lautsprecher, Drucker), und sie enthalten keinerlei Angaben zur Formatierung (Schriftart, Schriftgröße, Farben usw.). Im Gegensatz zu HTML–Daten, für deren Darstellung ein Browser voreingestellte Werte benutzt, hat er bei XML–Daten keine Anhaltspunkte, wie diese darzustellen sind. Bevor solche Daten also präsentiert werden können, muss mit Hilfe einer Stylesheet–Sprache angegeben werden, wie die Daten formatiert werden sollen. Dazu stehen zwei Formatsprachen zur Verfügung: CSS und XSL. Das Einbinden solcher Stylesheet–Dateien muss dabei immer direkt nach der XML–Deklaration erfolgen. CSS, auch für HTML eingesetzt, genügt, um etwa einem Web–Browser mitzuteilen, wie er die Elemente einer XML–Datei darstellen soll. XSL ist dagegen wesentlich mächtiger und enger an den Konzepten von XML orientiert.

Was ist XSL?

Neben CSS ist XSL die zweite Möglichkeit, um XML–Daten für den Browser relativ gut darstellbar zu machen. XSL steht für Extensible Stylesheet Language und beschreibt die Darstellung und Behandlung von XML–Daten mit Hilfe von XSL–Stylesheets.
XSL stehen Möglichkeiten zur Verfügung, die in CSS unbekannt sind, zum Beispiel bedingte Formatierung oder Sortierung von Daten. Ein entscheidender Vorteil von XSL ist zudem, dass es keine eigene, vom Auszeichnungssprachenschema abweichende Syntax benutzt, so wie CSS. Stattdessen ist XSL selbst eine mit Hilfe von XML definierte Auszeichnungssprache. Eine Stylesheet–Datei, die mit XSL erstellt ist, ist also selber eine XML–gerechte Datei. So sind Software–Tools, die für XML entwickelt wurden, auch für XSL anwendbar. XSL als Sprache umfasst sowohl XSLT, als Transformationssprache, und XSLT(–FO) als Formatierungssprache.
XSLT stellt Elemente bereit, die die Transformation (Umwandlung) von XML–Daten in Daten anderen Formats erlauben (wie zum Beispiel HTML, RTF, ...). XSL–FO stellt wiederum andere Elemente zur Verfügung, mit denen festgelegt werden kann, wie XML–Daten angezeigt werden sollen (ähnlich CSS). Obwohl die XML–Schreibweise verwendet wird, sind die Elementnamen identisch mit den Eigenschaftsnamen von CSS. Mit XSL wird zum Beispiel die Umwandlung in Formate wie PDF möglich, da diese sich größtenteils auch auf die Formatierung von Daten konzentrieren. XSL–Dokumente können mit einem XML–Editor erstellt werden und haben grundsätzlich die Dateiendung .xsl. Sie werden wie CSS–Dateien in XML eingebunden.

XSL funktioniert wie XML nach dem Prinzip des Dokument–Baumes. Als Baumknoten gibt es Elemente, Attribute, Verarbeitungsanweisungen, Kommentare und Text. Von jedem Knoten zweigen wiederum Unterelemente ab. XSLT kann nun diese Knoten abschreiten und umwandeln. Durch die Umwandlung kann letztlich ein neues Dokument entstehen, worin das Ziel von XSLT liegt. Es gibt drei Arten, auf denen transformiert werden kann, damit die Daten vernünftig von einem Browser angezeigt werden können:

  1. Die XML–Daten auf dem Server werden schon vor dem Versand an den Besucher umgewandelt und als HTML gespeichert.
    Der Vorteil ist eine garantierte Übertragung der HTML–Daten, der Nachteil die Einschränkung der Funktionsvielfalt von XSLT.
    Diese Anwendung ist denkbar, wenn Daten einmalig aus einer XML–Datenbank in HTML–Dokumente umgewandelt werden.
  2. Die Daten werden als XML mit dem dazugehörigen XSLT–Stylesheet auf dem Server belassen und auch von diesem transformiert.
    Dies ist die beste und sicherste Variante, weil so der volle Umfang von XSLT angewandt wird und sichergestellt ist, dass alle Browser das gleiche anzeigen.
  3. Die Transformation erfolgt durch den Browser des Nutzers.
    Dies ist jedoch weniger zu empfehlen, da dies wenige Browser unterstützen. Das entscheidende Problem beim Erfolg von XML ist die mangelnde Fähigkeit von Software, XML–basierte Daten vollständig und adäquat darzustellen.

Was ist XPath?

Neben XML und XSLT ist XPath das dritte Glied in der Kette. Es bietet die Grundfunktionen für XSLT, um Knoten richtig ansprechen zu können (Adressierung von Baumbestandteilen). XPath ist eine Art Hilfssprache, die erforderlich ist, damit XSLT seine Aufgaben wahrnehmen kann. XPath hat dabei drei wichtige Aufgaben:

Funktionen in XPath haben also grundsätzlich die Aufgabe, die Übersetzung der XML–Ausgangsdaten in den Ergebnisbaum (zum Beispiel nach HTML) genauer zu kontrollieren und dabei zusätzliche Features zur Verfügung zu stellen. Sie sind für den Einsatz innerhalb von XSLT–Stylesheets gedacht.

Was ist XLink?

XLink ist ein Schema zum Beschreiben von Verweisen (Hyperlinks) in XML. XML bietet leider keine Möglichkeit, dem Programm, welches das XML–Dokument verarbeitet, Hinweise auf interne oder externe Zusammenhänge zu geben. Hier setzt XLink, oder ausgeschrieben XML Linking Language, an und erweitert XML um einige Funktionen.

Was ist XPointer?

XPointer versteht sich als erweiterbares System, um XML–Daten adressieren zu können. Es ist ein Weg, auf bestimmte Bestandteile eines XML–Datensatzes zeigen zu können, um diese Verbindungen zum Beispiel für XLink verwenden zu können. XPointer ist nicht als eigene Sprache zu verstehen sondern eher als Sprachzusatz zum bestehenden XML–, XPath– und XLink–System. XPointer erweitert XPath, so dass anstelle von ganzen Knoten auch eine bestimmte Stelle oder ein Bereich innerhalb eines Knotens (zum Beispiel innerhalb des Elementinhalts) oder über mehrere Knoten hinaus auswählbar ist.

Zum Seitenanfang