Welche Stylesheet-Variante nehmen?

(Auszug aus "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" von Thomas Schraitle)

Die kurze Antwort auf die Frage im Titel lautet: Verwenden Sie die Original-Stylesheets für DocBook 4 und die DocBook XSL NS Stylesheets für DocBook 5. Die etwas längere, ausführlichere Antwort lautet, dass im Prinzip beide Varianten auf beide DocBook-Versionen anwendbar sind, wenn auch mit kleinen Einschränkungen. Dieser Abschnitt soll die Hintergründe kurz erklären.

Der Hauptunterschied zwischen DocBook 5 und früheren Versionen besteht im Namensraum "http://docbook.org/ns/docbook". Die Originalstylesheets erkennen jedoch nur solche DocBook-Elemente, die an keinen Namensraum gebunden sind. Folglich erkennen Sie keine DocBook 5-Elemente.

Damit DocBook 5-Elemente dennoch erkannt werden, um sie in Ihr Zielformat zu transformieren, bedienen sich die Originalstylesheets eines Tricks: Entdecken sie im Wurzelelement den DocBook 5-Namensraum, wird das Dokument im Modus stripNS verarbeitet. Wie der Name suggeriert, entfernt dieser Modus nur den DocBook-Namensraum eines jeden DocBook 5-Elements, lässt die Struktur des Dokuments jedoch unangetastet. Das Ergebnis wird in einer Variablen zwischengespeichert und diese in eine Knotenmenge konvertiert. Dadurch wird den Originalstylesheets vorgegaukelt, sie hätten DocBook 4-Elemente, wodurch sich die vorgegebenen Template-Regeln anwenden lassen.

Die andere Alternative für DocBook 5 wäre, Stylesheets zu schreiben, die den DocBook-Namensraum erkennen. Technisch völlig unproblematisch, jedoch müssten dann zwei Stylesheet-Varianten gewartet werden, die sich nur in kleinen Ergänzungen unterscheiden. Dies hätte einen erhöhten Wartungsaufwand zur Folge. Um dies zu vermeiden, hat BobStayton ein Perl-Skript geschrieben, das die vorhandenen Original-Stylesheets als Grundlage verwendet. Das Perl-Skript untersucht die XSLT-Attribute count, from, match, use, select und test und fügt an jedes DocBook-Element ein Präfix an. Zusätzlich wird der DocBook-Namensraum im Wurzelelement eingefügt. Das heißt, aus <xsl:template match="chapter"> wird <xsl:template match="d:chapter">.

Wenn Sie die DocBook XSL NS Stylesheets für Ihre DocBook 5-Dokumente verwenden, haben Sie folgende Vorteile:

  1. Die Stylesheets sind speziell für DocBook 5 ausgelegt, sie benötigen keine "Hacks". Dies führt zu einem geringeren Speicherverbrauch, da das komplette Dokument nicht mehr in einer Variablen zwischengespeichert werden muss.
  2. Sie können eine Anpassungsdatei schreiben, die den DocBook-Namensraum berücksichtigt.
  3. Das Attribut xml:base im Wurzelelement geht bei der Verarbeitung mit den Original-Stylesheets nicht verloren. Dieses Attribut wird einbezogen, wenn Sie Bilder oder OLink-Datenbanken verwenden.

  

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema DocBook bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2009 Millin Verlag
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "DocBook-XML: Medienneutrales und plattformunabhängiges Publizieren" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Millin Verlag, Siebengebirgsring 36, 53797 Lohmar, info(at)millin.de