XML-Know How

XML-Export

Nach dem erfolgreichen Import und der Bearbeitung der Daten müssen die Daten wieder exportiert werden (nur dadurch legitimiert sich die oben beschriebene Doppelpflege – für den Satz selbst wäre diese irrellevant). Dafür bietet InDesign das Menu XML exportieren (Datei > Exportieren > Format XML).

Abbildung: XML-Exportoptionen
Abbildung: XML-Exportoptionen

Der Export ist unproblematisch, solange in InDesign sauber gearbeitet wurde. Es müssen aber zwei Punkte beachtet werden, die sich dem ungeübten Anwender nicht automatisch erschließen. Zum einen stellt man fest, dass Return und Soft Return im exportierten XML mit dem etwas unüblichen Paragraph Separator (x2029) bzw. Line Separator (x2028) codiert werden.[6]

Eigentlich ist die Idee gar nicht schlecht, eindeutige und dafür vorgesehene Unicode-Zeichen zu verwenden. Problematisch ist dabei nur, dass diese Zeichen von fast keinem Programm interpretiert werden und somit in Text-/XML-Editoren bestenfalls als Kästchen dargestellt werden. Außerdem sind es keine zugelassenen Whitespace-Zeichen. Da aber in InDesign die Formatierung von Blocklevel-Elementen sinnvollerweise über eben diese Zeichen geregelt wird, entsteht das Problem, entweder nicht valide Daten zu produzieren oder die Zeilenwechsel in Text-Elementen unterzubringen – wo diese allerdings nicht hingehören.

Um valide Daten zu bekommen hilft ab CS3 die Option, im Exportdialog die Zeilenwechsel als Leerzeichen auszugeben.

Der zweite Problembereich sind die Spezialzeichen von InDesign, die teilweise gar nicht in Unicode abbildbar sind. Diese werden nämlich einfach verworfen oder bei entsprechender Export-Option als Leerzeichen umgesetzt. Glücklicherweise betrifft das nur wenige Zeichen:

  • Den nach rechts austreibenden Tabulator
  • Das »Einzug Hier«-Zeichen
  • Das Endzeichen für geschachtelte Formate
  • Alle manuellen Spalten- und Seitenwechsel
  • Automatisch generierte Seitenzahlen und Section Marker

In beiden Fällen wäre es wünschenswert, wenn InDesign die Möglichkeit böte, beim Export diese Konstrukte in Processing Instructions umzusetzen. Damit wäre eine exportierte XML-Datei identisch reimportierbar. Und ganz nebenbei wäre mit einem solchen Set von Processing Instructions der Import von XML-Daten übersichtlich und prozesssicher umsetzbar.

Zur Umgehung des Whitespace-Problems bietet sich ein XSLT-Postprocessing an, also eine nachgelagerte XSLT-Transformation, die die Daten wieder in die gewünschte Form bringt. Die Spezialzeichen dürfen nicht in die Daten eingebracht werden. Hier helfen nur selbstentwickelte Skripte weiter.


  • [6]    Der Unicode Codepoint des Zeilenwechsels wird in der Infopalette von InDesign als x000D (Carriage Return), der Softreturn als x000A (Lilne Feed) angezeigt. Im exportierten XML-Dokument wird für den Zeilenwechsel der Paragraph Seperator x2029, für den Softreturn der Line Seperator x2028 verwendet