Hinweis: die folgenden Beispiele zeigen den Einsatz der ZMS.netbook-Filter. Diese sind nicht in der GPL-Distribution von ZMS enthalten; die dargestellten Prinzipien lassen sich aber auf alle anderen Arten von ZMS-Filtern übertragen.

Für die meisten Zielformate ist eine Transformation in mindestens zwei Stufen erforderlich: zunächst wird ein neutrales Zwischenformat erzeugt, hier DocBook-XML, und dann daraus das spezifische Ausgabeformat chm, pdf oder WordML (xml) generiert. Es bietet sich an, technische bzw. Layout-Informationen, die sich nicht im Content-XML des aktuell exportierten Knoten befinden dem Filter-Prozess über eine gesonderte Konfigurationsdatei mitzugeben. Ein typischer DocBook-basierter Filter ist für die erste Stufe folgendermassen konstruiert:

  1. zmsFilterConfig.xml: Konfigurationsdatei für spezifische layouttechnische Informationen, z.B. die Sprach-Variable oder die Namen zusätzlicher Resourcen wie Logos oder CSS-Dateien (für Helpfiles).
  2. zms2docbk.xsl: transformiert die block-Elemente des natives ZMS-XML in DocBook-XML
  3. zmsInline2docbk.xsl: transformiert die inline-Elemente (die im ZMS-XML als CDATA gekapselt sind); im Ergebnis sind nun alle Elemente DocBook-konform.

Nach ersten dieser Stufe der „Normalisierung“ des Datenstroms schließt sich die zweite Stufe der Transformation in das Zielformat an. Dafür wird die XSL-Bibliothek des DocBook-Frameworks herangezogen; diese Bibliothek wird durch den eigenhändig erstellten Customization-Layer spezifisch auf die gewünschte Gestaltung angepasst (mehr zu diesem XSL-File weiter unten). Der Customization-Layer bekommt die Verweise für grafische Resourcen über die o.g. Konfigutionsdatei mitgeteilt. Die zweite Stufe finalisiert die Ausgabe mit:

  1. customDocBook.xsl: Anpassung der Layout-Parameter, die im DocBook-Framework beschrieben sind
  2. logo.gif, helpfile.css etc.: Grafische Resourcen für das Ausgabelayout