XML-Strukturierung formatbasierter FrameMaker-Dokumente

Ein Tutorial auf der tekom-Jahrestagung 2010

Der Wechsel von formatbasierter zu XML-strukturierter Dokumentation erfordert in der Regel auch redaktionelle Eingriffe, weshalb sich die Migration vorhandener FrameMaker-Dokumente oft nicht durch externe Dienstleister erledigen lässt. Umso wichtiger ist es, die Möglichkeiten zu kennen, mit denen zunächst die technischen Schritte erledigt werden können, bevor die redaktionelle Feinarbeit erfolgt.

Was muss vor einer Dokumentmigration geplant werden?

Wenn die Vorbereitungen abgeschlossen sind, verläuft eine Dokumentmigration prinzipiell in folgenden Schritten:

  1. Konvertiertabelle anwenden (aus Formaten werden Elemente).
  2. Wenn das Ergebnis unbefriedigend ist:
    a. Konvertiertabelle optimieren, oder
    b. Dokument von seltenen Besonderheiten befreien.
    Weiter bei 1.
  3. Strukturiertes Template importieren
  4. Strukturfehler bereinigen

Bevor die Migration stattfinden kann, muss es die Zielstruktur geben. Die Diskussion über und entsprechende Tests mit der neuen Dokumentstruktur sind bereits weitgehend abgeschlossen. Es muss auch bereits das strukturierte Template vorhanden sein, das in die migrierten Dokumente importiert werden kann.

Mit Kenntnis dieser Zielstruktur wird die Konvertiertabelle angelegt. FrameMaker liest dazu aus bestehenden Dokumenten alle verwendeten Formate aus (Absatzformate, Zeichenformate, Querverweisformate, Marken, Tabellenformate); denen muss dann in einer Tabelle das jeweils passende Element zugeordnet werden. Da Elemente oft hierarchisch geschachtelt sind, kann dies schon in der Konvertiertabelle vorbereitet werden.

Im abgebildeten Beispiel wird mehreren Absatzformaten das Element zugeordnet, durch den »qualifier« kann dann erkannt werden, welcher Absatz die Nummerierung trägt und welcher nur ein eingerückter Fortsetzungsabsatz war. Die Regeln in den letzten beiden Zeilen machen dann z.B. aus der Formatfolge

¶OL_First: Erster Punkt
¶Para_Indent1: Fortsetzungsabsatz
¶OL: Zweiter Punkt

diese XML-typische Struktur:

  1. Erster Punkt Fortsetzungsabsatz
  2. Zweiter Punkt

Die Möglichkeiten und Grenzen bei der Arbeit mit der FrameMaker-Konvertiertabelle

In formatbasierten Dokumenten finden sich relativ oft »strukturfeindliche« Konstrukte. Da hat der Redakteur »weil es besser aussieht« eine Liste zweiter Ordnung eingesetzt, obwohl es keine Liste erster Ordnung gibt; da wird ab und zu einmal eine Überschriftsebene ausgelassen; da fehlt an manchen Stellen zwischen Überschriften Text, der eigentlich Pflicht war; usw.

Wenn die Konvertiertabelle alle vorkommenden Varianten abfangen soll, werden die anzulegenden Regeln immer beliebiger und unbeherrschbarer. Es kann sich daher lohnen, die Dokumente vorab auf bekannte technische Schwächen zu durchsuchen und diese zu bereinigen.

Die Konvertierregeln arbeiten generell von innen nach außen, vom Absatz ausgehend werden Hierarchien gebaut. Allerdings lassen sich bei der Elementschachtelung immer nur Elementfolgen abarbeiten, es besteht keine Möglichkeit komplexere Kontexte zu berücksichtigen, zum Beispiel ob ein Element bereits ein bestimmtes anderes Element enthält.

Prinzipiell wird auch aus jedem Absatz ein Element, auch leere Absätze, die z.B. aus Formatierungsgründen in Dokumenten vorhanden sind, werden zu Elementen. Hier wird man Dummy-Elemente anlegen, um diese später pauschal zu löschen.

Das Ergebnis nach der reinen Konvertierung wird also in aller Regel noch suboptimal sein.

Wie kommt man mit FrameSLT doch zu einer weitgehend automatisierten Umsetzung?

In früheren Jahren habe ich für die Aufbereitung konvertierter Dokumente teils sehr umfangreiche Skript-Lösungen programmiert. In den letzten Projekten habe ich fast ausschließlich mit dem Plug-in »FrameSLT« gearbeitet. Das Produkt verfügt neben dem »FrameSLT Node Wizard« (s. Abb.) auch über einen Batch-Mode mit erweiterten Möglichkeiten.

Auf der Basis des XML-Standards XPath, den man spätestens bei der Arbeit mit diesem Plug-in kennen lernt, lassen sich nahezu beliebige Stellen in der Dokumentstruktur auffinden. Pro Fundstelle lassen sich dann eine »Element action« oder »Attribute action« festlegen. Auf diese Weise lassen sich unnötige Elementschachtelungen rückgängig machen, Attributwerte auf andere Elemente übertragen, ungültige Attribute und unerwünschte Element löschen. Mit dem Batch-Modus lassen sich so Buch- oder Dokumentbereinigungen durchführen, die Zehntausenden von Einzelaktionen entsprechen.

Der Entwickler des Plug-ins wird ab November 2010 auch eine Fassung mit deutschen Dialogen anbieten.

Das Tutorial während der tekom-Jahrestagung geht anhand echter Dokumente detailliert auf reale Aufgabenstellungen und deren Bewältigung ein. Die Teilnehmer lernen die Herausforderungen bei der Dokument-Migration kennen und können die anfallenden Aufwände besser einschätzen.

Michael Müller-Hillebrand, Oktober 2010