Heft-Archiv >> 2005 >> Publisher 6-05 >> Prepress >> InDesign-Praxis: XML mit InDesign
Artikel als PDF

InDesign-Praxis: XML mit InDesign

InDesign-Praxis

XML – so geht es mit InDesign

Hätte man XML früher gekannt, wäre die Weltraumforschung weiter. Wir zeigen, warum XML Sinn macht, wo die Grenzen des Formats sind und wie XML mit InDesign verwendet werden kann.

DANIEL STERCHI UND HAEME ULRICH Daten der ersten Mondlandung sind vorhanden. Nur lesen kann sie heute niemand mehr. Der Wert ist also gleich null. Der Grund ist einfach. In den Anfängen der EDV legte niemand Wert auf Kompatibilität. Die Daten mussten vor allem klein sein, um möglichst wenig des teuren Speicherplatzes zu verschwenden.

Mit der Kompatibilität der Daten kämpfte auch die Europäische Organisation für Kernforschung (CERN). Sie musste etwas haben, das mit einfachsten Editoren erfasst und von allen Betriebssystemen gelesen werden kann. Tim Berners-Lee von CERN und sein Team wurden quasi gedrängt, HTML zu entwickeln. Und zwar leiteten sie dies von SGML (Standard Generalized Markup Language) ab. Welche Erfolgsgeschichte HTML hinter sich hat, ist klar.

Das Problem von HTML

HTML wurde rein für die Darstellung von Dokumenten entwickelt. In HTML können keine Daten gespeichert werden. Die Informatik stand wieder vor einem neuen Problem. Und wieder diente SGML für die Entwicklung eines nächsten Formats, nämlich XML (Extensible Markup Language). Man liess Unnötiges von SGML einfach weg und hat mit XML einen Wurf gelandet, der wie HTML drauf und dran ist, die Welt der EDV neu zu definieren.

Wie der Name Extensible Markup Language sagt, ist XML erweiterbar. Anwender können selber Tags definieren und das Format perfekt an die eigenen Bedürfnisse anpassen. Fachleute bezeichnen XML als Metamarkup Language.

Simpel und komplex

Auch XML hat gewisse Regeln. Werden diese erfüllt, spricht man von Well-formed XML. So gibt es pro XML-Datei immer nur ein Root-Element, unter dem sämtliche übrigen Elemente stehen müssen. Elemente – das sind zwischen Tags liegende Teile – dürfen verschachtelt werden. Sie dürfen sich aber nicht überschneiden. Und schliesslich gehören Attribut-Werte immer zwischen Anführungszeichen. Viel mehr gibt es nicht! Und genau diese Einfachheit macht XML auch unheimlich flexibel und ziemlich komplex.

Fachchinesisch

In der XML-Welt gibt es haufenweise Fachausdrücke. Wir gehen auf die wirklich wichtigen ein. So haben Sie das Rüstzeug, um die XML-Funktionen von InDesign zu verstehen.

  • Tag: Mit Tags rahmt man Elemente ein. Ein Beispiel: <zeitschrift>Publisher</zeitschrift>. Jeder Starttag hat den entsprechenden Endtag, der jeweils mit einem Schrägstrich beginnt.
  • Element: Daten umgeben von Start- und Endtag. Mit Elementen baut man die XML-Datei auf. Dies in Baumstruktur. Die ganze Datei ist im Wurzel-Element (Root) enthalten. Dann gibt es Kinder- und Geschwisterelemente. Je nachdem, ob sie in der Baumstruktur untergeordnet oder auf gleicher Höhe sind.
  • Attribute: Mit Attributen beschreibt man die Tags näher. Zum Beispiel der Pfad zum Bild.
  • Kommentare: Diese sind dazu gedacht, die XML-Datei für nächste Personen zu kommentieren.
  • Deklaration: Damit beginnt man die XML-Datei: <?xml version=“1.0“>

DTD-Polizist

Wer zu viel Freiheit hat, kann überfordert sein. Nicht anders geht es den Programmen, die XML verarbeiten sollen. Weil Tags frei definierbar sind, sind dem Einsatzgebiet von XML auch fast keine Grenzen gesetzt. Da braucht es einen Ordnungshüter, bei XML die DTD (Document Type Definition). Die DTD ist ein Regelwerk für XML-Dateien. Darin beschreiben Autoren die Reihenfolge der Tags, welche Tags überhaupt vorkommen dürfen und welche Attribute gesetzt sind. Für den genormten Datenaustausch sind DTDs lebensnotwendig.

Nehmen wir an, Sie bauen in InDesign ein Template für ein Adressbuch. Die Daten werden in XML angeliefert. Abgemacht sind Tags wie <name> <vorname>. Sie bereiten InDesign für die Aufnahme der Daten vor und verlassen sich auf die vereinbarten Tags. Nun kommt die XML-Datei. Nur die Tags heissen jetzt anders. Statt <vorname> heisst es <first_name>. Dumm gelaufen, denn Sie müssen das Template neu bauen. Dies ist nicht so, wenn sich Datensender und Empfänger an eine DTD halten und der Datensender seine XML-Datei gegen die vereinbarte DTD validiert.

Auch InDesign geht mit DTDs um. XML-Struktur kann also auch da auf ihre Richtigkeit geprüft werden.

Doch auch DTDs haben Grenzen. So ist es nicht möglich, Länge, Struktur, Bedeutung und erlaubte Werte eines Tag vorzuschreiben. Da kommen die weit komplexeren XML-Schemas zum Einsatz. InDesign unterstützt heute ausschliesslich DTDs.

Elementgruppen dank Namespaces

Das Grafikformat SVG ist nichts anderes als eine definierte Gruppe von XML-Tags. Man spricht in diesem Fall von einer XML-Applikation. Sie betten eine SVG-Grafik in eine XML-Datei ein. Wie in aller Welt soll die verarbeitende Software wissen, welche Tags nun zur SVG-Grafik gehören? Dafür gibt es Namespaces, mit denen man Elemente gruppieren kann.

Adobe hat auch einen Namespace geschaffen, um beim XML-Import in InDesign CS2 gleich Zeichen- und Absatzformate zu generieren. Dieser sieht im Code dann so aus: <Root xmlns:aid=“http://ns.adobe.com/AdobeInDesign/4.0/“>. Dabei steht «aid» für Attribut in InDesign. InDesign erkennt nun anhand des Namespace, welche Tags Formate aufrufen.

XSL – damit es allen passt

Auch in den Bund von XML gehört XSL (Extensible Stylesheet Language). Und diese wiederum wird in die Bereiche XSL-FO und XSLT unterteilt. XSL-FO kam jedoch nie zum Fliegen, XSLT schon. Man braucht XSLT, um XML-Dateien zu transformieren. Dabei sind kaum Grenzen gesetzt. Viele XML-Dateien transformiert man vor dem Import nach InDesign. Die Anweisungen dazu stehen im XSL-Stylesheet, angewendet wird es durch einen XSLT-Prozessor.

Und so geht es

Jetzt schauen wir uns ein XML-Beispiel an. Der erste Screenshot zeigt Adobe InDesign CS2. Die Datei wurde getaggt und dann über Datei > Exportieren als XML-Datei gesichert.

Der nachfolgende Screenshot zeigt die exportierte Datei im Texteditor. In der ersten Zeile ist die XML-Deklaration. Dann geht es los mit dem Root-Element, das alles umfasst – und auf der letzten Zeile geschlossen wird. Das Tag <person> umschliesst Vorname und Name. Wobei das Element name noch das Attribut tier mit dem Wert ente hat.

Schranken von XML

Das Einsatzgebiet von XML ist enorm gross. Apple sichert ihre Voreinstellungen in OS X als XML-Datei ab. Zwar seit Tiger komprimiert, aber immer noch in XML. Ein bekannter Automobilhersteller braucht XML für personalisierte Flyer. Er bringt so die Adressen von der Datenbank auf das Papier. Redaktionssysteme für Zeitungen und Zeitschriften füllen über einen integrierten XML-Export Websites. Allgemein gesagt, dient XML oft als Zwischenspeicher für Daten oder als Datenquelle fürs Publishing.

Leider ist die Meinung verbreitet, dass XML sämtliche Informatikprobleme löst. Dies ist falsch. XML ist nur eine Auszeichnungssprache. Sie kann nicht präsentieren. Auch ist es keine Programmiersprache und schon gar kein Netzwerkprotokoll. XML sendet keine Daten und ist auch keine Datenbank.

XML in InDesign CS2

XML ist für Adobe wichtig. Seit In­Design 2.0 wurde die XML-Unterstützung stetig optimiert. Heute mit InDesign CS2 (Version 4.0) kann man zusammenfassend sagen, dass der XML-Import sehr stark ist, wobei beim Export noch einiges fehlt. Und trotzdem lassen sich über XML die verrücktesten Sachen in InDesign anstellen. Die in CS2 neu eingeführten Snippets sind auch pures XML.

Wir gehen weiter hinten im Artikel auf ein Praxisbeispiel der Web-Print-Integration ein, das mit InDesign realisiert wurde.

Für XML stehen in InDesign verschiedene Werkzeuge zur Verfügung: die Strukturansicht links im Dokumentfenster, die Tag-Palette, die Möglichkeit, getaggte Elemente im Layout farblich hervorzuheben, und natürlich InDesigns Textmodus.

 

InDesigns XML-Import

Über Datei > XML importieren holen Sie das XML-File in die Strukturansicht von InDesign. Adobe unterscheidet dann zwischen manuellem Import und Import in vorhandene Platzhalter. Beim manuellen Import zieht man die XML-Elemente aus der Strukturansicht per Drag and Drop in das InDesign-Layout. Die Strukturansicht holen Sie über Ansicht > Struktur > Struktur einblenden.Spannender ist natürlich der Import in Platzhalter, weil dann der ganze Import völlig automatisch passiert. Dafür muss in der InDesign-Datei die gleiche XML-Struktur vorliegen wie in der Datei, die später importiert werden soll. Struktur meint nur die Tags, inhaltlich können Sie einen beliebigen Blindtext nehmen.

Auf diese Weise importieren Sie Datensätze aus einer Datenbank. Sätze, die sich strukturell wiederholen. Zum Beispiel eine Adressliste oder ein Kochbuch. Platzhalter braucht es in InDesign nur für den ersten Datensatz, er dient als Modell für die nachfolgenden. Somit ist klar, dass die höchste Automation erreicht wird, wenn der ganze Text als eine Textverkettung zusammenhängt.

Taggen

Zum Bau der Platzhalter brauchen Sie Tags. Die können übers Menü der Tag-Palette aus einer vorhandenen XML-Datei importiert werden. Zuweisen können Sie diese, indem Sie das Objekt oder den Text auswählen und dann in der Tag-Palette auf den gewünschten Tag klicken.

Anhängen oder Zusammenfügen? In­Design bietet beide Optionen beim XML-Import. Beim Anhängen wird das XML einfach hinten an die bestehende Struktur angehängt. Bei der Variante mit Platzhalter wird natürlich zusammengefügt, da die Platzhalter ja ersetzt werden sollen.

InDesigns XML-Export

Der Export ist rasch erklärt. Es wird grundsätzlich nur getaggter Inhalt exportiert. Wenn Sie konsequent mit Zeichen- und Absatzformaten arbeiten, können Sie den Formaten über das Menü der Strukturansicht Tags zuordnen. Und beachten Sie: XML ist dann reine Struktur und Daten, die Formatierungen sind weg.

Praxis: Event-Kalender Gantrischpost

Aufgabe Event-Kalender Gantrischpost der Jordi AG (www.gantrischpost.ch): Webbenutzer tragen Veranstaltungen auf einer Website in eine Datenbank ein. Sie können diese unter mehreren Kategorien ablegen. Im Online-Kalender sollen dann die eingetragenen Daten nach Kategorien, anschliessend nach Datum und alphabetisch sortiert werden. In der Print-Version der Gantrischpost werden die Events der Sortierung wochenweise ausgegeben (siehe Screenshot oben). Ein Programm muss also die Daten für jede Woche einzeln aufbereiten und anschliessend zusammenstellen.

Es stellt sich die Frage nach dem Datenformat, in dem die Daten des EventKalenders für InDesign aufbereitet werden sollen.

Da dies ein Artikel über XML ist, lässt sich die Frage schnell beantworten. Diese Tatsache ist natürlich nicht der Grund. Grund ist, dass XML das einfachste Datenformat dafür ist.

Ein externes Programm stellt also die Daten im XML-Format zur Verfügung. Dabei spielt es keine Rolle, in welcher Sprache das externe Programm geschrieben wurde. Die Anzahl und die Namen der Tags wurden durch den Grafiker, der das Layout in InDesign erstellte, festgelegt. Der Import in InDesign ist dann nur noch eine Frage von Sekunden und wurde weiter oben im Artikel beschrieben.

Fazit

Mit XML, XSLT und zum Beispiel Java kann fast jede beliebige Aufgabe der Datenaufbereitung für InDesign CS2 gelöst werden. Die einzige Regel ist, dass eine Regel für die Datenaufbereitung aufgestellt werden muss.

 

 

Artikel als PDF