Workshop: XML-basierte Webseiten mit Website-DTD
Seiten-Aufbau
XML und XSL-Stylesheets sind die Mittel der Wahl, um auf Webseiten Inhalt und Layout sauber getrennt zu halten. Das Framework Website-DTD hilft dabei.
XML und XSL-Stylesheets sind die Mittel der Wahl, um auf Webseiten Inhalt und Layout sauber getrennt zu halten. Das Framework Website-DTD hilft dabei.
HTML-Editoren nehmen einem Web-Programmierer mitunter mehr aus der Hand, als sie ihm nützen. Warum es nicht mal mit XML und XSL versuchen? Die Trennung von Layout und Inhalt klingt viel versprechend, doch die Vorstellung, ein eigenes Schema und die zugehörigen XML-Stylesheets zu entwickeln, verhindert so manchen Umstieg. Alternativ zur Eigenentwicklung bietet sich Website-DTD als Komplettlösung an, für die federführend Norman Walsh verantwortlich ist, bekannt durch seine Arbeit an der Docbook-DTD und den Docbook-Stylesheets.
Es verwundert also nicht, dass Website-DTD und Docbook eng verwandt sind. So ist die Document Type Declaration (DTD) von Website eine Spezialisierung der Docbook-DTD durch Elemente, die zum Aufbau einer Webseite notwendig sind. Durch diese Beziehung stehen Hunderte von Auszeichnungselementen von »a« wie Acronym bis »y« wie Year zur Verfügung. Elemente mit »z« sind derzeit nicht vorhanden.
Nach dem gleichen Muster verfahren die mit der DTD zusammen bereitgestellten Stylesheets: Sie definieren die Webseiten-spezifischen Templates, für die restlichen Elemente werden die Docbook-Stylesheets eingebunden. Um einen XML-basierten Netzauftritt zu realisieren, sind einige Vorbereitungen nötig.
Für die spätere Umformung der XML-Dokumente in HTML-Dateien ist ein aktueller XSLT-Prozessor wie Xalan oder der in der XSLT-C-Bibliothek des Gnome-Projekts Libxslt enthaltene »xsltproc« notwendig. Letzterer ist schnell und wahrscheinlich wegen seiner Verknüpfung mit Gnome auf den meisten Systemen standardmäßig installiert. Daher findet er auch für alle Beispiele in diesem Artikel Verwendung. Sollten Sie keine Binärpakete für Ihre spezielle Distribution finden, verwenden Sie die Quellen der Bibliothek unter[1] für den Eigenbau des Prozessors.
Zusätzlich empfiehlt es sich, die Libxml2 zu installieren, weil dann das Tool »xmllint« zur Verfügung steht. Verwenden Sie dabei nicht die Version 2.6.1, da diese einen Bug bei der Auflösung von Namensräumen aufweist. Bei »xmllint« handelt es sich um ein Programm zur Validierung von XML-Dokumenten. Natürlich können Sie aber jeden anderen XSLT-Prozessor zusammen mit Website-DTD einsetzen.
XML-Dokumente verweisen mit Hilfe der Doctype-Deklaration über eine URL auf ihre DTD, die beispielsweise auf einem Webserver zum Abruf bereitliegt. Ebenso können Sie über eine URL XSL-Stylesheets einbinden, die sich irgendwo im Internet befinden. XSLT-Prozessoren wie die erwähnten Xalan und »xsltproc« laden XSLs und DTDs aus dem Internet, wenn diese über eine gültige URL referenziert sind.
Somit ist es eigentlich nicht notwendig, sie lokal zu installieren. Dennoch sollten Sie genau dies tun: Komplexe XSL-Stylesheets bestehen oft aus vielen einzelnen Dateien und der XSLT-Prozessor lädt sie alle im schlechtesten Fall bei jedem Lauf. Sie können sich den gewaltigen Umfang der damit verbundenen Downloads leicht verdeutlichen, wenn Sie bedenken, dass Website-DTD als Spezialisierung der Docbook-DTD deren XSL-Stylesheets mit über 300 einzelnen Dateien einbindet.
Laden Sie zunächst über den Download-Service von Sourceforge[2] die aktuellen Versionen von Website-DTD und der Docbook-Stylesheets sowie von der Docbook-Webseite[3] die aktuelle Docbook-XML-DTD herunter. Sobald alle Pakete lokal auf dem Rechner liegen, entpacken Sie sie in ein gemeinsames Verzeichnis. Bei der Docbook-DTD ist zu beachten: Das Zip-Archiv entpackt sich, wenn Sie es nicht anders angeben, in das aktuelle Verzeichnis.
Alle Rezensionen aus dem Linux-Magazin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...