Teilweises Transformieren

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

Arbeiten Sie beispielsweise am Kapitel eines Buches, kann es recht lästig sein, das gesamte Buch zu transformieren, obwohl Sie nur an diesem Kapitel interessiert sind. Die DocBook-Stylesheets ermöglichen daher, aus einem Dokument nur ein ganz bestimmtes Strukturelement zu verarbeiten. Hierbei müssen folgende Bedingungen erfüllt sein:

  • Ihr Dokument ist valide zum jeweiligen DocBook-Schema.
  • Das zu extrahierende Element muss einen Anker besitzen (id für DocBook 4 oder xml:id für DocBook 5).
  • Die DocBook-Stylesheets berücksichtigen nur ein Element. Das bedeutet, dass alle hierarchisch untergeordneten Elemente in dessen Geltungsbereich liegen, nicht jedoch Geschwisterelemente.
  • Teilweises Transformieren ist nur sinnvoll bei Gliederungselementen wie sie in Strukturelemente beschrieben wurden.

Beachten Sie einige Eigenschaften, die diesen Mechanismus auszeichnen:

  • Das gesamte Dokument wird in den Speicher geladen. Das bedeutet, dass weder Speicherplatz noch Zeit beim Parsen eingespart werden. Allerdings ist die Übersetzungszeit dafür geringer, da nur das Element mit dem entsprechenden Anker verarbeitet wird.
  • Aufgrund der Tatsache, dass das gesamte Dokument im Speicher gehalten wird, sind Nummerierungen verfügbar.
  • Die Nummerierung oder Titel von Querverweisen auf andere Strukturelemente werden korrekt wiedergegeben.
  • Die Seitenzahlen für Querverweise auf andere Strukturelemente werden nicht angezeigt. Sie erhalten eine Warnung, die jedoch korrekt ist. Da Sie von Ihrem Dokument nur einen Teil verarbeiten, kann der unformatierte Teil keine Seitenzahlen erhalten.

Im folgenden Beispiel wird das verdeutlicht:

<book>
  <preface ANKER="preface"> ... </preface>
  <chapter ANKER="intro"> ... </chapter>
  <chapter ANKER="xmlintro"> ... </chapter>
</book>

Das obige Dokument besteht aus einem Vorwort und zwei Kapiteln. Jedes dieser Strukturelemente besteht aus Unterelementen, die hier aus Gründen der Übersichtlichkeit unterdrückt wurden. Sowohl Kapitel als auch Vorwort besitzen einen Anker (id bzw. xml:id). Um daraus das komplette Kapitel mit dem Wert xmlintro auszuwählen, rufen Sie xsltproc mit folgendem Parameter auf:

xsltproc --stringparam rootid "xmlintro" ...
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