Über mich

Startseite arrow Tipps & Tricks arrow XML und XSL - Die Websites der Zukunft?

XML und XSL - Die Websites der Zukunft?

Freitag, 20. Juni 2008
Geschrieben von Armin Vieweg
Ich komme derzeit in den Genuss einer XML und XSL(T) Schulung und möchte kurz über meine Erfahrungen mit dieser "neuen" Technologie berichten.

Michael Trenkler
, ein freier IT-Consultant, schult ein paar meiner Kollegen und mich momentan in einem CMS, dass auf den Namen Weblication GRID hört. Es handelt sich dabei um ein handelsübliches CMS, was aber abgesehen davon, dass es auf Dateien basiert, in dieser Variante komplett auf XML und XSLT setzt.

Ich berichte deshalb darüber, da diese Technologie sehr interessant ist und für viele Webdesigner sicherlich eine Rolle spielen wird, in naher und mittelfristiger Zukunft.



Was ist XML?
XML oder auch Extended Markup Language ist eine Art Informationen in Dateien abzulegen und diese zu struktuieren. Es ist vergleichbar mit dem Windows Explorer, in dem die verschiedenen Dateien über Pfade angesteuert werden. Der Aufbau einer XML-Datei lässt sich am Besten an folgendem Beispiel erklären:

Buch
  \__ Autor
  |       \__ Vorname = Hans
  |       \__ Nachname = Wurst
  |       \__ GebDatum = 01.01.1980
  |
  \__ Kapitel
  |       \__ ID = 1
  |       \__ Name = Der Anfang
  |       \__ Beschreibung = Spannend
  |
  \__ Kapitel
  |       \__ ID = 2
  |       \__ Name = Weiter geht's
  |       \__ Beschreibung = Atemberaubend
 ...



Wir haben verschiedene Knoten (Nodes) und können diese beliebig ineinander Verschachteln. Wir geben hier aber nicht nur eine Struktur vor, sondern füllen diese auch direkt mit Inhalten.

Am häufigsten sehen wir XML momentan in RSS-Feeds. Die Syntax von XML ist mit der von XHTML im Übrigen nahe zu identisch.



Was ist XSL oder XSLT?
Extensible Stylesheet Language (XSL) ist ein Schritt den es so bisher nicht gab. In einer separaten Datei wird mit einer recht komplexen Syntax definiert wie der Quellcode aus einer XML-Datei basierend, erstellt wird.

Es ist also ein Stylesheet für die HTML-Datei. Normalerweise haben wir CSS, dass sagt wie die HTML-Elemente aussehen. Jetzt haben wir ein XSL, was definiert wie der HTML-Code aussieht, abhängig von den Inhalten der XML-Datei.

Ich kann darüber beispielsweise definieren, dass wenn Kapitel ausgegeben werden, ein DIV sich darum befindet oder bei Daten über den Autor, die Infos mit einem SPAN-Tag versehen werden. Man hat auch die Möglichkeit die Ausgabe abhängig von den Inhalten zu gestalten. Ist der Vorname des Autors beispielsweise "Michael" kann man einen anderen HTML-Code erzeugen, als bei jedem anderen Namen.

Solche Abhängigkeiten steuert man über den so genannten X-Path.

Es ist vergleichbar mit dem Pfad, den man über CSS definiert um verschachtelte Elemente zu definieren. Z.B.

html body div.website a span.rot {
  color:red;
}


Mit X-Path kann ich aber noch die Attribute oder Inhalte der Elemente berücksichtigen.

XSLT beschreibt die Transformation (wofür auch das T steht), wie aus einem XML und einem XSL eine X-HTML-Datei entsteht.


Wege zur fertigen Website
Bisher hatten wir maximal folgende Schritte bei der Zusammensetzung einer Website:

PHP        mySQL
  \         /
   (X-)HTML    CSS
       \       /
        Website



Bei diesem neuen Modell wird PHP und mySQL einfach ersetzt:

XSL      XML
  \      /
   X-HTML    CSS
     \       /
      Website



Ohne eine Datenbank im Einsatz haben zu müssen können wir die Website mit dynamischen Informationen füllen. Natürlich gibt es noch viele Webdesigner die bei der oberen Variante immernoch auf PHP und mySQL verzichten, für diejenigen würde ein neuer Schritt hinzukommen. Das heißt aber nicht, dass wir nicht noch weiterhin mit Datenbanken zusammenarbeiten können.



Vorteile von XSLT & XML
Der absolut größte Vorteil ist, dass wir eine Datenquelle haben (XML) und mit verschiedenen XSL-Sheets, Ausgaben für verschiedene Medien machen können. Wir können PDFs generieren, Kataloge und natürlich Websites, alles aus ein und der selben XML-Datei.

Ein weiterer Vorteil ist, dass man hier nur mit validem Quellcode arbeiten kann. Ein kleinster Fehler im XML oder im XSL und er macht sich sofort bemerkbar - im Gegensatz zum jetzigen X-HTML, bei dem mehr Fehler für eine bessere Darstellung im Internet Explorer sorgen ;)

Wir haben bei dieser Variante eine komplette Trennung von Inhalten und Layout. Inhalte werden komplett im XML definiert, Layout im XSL und anschließend noch, wie gewohnt im CSS. Bis jetzt war es durchaus von Relevanz wo ein Text im HTML stand, das ist im XML egal.

Es gibt zwar PHP-Parser, die aus den beiden Grundelementen PHP erstellt (und ggf. Cached), jedoch ist es möglich die beiden Elemente vom Browser selbst interpretieren zu lassen. Ein sehr bekanntes Beispiel dafür ist die Website von World of Warcraft.


Nachteile
Der dickste Nachteil ist, dass es verdammt kompliziert ist. Wenn die Webdesigner vor DIVs zurückgeschreckt sind, kann ich mir die Reaktion bei XSLT lebhaft vorstellen. Die Syntax ist sehr komplex, erlaubt keine Fehler und um effektiv und sauber zum gewünschten Ergebnis zu kommen muss man wirklich viel beachten.

Ein weiterer Punkt ist die Geschwindigkeit, ganz exakt weiß ich es nicht - doch mein PHP-Programmierer-Kollege bringt dies stets zur Sprache.


Dies war mal ein kleiner Einblick in eine riesige Technologie. Ich bin sehr gespannt ob und wie lange es dauert, bis diese Technik Einzug in den Webdesigner Alltag gefunden hat.



  Kommentare (4)
 1 Geschrieben von: WOW, am 22.06.2008 um 17:21
Hast Du also DOCH was gelernt in den letzten Tagen ^^ 
 
Schöner Überblick. Hat mich nun auch neugierig gemacht, vielleicht probier ich mich auch Mal im Umgang mit XSL/XML. 
 
Grüße aus Kölle, bis morgen^^ 
Moe
 2 Geschrieben von: x-stream, am 27.06.2008 um 13:16
Nette Technologie...mal was neues zum spielen, Danke für den ausführlichen Text! 
 
PS.: Warum ist die Site ein JOOMLA Core? ... Suche Gründe wieder zu Joomla zu finden ;-)
 3 Geschrieben von: Armin Vieweg, am 27.06.2008 um 13:58
Meld Dich einfach mal über das Kontakt-Formular. Dann können wir diese Disukussion dort gerne weiterführen :) 
 
Ist in diesem Artikel etwas deplatziert und Forum gibt es (noch) keins. 
 
Gruß 
Professor Web
 4 Geschrieben von: björn, am 13.07.2008 um 21:20
war auch in einer der letzte c´t oder ix zu lesen...finde es eine super sache, da es eine saubere trennung ermöglicht
Letzte Aktualisierung ( Freitag, 20. Juni 2008 )
 
< Zurück   Weiter >