0251 / 590 837 15
info@a-coding-project.de

Content Management mit XML

Content Management Systeme sind - ebenso wie XML - in aller Munde. Doch Content Management mit XML ist eine relativ neue Variante des Managements. Welche Vorteile bietet es und welche Möglichkeiten bestehen? Im folgenden wollen wir ein wenig auf die Theorie von Content Management mit XML eingehen.

Was ist ein CMS?

CMS steht für Content Management System. CMS's sind für die Verwaltung von Webseiten mit größeren Datenmengen gedacht - können natürlich auch bei kleineren Seiten eingesetzt werden. Der Vorteil gegenüber dem normlen Erstellen und Aktualisieren von Webseiten besteht darin, dass Vorgänge automatisiert ablaufen können. So ist es möglich, mit wenigen Klicks mehrere Hundert Dokumente ändern zu können ohne jede einzelne Datei separat bearbeiten zu müssen. Herkömmliche CMS basieren zumeist auf Datenbanken, in denen die Inhalte gespeichert werden. Das CMS kontrolliert diese. Grundsätzlich wird das Design vom Inhalt getrennt, sodass Anpassungen am Design einfacher vorgenommen werden können. Bei den meisten CMS existiert darüber hinaus noch die Trennung von Inhalten wie Texten oder Informationen und externen Dokumenten, wie Bilder, StyleSheets oder Skripten. Das CMS generiert dann aus den einzelnen Bestandteilen (Inhalt, Design, externe Dateien) die Website. Die folgende Grafik solle diese Verfahrensweise verdeutlichen:

System von CMS
Darstellung: System von CMS

Eben dadurch, dass eine Trennng der einzelnen Bestandteile vorliegt, ist das System wesentlich einfacher zu organisieren und zu verwalten. Folgende Vorteile ergeben sich aus der Nutzung eines CMS unter Anderem:

  • einfachere Verwaltung von Inhalten, Design und Dateien
  • Zeitersparnis beim Verwalten einer Website
  • Möglichkeit zur Trennung der Aufgaben in einzelne Teams (Webdesigner, Autoren, Administratoren, ...)
  • Vermeidung von Fehlern, dadurch dass jeder Bereich separat verwaltet wird
  • Vergabe von Zugriffsrechten auf das CMS für einzelne Personen oder Teams

Ein CMS mit XML?

Grundsätzlich bietet XML die gleichen Eigenschaften wie eine Datenbank: XML-Daten können ebenso strukturiert abgelegt und - z.B. mit Hilfe von XQuery - durchsucht werden. Der Vorteil von XML-Dokumenten besteht nun zum einen darin, dass sie z.B. durch XSL(T) sehr einfach in andere Formate wie (X)HTML, PDF oder LaTex transformiert werden können. Zum Zweiten ist es mit XML einfacher semantische Informationen (Zusammenhänge zwischen verschieden Daten oder Informationen über Informationen) zu definieren und zu verarbeiten. Den Ansatz dazu machen z.B.RDFoder XLink . Als dritter Punkt ist die Erweiterbarkeit, Transparenz und Portierbarkeit von XML im Gegensatz zu Datenbanken aufzuführen.

Allerdings bringt XML auch einige Nachteile mit sich, die normale Datenbanken so nicht haben. Aufgrund des Syntax und der Regeln von XML können diese Daten nicht direkt von einem Programm eingelesen und verarbeitet werden. Vielmehr muss das XML-Dokument zuvor geparst und überprüft werden. Der Parser zerlegt das Dokument dann in seine Bestandteile (Knoten). Erst wenn das komplette Dokument zerlegt wurde, kann die Arbeit an den Daten beginnen. Der Nachteil besteht nun darin, dass dieses Parsen natürlich einige Zeit dauert - Zeit die bei Datenbanken eingespart wird, da hier keine größeren Operationen ausgeführt werden müssen.

Zwei in einem: XML-Datenbank

Die dritte Lösung für Content Management Systeme, neben reinen XML-CMS und reinen Datenbank-CMS, besteht aus der Verkupplung der ersten beiden Varianten. Innerhalb einer Datenbank werden XML-Dokumente, Fragmente oder auch nur einzelne in XML formatierte Daten gespeichert. Dies lässt zum Einen das Speichern von semantischen Informationen, die in normalen Datenbanken nur schwer zugänglich sind, zu und bietet zum Zweiten die Schnelligkeit von normalen Datenbanken - einfach deshalb weil nur Teilstücke von XML-Dokumenten eingelesen werden müssen. Auch können aus mehren XML-Fragmenten leicht komplett neue XML-Dokumente erzeugt werden, die wiederum in andere Formate umgewandelt werden können.

Einfaches Content Management mit XSLT

Eine der einfachsten Varianten des Content Managements mit XML - auch wenn es sich dabei um kein echtes CM-System handelt - ist das Transformieren mit XSLT . Schon hierbei erfolgt ja bekanntlich schon ein Trennung von Inhalt, Design und Dateien. Nehmen wir an, wir haben eine Seite zum Thema Koch- und Back-Rezepte zu verwalten. Anstelle all die Rezepte und Anleitungen zusammen mit dem Design, Bildern und Scripten in fertigen HTML-Dateien zu speichern, könnten wir stattdessen den XML-Weg wählen. Wir erstellen dazu eine DTD, die sich auf die Rezepte anwenden lässt - es könnten z.B. Dinge wie Kochzeit, Ofen-Temperatur oder Zutaten darin beschrieben werden. Die Rezepte und Anleitungen werden dann statt in formatierten HTML-Dateien in zurDTDpassenden XML-Dokumenten gespeichert. Außerdem benötigen wir XSLT-StyleSheets, die die Umwandlung der Rezepte in Browser-freundliche HTML-Dokumente ermöglichen. Als letztes wird nun nur noch ein XML / XSLT-fähiger Server oder ein Batchjob benötigt - beides ist relativ einfach und kostengünstig zu bekommen.
Soll nun das Design geändert werden, brauch dazu nur das entsprechende StyleSheet umgeschrieben werden. Außerdem wird es so möglich z.B. auf verwandte Rezepte zu verweisen. Dazu brauchen wir nichts machen, außer semantische Daten, wie z.B. Zutaten oder Geschmacksrichtung, mit jedem Rezept zu verknüpfen. Ein transformierendes Programm kann dann selbstständig entscheiden, welche Dokumente zusammen passen und entsprechend verlinken. Besonders bei Datenbeständen, die oft erweitert werden ist dies nützlich, da sich so auch ältere Dokumente auf neuere beziehen können (und umgekehrt).
Zusammengefasst bestünde unser CMS also aus den folgenden Komponenten:

  • Inhalt
    Die Informationen werden in XML-Dokumenten mit passenden DTD's gespeichert.
  • Layout/Design
    Das Design wird durch XSLT beschrieben - kann also beliebig angepasst werden. Auch sind Transformationen in andere Formate als HTML denkbar.
  • Dateien
    Externe Dateien brauchen nicht weiter behandelt werden. Vielmehr reicht ein einfaches Inhaltsverzeichnis in Form einer XML-Datei aus um die richtige Datei in das richtige Dokument einzubinden.

Zukunft von XML basierten CMS

Die Zukunft von XML basierenden Content Management Systemen steht weitestgehend offen. Sicher ist zum Einen, dass die etablierten Datenbanksysteme wie MySQL oder Oracle nicht allzu schnell von XML verdrängt werden. Zum Anderen ist aber auch ziemlich sicher - und davon gehen die meisten Fachmenschen aus - dass es einen Wandel von normalen Datenbank gestützten CMS hin zu XML basierten CMS geben wird. Derzeit existieren schon einige - mehr oder weniger gelungene - Ansätze, auf welche Weise diese Systeme zu realisieren wären. Auch stellte die Apache Group erst kürzlich eine Datenbank vor, die es erlaubt XML-Daten zu speichern. Die Tür ist also schon aufgeschlagen - letztlich wird wohl nur die Zeit entscheiden, wann die Masse der CMS-Benutzer durch diese gehen wird.

Übrigens ...

... der gesamte Inhalt von HTMLWorld baut auf einem XML / XSLT-basierten CMS auf. Die einzelnen Kapitel werden vom CMS in XML-Dateien gespeichert. Um die Dokumente für das Web vorzubereiten werden sie mit XSLT transformiert und letztlich auf den Server geladen. Dadurch ist das Design aller Seiten mit wenigen Handgriffen auf einmal änderbar, der Inhalt bleibt flexibel und die externen Dateien (Bilder, CSS, etc.) brauchen nicht weiter beachtet werden.