XML

Was ist XML?

Um Daten sinnvoll zu Verwalten müssen sie mit Metadaten versehen werden, die sie beschreiben. Angesichts der Entwicklung der Computertechnologie muss ein Format verwendet werden, dass auf unterschiedlichen technischen Plattformen verarbeitet werden kann. Dieses Format sollte den Austausch von Daten zwischen unterschiedlichen Programmen ermöglichen. Die Daten müssen in einfacher Weise zur Ausgabe auf Bildschirmen oder Druckern aufbereitet werden können. Bildschirme können sich dabei in der Größe erheblich unterscheiden, das geht vom Display eines Mobiltelefon bis zu Bildschirmarbeitsplätzen mit mehreren Monitoren. Die syntaktische Korrektheit der Daten sollte von der Software geprüft werden können. Die Datenstruktur sollte sorgfältig dokumentiert sein. Von Seiten der Softwareentwicklung muss als zusätzliche Anforderung noch die Wiederverwendbarkeit des Programmcodes zum Lesen und Schreiben der Daten genannt werden.

Gefordert wird also eine Datenstruktur die:

  • strukturiert ist,
  • mit Metadaten versehen werden kann,
  • syntaktisch validiert werden kann,
  • Inhalt und Layout trennt,
  • Plattform unabhängig ist und
  • von Programmen leicht importiert und exportiert werden kann.

XML die "eXtended Markup Language" erfüllt diese Anforderungen. XML wird in Textdateien geschrieben. Diese können von Menschen gelesen werden, und leicht auf andere Plattformen übertragen werden. Die Strukturinformation ist in Form von sogenannten Tags in der Datei beschrieben. Auf diese Weise können Programme, die Dateien importieren, ohne die Struktur vorher zu kennen. Beschreibt man die Struktur zusätzlich auch in einer DTD ("Document Type Description") oder durch "XML Schema", so kann diese von XML-Editoren gelesen werden, die dann das Erstellen und Bearbeiten von korrekt formatierten XML-Dokumenten erlauben. Auch jedes andere XML fähige Programm kann die Validität des Dokumentes prüfen. Zum den Werkzeugen im Umgang mit XML gehört auch XSL(T) ("Extensible Stylesheet Language(Transformations)". Hier kann in einfacher Weise in einer XML-Datei beschrieben werden, wie ein XML-Dokument in eine Textdatei, eine anders strukturierte XML-Datei (z.B. XHTML, WML) oder mit Hilfe von XML-FO ("XML Formating Objects") in Postscript- oder PDF-Dateien überführt werden kann. Bibliotheken zum Lesen, Bearbeiten und Schreiben von XML-Daten sind inzwischen für viele Programmiersprachen verfügbar. Inzwischen sind auch XML-Datenbanken verfügbar, in die XML-Strukturen direkt eingetragen werden können. Der Zugriff auf die Daten erfolgt mit Hilfe der von XML Query (dem Äquivalent von SQL) oder mit XPath.

Was ist COCOON?

Cocoon ist eigentlich alles was man braucht um ein Webportal mit einer XML basierten Datenstruktur aufzubauen. Wichtige Bausteine sind "Generatoren" die Daten aus verschiedenen Quellen zu XML aufbreiten, "Transformatoren" mit denen dieser XML-Code Verarbeitet werden kann und "Serializer" mit denen das Ergebnis ausgegeben werden kann. Durch die Verknüpfung dieser drei Bestandteile sowie von Ablaufsteuerungen, Aktionen lassen sich komplexe Aufgaben damit lösen.

Im einfachsten Fall wird eine XML-Datei eingelesen, durch eine Transformation in XHTML umgewandelt und an einen Client geschickt. Es ist aber auch möglich Daten aus verschiednen Quellen zusammenzuführen, sie zu einem XML-Dokument zusammenzuführen und dann gegebenenfalls mit mehreren Transformationsschritten z.B. in ein PDF-Dokument zu verwandeln. Besonders nützlich ist es SQL-Befehle in eine XML-Datei zu schreiben, diese werden dann ausgeführt und das Ergebnis der Anfrage als XML-Struktur zurückgeliefert. Eine andere hilfreiche Datenquelle sind XSP "eXtended Server Pages" die, analog zu JSP "Java Server Pages" oder PHP-Scripten, Formulare und Formulardaten bearbeiten können. Da man dabei immer im Portalkontext bleibt, ist es sehr leicht ein Corporate Design zu realisieren. Durch die inhärente Trennung von Inhalt und Layout, können neue Inhalte mit einfachen Werkzeugen eingebracht werden, ohne dass die Autoren sich mit dem Corporate Designs auseinander setzen müssen.

Das System kann dabei sowohl auf browserspezifische Eigenheiten, z.B. unterschiedliche Displaygrößen oder Benutzereinstellungen (mit / ohne Frames) reagieren. Arbeitet man mit Nutzerkennungen so ist eine vollständige Individualisierung möglich. So kann ein Handy-Nutzer die Daten in seinem WAP-Browser anschauen und erhält nur eine Kurzmeldung mit einem Foto das dem Display angepasst ist, während ein DSL-Nutzer die Seite mit Hintergrundinformationen und statt dem Foto das Video auf der Seite ansehen kann.

Ein paar interessante Links zum Thema XML / Cocoon