XML - Extensible Markup Language

netplanet Werbung

"XML ist die Brennstoffzelle des World Wide Webs." Dieses Zitat eines leider unbekannten Kenners der Materie umschreibt in einem Satz sehr deutlich und ohne Übertreibung das "Revolutionspotential" der neuen Lingua Franca des World Wide Web.

Was ist XML?

Zunächst einmal: Vergessen Sie für einen Augenblick alles das, was Ihnen bisher von XML alles erzählt oder vorgeschwärmt wurde. Vermutlich wurde lange Zeit über keine neue Technologie so viel technisches Halbwissen und Märchen erzählt, wie über XML.

<namen>
    <datensatz>
        <nachname>
            Karadeniz
        </nachname>
        <vorname>
            Besim
        </vorname>
    </datensatz>
    <datensatz>
        <nachname>
            Fuchs
        </nachname>
        <vorname>
            Timo
        </vorname>
    </datensatz>
</namen>

XML ist zunächst einmal ein Datenaustauschformat, mit dem sich strukturierte Daten in einem Textformat darstellen lassen. Mehr nicht. Wenn Sie sich das rechts stehende Beispiel anschauen, wird dies deutlicher:

In einer kleinen Datenbank werden Vor- und Nachnamen von Personen gespeichert. Die Datenbank enthält die Tabelle namen und einzelne Datensätze namens datensatz. Jeder Datensatz besteht aus einem Feld nachname und vorname. Wie Sie sehen können, werden die einzelnen Datenelemente ineinander in Containern verschachtelt.

Wenn Sie schon einmal eine HTML-Seite angeschaut haben, werden Sie in der Struktur der Auszeichnung eine starke Ähnlichkeit erkennen. In der Tat haben HTML und XML starke "verwandtschaftliche Verhältnisse", allerdings tun sie nicht das gleiche, sondern sie haben beide die gleiche Mutter: Die Simple Generalized Markup Language (SGML).

Die Notwendigkeit der Weiterentwicklung

HTML, als einer der drei Grundsäulen des World Wide Webs, sorgte mit seiner extremen Einfachheit dafür, dass praktisch jeder mit einfachsten Mitteln HTML-Seiten erstellen konnte, unabhängig davon, welches Betriebssystem oder welcher Editor verwendet wurde; im Zweifelsfall reicht ein einfacher Editor.

Diese extreme Einfachheit auf der Benutzerseite von HTML wird jedoch teuer auf der Entwicklerseite erkauft. Um völlig unabhängig von anderen Sprachen zu sein, wird HTML in einer anderen Sprache namens SGML definiert. SGML ist eine so genannte Metasprache, eine Sprache, die in erster Linie dazu dient, Auszeichnungssprachen in so genannten Document Type Definitions (DTD) zu definieren. In anderen Worten: Jeder HTML-Befehl ist in SGML definiert, es ist also genau festgelegt, welche Attribute dieser HTML-Befehl enthält und welche Werte erlaubt sind. Da eine HTML-Version nicht nur aus einem, sondern aus vielen verschiedenen HTML-Befehlen besteht, ist das Erstellen einer DTD für eine offizielle HTML-Version ein durchaus langwieriger Vorgang; zumal solche neuen HTML-Versionen nicht in einem Guss präsentiert werden, sondern zunächst in Entwürfen, die wiederum einzeln beraten und bis zu einer endgültigen Version verbessert werden.

Was hier in wenigen Worten erklärt ist, ist ein ungeheuer komplizierter Vorgang, da SGML eine sehr komplexe Sprache ist. Als Beispiel für eine offizielle DTD finden Sie weiter unten unter "Weiterführende Links" einen Verweis auf die DTD von HTML 4.01 Transitional, der HTML-Version, die auch für netplanet verwendet wird.

Experten im World Wide Web Consortium erkannten deshalb bereits Mitte der 90er Jahre des 20. Jahrhundert, dass SGML als Basis für neuere HTML-Versionen und auch andere web-spezifische Sprachen zwar denkbar, aber viel zu komplex war. Die Idee war deshalb, eine Sprache zwischen SGML und den Sprachen für das Web zu definieren, um auf diese Weise eine Metasprache zu haben, die genau für die Bedürfnisse des Informationsaustausches zugeschnitten war. Die ersten Entwicklungen zu dieser Metasprache, die Extensible Markup Language oder kurz XML getauft wurde, begannen im Jahre 1996, also zum gleichen Zeitpunkt, als auch noch HTML weiterentwickelt wurde. Der erste Entwurf von XML wurde ebenfalls 1996 in Boston auf der SGML'86-Konferenz vorgestellt und am 10. Februar 1998 vom W3C als Standard veröffentlicht (der allerdings wiederum bereits mehrfach überarbeitet wurde).

XML näher im Detail

Meine bisherigen Erfahrungen haben gezeigt, dass wir zunächst noch etwas weiter den Begriff "XML" auf das eingrenzen sollten, was es überhaupt ist und was nicht. Dass XML im Textformat daherkommt und ein ideales Format für die Speicherung von strukturierten Daten ist, haben wir bereits einleitend erläutert. Dass XML eine Metasprache ist und ein SGML-Ersatz für das Web darstellen soll, ebenso. Was haben Sie jedoch nun direkt von XML?

Als Metasprache haben sie als Anwender tatsächlich eher selten etwas mit XML direkt zu tun, ebenso, wie Sie bisher selten etwas direkt mit SGML zu tun hatten, wenn Sie nicht gerade Entwickler von Auszeichnungssprachen sind und ständig mit Metasprachen arbeiten. In der Tat richtet sich die Metasprache XML eher an den Entwickler und bietet ihm eine faszinierende Möglichkeit, die er bisher mit HTML nicht hatte: Die Definition einer eigenen, maßgeschneiderten Auszeichnungssprache. Und im Gegensatz zu SGML ist der Lernaufwand für die Definition einer eigenen Auszeichnungssprache mit XML bedeutend geringer.

Auszeichnungssprachen, die in XML definiert werden, sind jedoch auch aus der Sicht von SGML keine Sackgasse; da XML SGML-konform ist, sind Auszeichnungssprachen, die XML-konform sind, auch gleichzeitig SGML-konform. Damit ist auch eine ISO-Konformität gewährleistet, da SGML eine offizielle ISO-Norm ist.

Lassen wir ein Beispiel sprechen: Wenn Sie netplanet genauer betrachten, werden Sie erkennen, dass überall (falls ich es nicht irgendwo übersehen habe) der Begriff "netplanet" aus Gründen der besseren Erkennung kursiv geschrieben ist. In HTML sieht diese Auszeichnung folgendermaßen aus:

Herzlich Willkommen bei <i>netplanet</i>.

Nun ist die Nutzung des I-Tags an sich ein schlechter Stil, da es eine rein gestalterische Auszeichnung ist und keine logische. Sprich: Mit der obigen Auszeichnung wird einfach nur eine bestimmte Textstelle so ausgezeichnet, dass ein interpretierender Webbrowser "weiß", dass er den markierten Bereich kursiv setzen muss. Logisch weiß der Webbrowser dadurch nicht, dass diese Auszeichnung eigentlich von mir beabsichtigt wurde, um diese Textstelle zur besseren Erkennung anders darzustellen.

Diesen Ansatz könnte ich in XML gehen, in dem ich eine XML-Definition schreibe, in der explizit ein Tag namens "netplanet" aufgeführt wird und den ich dann nur Auszeichnung verwenden kann, etwa so:

Herzlich Willkommen bei <netplanet>netplanet</netplanet>.

Der Clou: Ich könnte nun diesen Tag zusätzlich gestalterisch und auch logisch definieren. Ich könnte also definieren, dass alle Inhalte, die in einem solchen netplanet-Container liegen, grundsätzlich kursiv anzuzeigen sind und ich könnte als Beschreibung auch mitliefern, dass dies gemacht wird, dass dies aus Gründen der besseren Erkennung passiert. Ich habe also mit einer eigenen Auszeichnungssprache, die ich mit XML definieren könnte, erheblich mehr Möglichkeiten, meine eigenen Befehle zu erstellen, mit allen dazugehörigen Eigenschaften und Attributen.

Für viele Entwickler, beispielsweise Webdesigner, ist es freilich nicht unbedingt notwendig, gleich eine eigene Auszeichnungssprache zu schreiben, nur um eine Website zu erstellen. Aus diesem Grund gibt es bereits so genannte XML-Derivate, die komplett definierte Auszeichnungssprachen darstellen und von denen Sie, falls Sie denn beispielsweise Webdesigner sind, einige als gute Bekannte erkennen dürften.

XML-Derivate

Da XML selbst, wie im letzten Block beschrieben, kein HTML ist, müssen vorhandene und zukünftige Web-Sprachen in XML definiert werden, also als XML-Derivate veröffentlicht werden. So erscheint es logisch, dass HTML zukünftig nicht mehr in SGML, sondern in XML definiert wird und praktischerweise dann XHTML getauft wird. Das muss man übrigens nicht mehr annehmen, das ist bereits so.

Beispielhafte XML-DerivateSo kommt es, dass viele web-spezifische Sprachen bereits einen Ableger haben, der in XML definiert ist oder überhaupt nur unter XML definiert wurden.

  • XHTML (Extensible Hypertext Markup Language)
    Wie der Name schon erahnen lässt, ist XHTML der offizielle HTML-Nachfolger, der anstatt in SGML in XML definiert ist. Die Syntax lehnt sich eng an HTML an, HTML-Dateien müssen jedoch in der Regel noch nachbearbeitet werden, um voll XHTML-kompatibel zu sein.
  • XSL (Extensible Stylesheet Language)
    XSL ist eine Familie von drei XML-Derivaten, die sich mit der Formatierung von XML-Dateien befassen: XSL Transformations (XSLT) als Sprache für XML-Umformungen, XML Path Language (XPath) als Sprache für Adressteile von XML-Dateien und XSL Formatting Objects (XSL-FO) als Bibliothek zum Spezifizieren von Formatierungselementen.
  • SMIL (Synchronized Multimedia Integration Language)
    Eine einfache Sprache zum Erstellen von interaktiven und multimedialen Präsentationen. SMIL sorgt hierbei vor allem mit Befehlen zur Zeitsteuerung dafür, dass einzelne Präsentationselemente zum richtigen Zeitpunkt erscheinen oder ausgeführt werden. Ein gängige Anwendung, in der SMIL verwendet wird, ist beispielsweise der Multimedia Messaging Service (MMS) im GSM-Mobilfunk. Mit SMIL-Befehlen wird hier beispielsweise ermöglicht, dass ein Bild einer MMS-Nachricht zunächst drei Sekunden angezeigt wird, bevor ein Text erscheint.
  • MathML (Mathematical Markup Language)
    Eine Sprache, die zur Beschreibung von mathematischen Schreibweisen, also Formeln, Algorithmen, Symbolen etc., dient.
  • DOM (Document Object Model)
    Das DOM ist eine sprach- und plattformübergreifende Schnittstelle, um Programmen und Scripten den dynamischen Zugang und die Änderung des Inhaltes, der Struktur und des Aussehens von Dokumenten zu ermöglichen.
  • SOAP (Simple Object Access Protocol)
    SOAP ist ein einfaches Protokoll zum Informationsaustausch in einer dezentralen, verteilten Umgebung, wie dem World Wide Web. Damit können beispielsweise Applikationen (Shops, Online-Datenbanken) miteinander Datensätze austauschen.
  • RDF (Resource Description Framework)
    Eine Familie von Sprachen und Anwendungen zur Beschreibung von Ressourcen, beispielsweise von Dokumenten, Bildern etc., um so den geregelten und übergreifenden Informationsaustausch von Nachrichten, Software und Inhalten aller Art zu ermöglichen ("Content Syndication").
  • XLink (XML Linking Language)
    Eine Sprache zur Einfügung von Elementen in XML-Dokumente, die zur Erzeugung und Beschreibung von Hyperlinks dienen und erheblich erweiterte Möglichkeiten zum bisherigen Hyperlink bieten.

Diese kleine Auflistung von XML-Derivaten soll nur einen Überblick über die größten Projekte geben, die derzeit als Arbeitgruppen unter der Schirmherrschaft des World Wide Web Consortium existieren. Daneben existieren noch eine Vielzahl weiterer XML-Projekte, teilweise bereits als fertige Empfehlungen, teilweise noch in der frühen Entwicklung.

Zukunft von XML

Es ist unumstritten, dass XML das World Wide Web revolutioniert hat und auch weiterhin revolutionieren wird. Weniger mit spektakulär sichtbaren Entwicklungen, sondern mehr mit transparenten Schnittstellen für den Datenaustausch, der im Hintergrund abläuft. Hier sorgt XML als Metasprache für eine stabile und zukunftssichere technische Basis, plattform- und herstellerübergreifend. Zu dieser Systemneutralität kommt der Vorteil, dass für die Nutzung von XML keinerlei Lizenzgebühren zu entrichten sind, wie sie ansonsten für proprietäre Datenformate anfallen könnten.

Sicherlich hören sich viele Dinge, an denen aktuell im Rahmen der XML-Bewegung geforscht und entwickelt wird, wie laute Zukunftsmusik an und tatsächlich sind viele Dinge nicht sehr einfach umsetzbar, weil viele Hersteller, Anbieter und Benutzer hierzu in ihrer bisherigen Handlungsweise praktisch komplett umdenken müssten. Allerdings: Was dachten Sie als erstes, als Ihnen jemand erzählte oder sie irgendwo lasen, dass es ein weltumspannendes Datennetz gibt, in dem Sie jederzeit online einkaufen und innerhalb von kürzester Zeit elektronische Nachrichten austauschen können?

Weiterführende Links

http://www.w3c.de/
Homepage des deutsch-österreichischen Büros des World Wide Web Consortium (W3C)

http://www.w3c.org/XML/
Zentrale Übersichtsseite über XML des World Wide Web Consortium (W3C)

http://www.w3c.org/TR/html401/sgml/loosedtd.html englischsprachige Seite
Offizielle Document Type Definition (DTD) von HTML 4.01 Transitional

WERBUNG
Zum Beginn dieser Seite