# XML und XML-Derivate

| XML als Definitionssprache für Auszeichnungssprachen XML-Derivate XML-Versionen

## XML als Definitionssprache für Auszeichnungssprachen

Stellen Sie sich vor, irgendjemand hätte irgendwann für ein weit verbreitetes Textverarbeitungsprogramm wie MS Word eine bestimmte Dokumentvorlage erstellt. Stellen Sie sich weiter vor, diese Dokumentvorlage würde sich irgendwie immer mehr verbreiten, jeder Word-Anwender hätte sie, und jeder Word-Anwender würde seine Dokumente fortan nur noch mit dieser einen Dokumentvorlage erstellen.

Genau das ist im Grunde bei HTML der Fall. HTML ist eine Sprache, die mit Hilfe von SGML definiert wird und eine Reihe von festen Elementen enthält. Es ist zwar eine Sprache, die eigentlich alle wichtigen Elemente enthält, die ein Web-Autor heute so braucht, doch es bleiben genügend Wünsche offen. Denn es gibt viele Texte, die anwendungsspezifische Datenstrukturen haben. Nehmen Sie beispielsweise E-Mails. Eine E-Mail hat bestimmte Kopfdaten wie Absender, Empfänger, Thema, Absendezeit, sowie den eigentlichen Text. Wenn Sie eine solche E-Mail mit allen Feldern auf einer Web-Seite wiedergeben möchten, können Sie natürlich für die Felder "Absender", "Empfänger" usw. einfach normale Textabsätze verwenden. Sinnvoller wäre es allerdings, Auszeichnungselemente mit Namen wie "Absender" oder "Empfänger" zu haben. Nur so würde die semantische Datenstruktur der E-Mail erhalten bleiben.

Und genau dies ist der Unterschied zwischen HTML und XML. XML wird auch mit Hilfe von SGML, der Mutter aller Auszeichnungssprachen, definiert. Doch es ist keine "SGML-Anwendung", so wie HTML, sondern ein "SGML-Profil". Das ist eine Stufe abstrakter, man spricht dabei auch von "generalized markup", also von "verallgemeinerter Auszeichnung".

Im Grunde ist XML auch gar keine Konkurrenz zu HTML, sondern vielmehr zu SGML. Denn mit Hilfe von XML können Sie wie mit SGML eigene, neue Sprachen "erfinden". XML selbst ist also nur dazu da, um Auszeichnungssprachen zu definieren. Eine solche Auszeichnungssprache muss bestimmte Grundkonventionen einhalten. Die Bestandteile der Auszeichnungssprache müssen nach einem vorgeschriebenen Schema definiert werden. XML ist dabei das "Regelwerk", das Schema. Beim Definieren eigener Auszeichnungssprachen mit XML können Sie eigene Namen vergeben. So können Sie zum Beispiel Elemente definieren, um Bereiche eines Dokuments als Lexikonartikel auszuzeichnen, als Musiknote oder als Bestandteil einer chemischen Formel. Sie müssen bei der Definition der Elemente jedoch exakt festlegen, welche Eigenschaften das Element hat, zum Beispiel, innerhalb welcher anderen Elemente es vorkommen kann und innerhalb welcher nicht. Wenn Sie dann ein XML-Dokument mit der Definition einer eigenen Sprache erstellt haben, können Sie Dateien in dieser Sprache erstellen und im Dateikopf angeben, auf welche XML-Definitionen Sie sich in dieser Datei beziehen.

Auszeichnungssprachen, die Sie mit XML definieren, sind wie HTML logisch/semantische Sprachen. Denn mit XML können Sie Elemente und deren grundsätzliche Eigenschaften definieren, aber Sie können nicht angeben, wie eine interpretierende Software ein Element bei der Darstellung formatieren soll. Da ein Browser bei selbst "erfundenen" Elementen nicht mal auf Voreinstellungen zurückgreifen kann, so wie bei HTML, ist eigentlich überhaupt keine sinnvolle Anzeige möglich. XML ist deshalb noch viel stärker als HTML auf die Ergänzung durch eine Style-Sprache angewiesen. Durch Formatierung von Elementen wird bei XML-Sprachen eine optisch brauchbare Darstellung überhaupt erst möglich. Dazu gibt es, genau wie bei HTML, eine ergänzende Stylesheet-Sprache. Diese Sprache heißt XSL (Extensible Stylesheet Language - erweiterbare Formatsprache). XSL ist noch leistungsfähiger als CSS. Denn XSL besteht nicht nur aus Formateigenschaften wie Schriftgröße, Farbe, Zeilenabstand usw. XSL übernimmt auch erweiterte Aufgaben der Textverarbeitung wie das sortierte Ausgeben von listenartigen Daten, automatische Nummerierung usw. Ein Ableger von XSL namens XSLT (XSL Transformation) erlaubt es sogar, Daten von einer XML-basierten Auszeichnungssprache in eine andere zu konvertieren. Das Konzept dazu ist ziemlich genial - XSLT können Sie sich vorstellen wie einen "Universal-Konverter", einen Babelfish für Auszeichnungssprachen. Er kann von einer in die andere Sprache übersetzen. So ist es beispielsweise möglich, Daten in einer XML-basierten eigenen Sprache zu speichern, diese aber beim Präsentieren im Web auf dem Server, also bevor die Daten zum Browser gelangen, mit Hilfe von XSLT in HTML zu übersetzen. Beim Browser kommt dann lupenreines HTML an, und er bekommt gar nichts davon mit, dass die Daten eigentlich in einer für ihn möglicherweise unverständlichen XML-Sprache gespeichert sind.

Für normales Homepage-Design ist XML bis heute relativ uninteressant. HTML und CSS sind für normale Texte und deren Gestaltung am Bildschirm hervorragend geeignet und meistens ausreichend. Doch im professionellen Bereich gibt es genügend Fälle, in denen der Einsatz von XML seine Berechtigung hat. Eigentlich überall dort, wo anwendungsspezifische Datenstrukturen vorliegen und der Wunsch besteht, diese beim Speichern der Daten nicht aufzugeben (siehe E-Mail-Beispiel weiter oben).

Der Internet Explorer ist seit Version 5.x in der Lage, Dateien mit XML-basierten Sprachen zu erkennen und zu verarbeiten. Von XSL und XSLT versteht er allerdings noch recht wenig, gerade mal genug, um ein paar grobe Aufgaben der Darstellung damit zu lösen. Netscape erkennt XML seit der Produktversion 6.x. Angesichts dieser Tatsache ist es heute nicht sehr ratsam, XML direkt auf die Browser loszulassen. In der Praxis wird XML heute vor allem eingesetzt, um Daten semantisch optimal und frei von allem Layout-Ballast zu speichern. Für die Präsentation als Web-Seiten werden die Daten dann serverseitig mit Hilfe von XSLT oder mit Hilfe eines selbstgeschriebenen CGI-Scripts in HTML übersetzt.

## XML-Derivate

Auszeichnungssprachen, die mit Hilfe von XML definiert sind, werden auch als XML-Derivate, also als XML-Ableger bezeichnet. XML ist also vorstellbar wie der Stamm eines Baumes, der sich in lauter Äste entfaltet, wobei alle Äste die "Gene" des Stamms enthalten.

Neben Auszeichnungssprachen, die Sie mit XML für Ihre eigenen Zwecke definieren können, gibt es aber auch XML-basierte Sprachen, die für die allgemeine Verwendung vorgesehen sind. So bietet beispielsweise auch das W3-Konsortium gleich mehrere, mit Hilfe von XML definierte Auszeichnungssprachen öffentlich an in der Hoffnung, dass diese eine breitere Anwendung finden. Es handelt sich um Sprachen mit ganz unterschiedlichen Aufgaben. So gibt es beispielsweise ein Dateiformat namens SVG, mit dessen Hilfe sich Vektorgrafiken erzeugen lassen, oder eine Sprache namens MathML zum exakten Auszeichnen mathematisch-wissenschaftlicher Formeln. Wenn von XML die Rede ist, dann ist damit meistens nicht nur der Kern von XML gemeint, sondern auch eine ganze Familie von XML-basierten Sprachen - eben die XML-Derivate.

## XML-Versionen

Genau wie HTML und CSS wird XML vom W3-Konsortium standardisiert. Die offizielle Dokumentation zu XML beschreibt dabei, nach welchen Regeln XML-basierte Auszeichnungssprachen definiert werden. Zum Redaktionsschluss des vorliegenden Dokuments lag die dritte Auflage der Empfehlung zu XML 1.0 vor, veröffentlicht am 04.02.2004. Auf den Seiten des W3-Konsortiums können Sie die jeweils aktuelle Version aufrufen:

Aktuelle XML-Spezifikation

Auch XSL und XSLT werden vom W3-Konsortium standardisiert. Die entsprechenden aktuellen Dokumente finden Sie ebenfalls im Web:

Aktuelle Spezifikation für XSL

Aktuelle Spezifikation für XSL Transformations (XSLT)

### Beachten Sie:

Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie weitere relevante und aktuelle Verweise, z.B. zu deutschen Übersetzungen und weiteren Quellen:

SELFHTML-Linkverzeichnis: XML, DTDs und XSL(T)

Innerhalb der vorliegenden Dokumentation wird XML 1.0 im Kapitel XML/DTDs behandelt. Dabei wird auch XSLT beschrieben.

| JavaScript/DOM
| Stylesheets

© 2007 Impressum