Markup mit Zukunft

SAX und XML-Namespaces

Etwas einfacher gestrickt und derzeit sicherlich das meistgenutzte Tool ist das "Simple API for XML" (SAX), eine universelle Schnittstelle zu unterschiedlichen XML-Parsern. Die oben aufgelisteten Programme unterstützen SAX unmittelbar; für andere, etwa "MS-XML", stehen externe Treiber zur Verfügung. SAX eignet sich vorzüglich als Umgebung für lineare Konvertierungen, bei denen jedes XML-Tag genau einem Output zugeordnet ist (1:1-Verknüpfung). Entdeckt der Parser einen Knoten, so ruft er eine dafür zuständige Callback-Routine auf, die eine Konversion durchführt oder eine Aktion auslöst. Sie kann entweder einfachen HTML-Code erzeugen - und beispielsweise einen Textvorspann als rechtsbündig angeordnete Tabelle mit einer relativen Breite von 75 Prozent definieren - oder Platzhalter durch aktuelle Informationen aus einer Datenbank ersetzen. Im Gegensatz zur Baumstruktur des DOM arbeitet SAX also mit einem linearen Daten-Stream.

Zu den praktischen Tools im SAX-Umfeld gehört "SAXON". Hiermit lassen sich XML-DTDs ineinander überführen oder automatisch neue DTDs erzeugen. Darüber hinaus kann SAXON auch in der DOM-Welt zum Einsatz kommen. Einen Konverter zwischen SAX und DOM bietet IBM mit dem "XML Productivity Kit" (XPK4J) an.

Vieldiskutiert wird derzeit ein Vorschlag des W3C, der den Aufbau komplexer Dokumente vereinfachen soll und eine Kombination mehrerer Tag-Familien in einem Dokument zuläßt. Das setzte bislang voraus, daß sich die Tag-Familien nicht überschneiden, es also innerhalb eines Dokuments nicht Tags ein und desselben Names jedoch verschiedener Autoren gibt. Sonst nämlich hätte der Parser die Tags in der Tat "mißverstehen" können. Die sogenannten "Namespaces" lösen das Problem. Darin fassen alle Autoren, jeder für sich, ihre eigenen Tags zusammen. Belegen zwei Autoren ein Tag mit dem gleichen Namen aber unterschiedlicher Struktur, so stellt der Parser deren Herkunft anhand eines Prefix fest, das wie eine Art "Ortsvorwahl" dient. Tools, welche die XML-Namespaces-Erweiterung nicht unterstützen, ignorieren einfach die Erweiterung.

Derzeit noch in Arbeit und deshalb ein bewegliches Ziel ist die "Extensible Style Language" (XSL). Damit kann das Layout von XML-Dokumenten beschrieben werden. XSL ist in gewisser Hinsicht vergleichbar mit parametrisierbaren "Cascading Style Sheets" (CSS) und nutzt mit einem vorangestellten "xsl:"-Prefix bereits eine XML-Namespaces-Notation.