Die schlechte Nachricht zuerst: Es geht nicht! Zumindest nicht mal eben „so einfach“. Die gute Nachricht allerdings: Irgendwie geht’s halt doch! Aber, ich fange mal lieber ganz vorne am Anfang an:
Für ein umfangreiches Projekt lieferte ein Kunde XML-Daten an. Diese Daten (Namen und Adressen) sollten alphabetisch sortiert in InDesign erscheinen. Für solche Anwendungsgebiete bietet sich XSL-T, mit dem man die Struktur einer XML-Datei beim Import beeinflussen kann.
Besonders interessant in diesem Zusammenhang:
<xsl:sort>
<xsl:sort select=“Nachname“ order=“ascending“ data-type=“text“ xml:lang=“de“ case-order=“upper-first“/> Erste Priorität für Nachnamen
<xsl:sort select=“Vorname“ order=“ascending“ data-type=“text“ xml:lang=“de“ case-order=“upper-first“/> Zweite Priorität für Vornamen
Die böse Überraschung kam dann recht schnell: InDesign meckert beim XML-Import (dort kann man eine XSL-Datei für die Bearbeitung angeben), internationale Sortierung sei nicht möglich, es sortiere stattdessen „nativ“. Aha, nativ also 🙂
Nativ in diesem Zusammenhang heißt „schwedisch“. Zuerst von a bis z und dann ä, ö, ü und ß 🙁
Abhilfe schaffte Oxygen, ein toller XML/XSL-Editor – der sogar deutsch sortieren kann – Die Sortierung dort sieht dann folgendermaßen aus:
a/ä, b bis n o/ö, p bis r, s/ß, t, u/ü, v-z (Sortierung nach DIN 5007-1, wie z.B. im Duden). D.h. Ä wird wie A interpretiert.
Dummerweise werden Adressen in Deutschland aber nach DIN 5007-2 sortiert, ein ä muss also als ae interpretiert werden.
XSL bietet zwar die Möglichkeit, character-maps zu erstellen (also ein ä als ae abzubilden), dummerweise geschieht das aber erst nach dem Sortieren.
So aber geht es:
- Die XML-Datei als erstes in Oxygen öffnen. Per Suchen und Ersetzen alle ä in -ae- wandeln, alle ß in -ss- usw. Der Bindestrich hierbei ist wichtig, denn erstens wird er beim späteren Sortieren ignoriert, zweitens kann nach dem Sortieren in InDesign dann nach -ae- gesucht werden, wobei zum Beispiel ein Wort wie Baecker unangetastet bleibt, da es ja keine Bindestriche beinhaltet.
- Um auf Nummer sicher zu gehen, sortiere ich dann innerhalb von Oxygen um und schreibe eine neue, sortierte XML-Datei.
- Diese neue XML-Datei importiere ich in InDesign.
- Nun wandle ich per Suchen&Ersetzen alle -ae- in -ä-, alle -oe- in ö, -Ae- in Ä usw.
Zugegeben, das Ganze hat eher Workaround-Charakter, aber es funktioniert. Für kommende InDesign-Versionen wünsche ich mir auf jeden Fall eine besserer XSL-Unterstützung 🙂