XML-Rules automatisieren Layouts
Mit den XML-Rules von InDesign CS3 lassen sich strukturierte Layouts automatisch fllen und umbrechen. Typische Anwendungen sind Preislisten, Kataloge, Geschftsberichte und Eventkalender.
DANIEL STERCHI/HAEME ULRICH Mit den seit InDesign CS3 verfügbaren XML-Rules lassen sich Umbrüche in InDesign automatisieren, denen ein stark strukturiertes Layout zugrunde liegt. Dabei kann die Struktur fast beliebig komplex sein, sie muss sich bloss mit einer Regel formulieren lassen. Typische Beispiele für automatisierbare Layouts sind Preislisten, Kataloge, Geschäftsberichte und Eventkalender.
Mit heutigen Werkzeugen lassen sich die meisten auf einer Regel basierenden Layouts automatisch abfüllen. In der Praxis wird aber oft die Qualität der zur Verfügung gestellten Kundendaten zum Stolperstein bei der Umsetzung. Häufig sind nicht alle Daten sauber erfasst, zum Teil liegen sie nicht einmal digital vor. Oder Workflows in Firmen sind durch die Jahre zur unüberschaubaren Komplexität gewachsen. Produktverantwortliche (PM) wollen bis kurz vor Druck auf aktuelle Geschehnisse im Markt reagieren und Produktanpassungen vornehmen können. Dies wiederum erschwert den Freigabeprozess in der Produktion. So geht der Automation einer Printproduktion häufig eine exakte Planung und Anpassung des Workflows voraus. Dies kann zu firmeninternen Machtkämpfen führen und ist dann eher eine psychologische, denn eine technische Herausforderung.
Sind die Daten einmal in einer Datenbank oder zumindest in einer Tabellenkalkulation wie Excel erfasst, können sie als XML-Datei exportiert und als Basis für das automatische Layouten mit XML-Rules verwendet werden.
XML-Rules setzen well-formed XML-Daten voraus. XML-Dateien sind well-formed, wenn sie einem öffentlich verfügbaren Set von Syntaxregeln folgen (siehe XML-Vokabular).
Dann braucht es die Regeln, ein Script in JavaScript, AppleScript oder VBScript. Diese Regeln werden von Anwendern pro Projekt individuell geschrieben. Die Erstellung setzt Programmierkenntnisse und ein gutes Verständnis des InDesign-Objektmodells voraus. Der Initialaufwand für ein solches Script darf in der Praxis unter keinen Umständen unterschätzt werden. Häufig rechnet es sich, externe Datenspezialisten mit dem Scripting zu beauftragen.
Im Weiteren liefert Adobe die Funktionensammlung glue code, die auch in das Script eingebunden werden muss.
Die XML-Rule wird dann schliesslich vom XML-Rule-Prozessor verarbeitet.
Sicher haben Sie schon einmal eine Regel in einem E-Mail-Programm definiert, die eintreffende Mails in vorgesehene Ordner verschiebt. Sie brauchen dafür einen eindeutigen Namen, eine Regel (was soll mit der Mail geschehen?) und eine Bedingung, die vorgibt, wann die Regel ablaufen soll. Diese Regel läuft nur dann, wenn die Bedingung erfüllt wird. Genau so ist es bei XML-Rules. Statt E-Mails werden jedoch importierte XML-Dateien abgearbeitet.
Die Bedingung, wann mit den in InDesign importierten XML-Daten etwas geschehen soll, wird in einem XPath-Ausdruck formuliert. Dieser gibt einen Weg durch die Struktur der XML-Daten vor. Wird der durch XPath vorgegebene Weg in der importierten XML-Datei tatsächlich gefunden, wird die Bedingung erfüllt, und es läuft die zur XML-Rule gehörende, gescriptete Funktion ab.
Das Script durchsucht die XML-Daten dabei von oben nach unten.
Die Funktionen der XML-Rules sind Bestandteile von Scripts. Eine XML-Rule macht mit XML-Dateien genau das, was ein InDesign-Script kann: Text importieren und umbrechen, Bilder platzieren und positionieren, komplexe Tabellen bauen und formatieren. Also all das, was InDesign-Anwender von Hand über die verschiedenen Menüs auch tun könnten. Somit ist die automatische Erstellung fixfertiger Layouts auf Basis einer XML-Struktur garantiert. Weiterhin werden über XML-Rules auch Funktionen von scripttauglichen Dritthersteller-Plug-ins angesprochen.
Mit InDesign CS2 gab es noch keine XML-Rules. Die Layoutmöglichkeiten mit XML waren ohne Dritthersteller-Plug-ins sehr beschränkt. Es war zwar einfach, eine XML-Struktur mit einem Layout zu verbinden und einen durchgehenden, «telefonbuchartigen» Satz zu generieren. Allerdings war es ausserordentlich aufwendig, ein gestaltetes Layout mit XML und Scripting zu erzeugen.
Das Script geht bei Bedarf mehrfach durch die XML-Struktur einer InDesign-Datei und wendet dabei die Rule an. So könnte Text, der in der XML-Struktur nur einmal vorkommt, mehrmals im Layout platziert werden: Im Text, in einer Fussnote und in der Marginalie.
Mithilfe unterschiedlicher XML-Rules können aus demselben XML-Datenstamm sogar unterschiedliche Layouts generiert werden. So sind Layoutanpassungen an verschiedene Regionalausgaben mit einem Mausklick erledigt.
Weil XML-Rules das können, was von Hand auch gemacht werden kann, lässt sich die Effizienz häufig enorm steigern. Eine XML-Rule beanstandet nicht, dass die Arbeit mühsam und repetitiv ist. Sie arbeitet auch über Stunden und ohne Flüchtigkeitsfehler. XML-Rules können zum Beispiel XML-Daten in InDesign filtern und eine XML-Struktur komplett umbauen. Denkbar ist das Sortieren ganzer Preistabellen nach unterschiedlichen Kriterien. In der Praxis müssen importierte XML-Daten häufig umgebaut werden, damit dann per Script eine Tabelle generier werden kann.
XML-Daten könnten grundsätzlich auch über eine XSL-Transformation aufbereitet werden. Dabei handelt es sich um hochkomplexes Suchen/Ersetzen nach einer speziell dafür geschriebenen Vorgabe. In InDesign hat dies gegenüber den XML-Rules aber entscheidende Nachteile. Die XSL-Transformationen laufen nur während des Imports oder Exports von XML ab.
XML-Rules sind gewaltig, aber nichts für Eintagsfliegen. Sie rechnen sich im Alltag dort, wo datengetriebene, standardisierte Layouts entstehen. Wird nach dem Ausführen der XML-Rule das Layout in InDesign noch manuell nachbearbeitet, wird das Aktualisieren der Daten kritisch. Denn die XML-Rule würde die manuellen Änderungen überschreiben und somit verwerfen. Die direkte Anbindung an eine Datenbank ist mit XML-Rules auch nicht wirklich möglich, denn die Schnittstelle zur Datenbank ist dann beispielsweise ODBC und nicht XML. Eine ODBC-Verbindung hätte den Vorteil, Daten aus InDesign in die Datenbank zurückschreiben zu können. Dies ist sinnvoll, wenn Last-Minute-Änderungen, die gewöhnlich in jedem fertigen Layout noch gemacht werden, zurück in die Datenbank geschrieben werden, damit eine volle Datenintegrität gewährleistet ist.
Wo Daten während des Layoutvorgangs ständig aktualisiert werden und ein Zurückschreiben der Mutationen aus InDesign in die Datenbank gefordert wird, reichen die Möglichkeiten der XML-Rules nicht aus. Da müssen Dritthersteller-Plug-ins in die Lücke springen. In unserem Beratungsalltag brauchen wir vor allem EasyCatalog von 65bit-Software (www.65bit.com) und iQuest.comet von Werk II (www.werk-ii.de). Das preiswerte Plug-in EasyCatalog erweitert InDesign um eine ODBC-Schnittstelle für den direkten Zugriff auf Datenbanken. In der Praxis eignet sich dieses Plug-in bei der Zusammenarbeit mit FileMaker. Dann kann EasyCatalog auch CSV- und XML-Dateien mit InDesign verlinken. Eine Aktualisierung der XML-Daten ohne Verlust der manuellen Änderungen ist hier auch möglich.
iQuest.comet ist die eierlegende Wollmilchsau unter den Kataloglösungen für InDesign. Damit werden Hunderte von Seiten starke Kataloge in Echtzeit produziert. Mit direkter Anbindung an die Betriebsdatenbank. Durch eine bedürfnisorientierte Anpassung des Plug-ins über eine eigene Scriptsprache sind funktionell kaum Grenzen gesetzt.
Wo für die InDesign-Automation mit CS2 noch häufig Dritthersteller-Plug-ins notwendig waren, reichen mit CS3 oft XML-Rules. XML-Rules sind aber nur so gut, wie das zugrunde liegende Script. XML-Rules sind somit keine Out-of-the-Box-Lösung für Layouter und Grafiker ohne Programmierkenntnisse.
Wer aber den Initialaufwand zum Erstellen der XML-Rules nicht scheut oder externen Rat einholt, dem ermöglichen XML-Rules in vielen Fällen eine fast hundertprozentige Automation von strukturierten Layouts – wenn dafür Standardfunktionen von InDesign verwendet werden.
Aufbau XML-Rule
Bidirektional/unidirektional
Beim bidirektionalen Austausch mit der Datenbank werden Daten in beide Richtungen übertragen: von der Datenbank nach InDesign und von InDesign in die Datenbank. Im Gegensatz dazu werden beim unidirektionalen Austausch Daten von der Datenbank nach InDesign übertragen.
CSV-Daten
Comma-Separated Values, durch Kommas separierte Daten. Werden häufig zum Transfer von Tabellen (Datensätzen) benutzt.
ODBC
Open Database Connectivity, standardisierte Datenbankschnittstelle.
well-formed XML
Minimales Syntax-Regelwerk für XML-Dateien. InDesign erwartet well-formed XML-Dateien.
XML
Extensible Markup Language, weit verbreitetes Datenformat zur Darstellung hierarchisch strukturierter Daten.
XML-Element
Start- und Endtag mit eventuellem Inhalt:
<tag>Inhalt</tag>.
XML-Rule-Prozessor
Verarbeitet die XML-Rule.
XML-Struktur
Baumartiger Aufbau einer XML-Datei. InDesign hat links eine Strukturansicht für importiertes XML.