Kopfgrafik

XML in der Produktion von Digital- und Printmedien

XML (die eXtensible Markup Language) ist eine Auszeichnungs- und Beschreibungssprache, um Informationen strukturiert abzulegen. Sie erlaubt den Informationsaustausch zwischen unterschiedlichen Systemen, Programmen und Computerplattformen. Im Medienbereich können XML-Daten beispielsweise für die automatisierte und datenbankgestützte Produktion von Print- und Onlinepublikationen eingesetzt werden.

Die folgende Einführung richtet sich in erster Linie an Anwender aus dem Medienbereich und beschäftigt sich mit folgenden Themen:

Was ist XML
XML Editoren
DTD (Document Type Definition)
XML in DTP Programmen verwenden
XML Dokumente mit XSL in andere Formate umwandeln
PDF mit FOP per XSL-Stylesheet erzeugen
XML im Webbrowser anzeigen
XML in der Praxis

Was ist XML

Programme speichern ihre Dateien normalerweise in ihrem eigenen Format ab, welches auch nur die Programme selbst wieder lesen können. Ein Quark XPress-Dokument kann zunächst nur von Quark XPress gelesen, eine Excel-Datei nur von Excel geöffnet werden. Möchte der Anwender diese Dateien in anderen Programmen bearbeiten, führt der Weg häufig nur über den (oft mühseligen und fehlerbehafteten) Export aus dem ursprünglichen Programm. XML kann hier die Lösung für den plattform- und programmunabhängigen Datenaustausch sein. Mit XML können wir nicht nur plattformunabhängig produzieren, sondern Inhalte auch für unterschiedliche Ausgabemedien (Print, Online, CD-ROM etc.) aufbereiten, wobei der Inhalt zentral an einer Stelle gepflegt und bei Änderungen in allen Ausgabemedien automatisch aktuallisiert wird. Für z.B. die Katalogherstellung eine interessante Produktionsmöglichkeit.

XML ist eine Sprache zum logischen Gliedern von Inhalten, nicht jedoch zu ihrer Darstellung. Zwar könnte ein XML-verarbeitendes Programm einzelne Tags (Auszeichnungsmarken) auch von sich aus grafisch unterschiedlich darstellen, aber im Allgemeinen ist die Gestaltung des Inhalts Sache eines zur XML-Datei dazugehörigen Stylesheets - oder eines Programms wie QuarkXPress, Adobe FrameMaker oder Adobe InDesign.
Wenn wir die Titelseite einer Tageszeitung sehen, können wir als Menschen durch die grafische Aufmachung auf den ersten Blick eine Überschrift vom dazugehörigen Lauftext unterscheiden. Der Computer ist nicht so schlau. Deshalb helfen wir ihm mit maschinenlesbarem XML, Inhalte zu verstehen. Das könnte z.B. so aussehen:

<Überschrift>Ole v. Beust entlässt Schill</Überschrift>
<Ort>Hamburg</Ort>
<Datum>21.8.2003</Datum>
<Autor>Ute Schreiber</Autor>
<Lauftext>Hamburgs Bürgermeister Ole von Beust hat heute seinen Innensenator Ronald B. Schill entlassen ...</Lauftext>
<Bildunterschrift>Pressekonferenz im Rathaus</Bildunterschrift>


Anhand dieser Datenstruktur kann auch ein EDV-System erkennen, welcher Teil des Inhalts der eigentliche Artikel, was die Überschrift und wer der Autor ist. Eine Software, die XML versteht, könnte so beispielsweise anhand der Tags aus einem größeren Datenbestand alle Artikel der Journalistin Ute Schreiber heraussuchen.

XML Editoren

Sie können das obenstehende einfache Beispiel in einem handelsüblichen Texteditor erstellen. Wenn die XML-Dateien umfangreicher werden, empfiehlt es sich evtl. einen XML Editor wie „Peter's XML Editor" oder Altova XMLSpy zu benutzen.

XML Spy

Abbildung: Altova XMLSpy

Wenn Sie Ihre XML-Dateien mit einem einfachen Texteditor bearbeiten, sollte dieser allerdings in der Lage sein, die Dateien im Unicode-Zeichensatz UTF-8 abzuspeichern.

DTD (Document Type Definition)

Eine XML-Datei ist eine offene Textdatei, die mit handelsüblichen Editoren wie Notepad, SimpleText oder Emacs bearbeitet werden kann. Um eine XML-Datei zu erstellen, benötigt ein XML-Editor oder eine Layoutsoftware wie z.B. Quark XPress üblicherweise eine so genannte „DTD“ (Document Type Definition). In der XML-Datei stehen die eigentlichen Inhalte. In der DTD werden die Regeln festgelegt, welche Elemente, Elementeigenschaften und Strukturen in der XML-Datei genutzt werden können. Ein einfache DTD könnte z.B. so aussehen:

<!ELEMENT Zeitungsartikel (Autor, Ort, Datum, Ueberschrift, Vorspann, Lauftext)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>
<!ELEMENT Ueberschrift (#PCDATA)>
<!ELEMENT Vorspann (#PCDATA)>
<!ELEMENT Lauftext (#PCDATA)>

Die dazugehörige XML-Datei könnte dann wie folgt aussehen:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Zeitungsartikel SYSTEM "zeitung.dtd">
<Zeitungsartikel>
<Autor>Niklas Herbst</Autor>
<Ort>Hamburg</Ort>
<Datum>19. August 2003</Datum>
<Ueberschrift>QuarkXPress ist jetzt auch XML-fähig.</Ueberschrift>
<Vorspann>XML erweitert XPress mit der Fähigkeit zum plattformunabhängigen Publizieren.</Vorspann>
<Lauftext>XML ist ein Datenaustauschformat, mit dem ...</Lauftext>
</Zeitungsartikel>

Lassen Sie uns die DTD analysieren: In der oben abgebildeten DTD-Datei ist das Element Zeitungsartikel das „Wurzel“- oder „Stammelement“. Von diesem Stammelement gehen so genannte „Kindelemente“ ab. In diesem Fall Autor, Ort etc. Diese Kindelemente haben in unserem Fall keine weiteren Kindelemente und können in der XML-Datei direkt mit Inhalt gefüllt werden. Diese Elemente sind als #PCDATA definiert. PCDATA steht für „Parseable Character Data“, was bedeutet, dass der Inhalt dieses Elements vom Parser (vom verarbeitenden Programm) berücksichtigt wird.
Und nun ein Blick auf die ersten zwei Zeilen der dazugehörigen XML-Datei:

<?xml version="1.0" encoding="ISO-8859-1"?>

In der ersten Zeile steht die Angabe, dass in dieser Datei XML, Version 1.0 verwendet wird. Außerdem erfahren wir, dass der Zeichensatz ISO-8859-1 (der westeuropäische Zeichensatz mit Umlauten) verwendet wird. Quark XPress 6 verlangt beim Import von XML-Daten allerdings die Unicode-Zeichensätze UTF-8 oder UTF-16. UTF-8 verwendet ein Byte zur Kodierung der Zeichen und ist voll ASCII-kompatibel, d.h. die ersten 127 Zeichen sind identisch. UTF-16 nutzt zwei Byte und kann mehr Zeichen in einem Zeichensatz unterbringen. UTF-16 kann mit älteren Texteditoren unter Umständen nicht weiterbearbeitet werden.

<!DOCTYPE Zeitungsartikel SYSTEM "zeitung.dtd">

In der zweiten Zeile wird auf die Dokumentenklasse und die DTD „zeitung.dtd“ verwiesen. Der Name der Dokumentenklasse (Zeitungsartikel) muss mit dem Namen des Stammelements in der DTD übereinstimmen. Die Angabe „SYSTEM“ bedeutet, dass die DTD lokal für den Computer verfügbar und nicht öffentlich ist. „PUBLIC“ wäre an dieser Stelle eine öffentliche DTD, die z.B. über das Internet aufgerufen werden kann.
Nach diesen zwei einleitenden Codezeilen folgen in der XML-Datei die eigentlichen Inhalte. Umgeben ist der Inhalt vom Stammelement <Zeitungsartikel>.

XML-Dokumente müssen „wohlgeformt“, aber können „gültig“ sein. Von wohlgeformt sprechen wir, wenn das Dokument der XML-Syntax entspricht. Das heißt, alle Attibute müssen z.B. in Anführungszeichen stehen und Tags müssen geschlossen, außerden dürfen sie nicht in falscher Reihenfolge verschachtelt sein. Auch Klein- und Großschreibung wird in der XML-Syntax berücksichtigt. <Autor> wäre also ein anderes Element als <autor>.
Ein gültiges XML-Dokument muss darüber hinaus anhand seiner DTD überprüfbar sein.

XML-Schema eine Alternative zu DTD

Eine Weiterentwicklung der DTD ist das sogenannte „XML Schema“.
Ein Vorteil von XML-Schema ist unter anderem, dass Datentypen überprüft werden können. Durch die Überprüfung, ob beispielsweise ein Preis vom Typ Fließkomma ist, lassen sich Fehler beim Austausch von Informationen via XML einfacher ausschließen.

Tipps

Quark XPress 6 kann nur gültige XML-Dateien verarbeiten, erfordert also immer eine DTD.

Links

Informationen zu DTDs auf selfhtml: http://de.selfhtml.org/xml/dtd/index.htm

XML in DTP Programmen verwenden

Für die Ganzseitenproduktion von Zeitungen oder gestalterisch aufwändige Publikationen ist ein komplett XML-basierter Workflow zur Zeit (Sommer 2005) noch keine Alternative, wenn man ihn mit Redaktionsystemen wie QPS oder Adobe InCopy vergleicht. Aber bei stark standardisierten Produkten ohne individuelles Layout wie beispielsweise technische Dokumentationen können XML-Daten in der Produktion die Arbeit erleichtern.

Anhand der Layoutsoftware Quark XPress wird im Folgenden beispielhaft erläutert, wie XML-Daten für den Printbereich genutzt werden können.

Für das Arbeiten mit XML brauchen wir in XPress zwei XTensions: Avenue.Quark (die XTension lässt uns XML-Dateien erstellen) und XML-Import zum Importieren von XML-Dateien in XPress-Dokumente. Die XTensions werden mit XPress 6 ausgeliefert und sind standardmäßig aktiviert, Sie können also gleich loslegen.
Lassen Sie uns eine XML-Datei für einen Zeitungsartikel in XPress erstellen.
Ohne eine DTD-Datei (Document Type Definition) weigert sich XPress wie oben erwähnt, XML-Dateien überhaupt anzulegen. Wir schreiben daher zuerst von Hand mit einem Editor eine solche DTD. Starten Sie Ihren Lieblingseditor wie SimpleText, Emacs oder Notepad und geben Sie den Text wie im folgenden Beispiel ein:

<!ELEMENT Zeitungsartikel (Autor, Ort, Datum, Ueberschrift, Vorspann, Lauftext, Bildunterschrift)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>
<!ELEMENT Ueberschrift (#PCDATA)>
<!ELEMENT Vorspann (#PCDATA)>
<!ELEMENT Lauftext (#PCDATA)>
<!ELEMENT Bildunterschrift (#PCDATA)>

Sichern Sie diese Datei als normale Textdatei, aber mit der Endung „.dtd“. Ein guter Name wäre „zeitung.dtd“. Vergewissern Sie sich besonders unter Windows nochmals, dass diese Datei wirklich die Endung „.dtd“ (und nicht etwa „.dtd.txt“) besitzt.
Das Element „Zeitungsartikel“ ist in unserer DTD das Stammelement, von dem alle anderen Kindelemente abgeleitet werden. Die Kindelemente werden wir mit Text füllen.
Auf der Grundlage dieser DTD können wir in XPress jetzt unsere XML-Dateien erzeugen.
Gehen Sie dazu in XPress auf Ablage > Neu > XML (Mac) bzw. Datei > Neu > XML (Win) und wählen im linken Bereich des Fensters „custom.xmt“.

neue XML Datei

Abbildung: Dialogbox Neues XML-Dokument

Wählen Sie über die Schaltfläche Importieren die soeben erstellte DTD als Struktur der neuen XML-Datei. Als Stammelement erkennt XPress automatisch das Element Zeitungsartikel.
Wenn Sie sich nicht verschrieben haben, geht alles gut. Haben Sie sich vertippt, präsentiert XPress eine Fehlermeldung.

Fehlermeldung

Abbildung: Fehlermeldung durch fehlerhaftes DTD-Element

Hier habe ich versehentlich in Zeile 8 das Element „orspann“, statt „Vorspann“ deklariert.
Sie können jetzt in dem XML-Arbeitsbereichsfenster die XML-Datei von Hand mit Inhalt füllen. Klicken Sie dazu auf das Element Autor und geben unten im Feld Inhalt der Dialogbox den Names des Autors ein.

Arbeitsbereich

Abbildung: XML-Arbeitsbereichsfenster

Speichern Sie die Datei mit der Schaltfläche Speichern. XPress sorgt für die korrekte Dateiendung „.xml“.
Die Option XML als allein stehendes Dokument sichern bettet die DTD mit in das XML-Dokument ein. Generell sollte gerade bei umfangreichen Projekten die DTD als externe Datei gespeichert werden. Sie sind dann bei Anpassungen der DTD flexibler.
Wenn Sie die XML-Datei in XPress weiterbearbeiten wollen, dürfen Sie die Checkbox ohne avenue.quark Verarbeitungsanweisungen nicht aktivieren.
Klicken Sie im XML-Arbeitsbereich auf die Schaltfläche XML-Vorschau, um den XML-Code zu betrachten. Auch wenn Umlaute und Sonderzeichen in der Vorschau evtl. nicht korrekt dargestellt sind, werden sie richtig exportiert. In der Vorschau lässt sich der Code nicht bearbeiten, nur betrachten.

Automatisches Tagging

Sie finden das manuelle Einpflegen der Inhalte in die XML-Datei zu mühselig? Sie haben Recht, normalerweise wird dieser Schritt nicht von Hand gemacht. Stattdessen werden XML-Dateien häufig direkt aus einer Datenbank erstellt. Aber auch XPress hat hier mit dem „automatischen Tagging“ noch einiges zu bieten.
Erstellen Sie ein normales XPress-Dokument, egal ob Print- oder Weblayout. Schreiben Sie Text in einen Rahmen und ziehen Sie den aktivierten Text per Drag 'n Drop auf das entsprechende Tag im XML-Dokument. Dazu darf „Text ziehen und Loslassen“ in den Programmvorgaben > interaktiv nicht deaktiviert sein.

Sie haben durch das Drag 'n Drop eine dynamische Verbindung zwischen dem Printlayout und der XML-Datei aufgebaut! Ändern Sie doch mal den Inhalt eines getaggten Inhalts im XPress-Dokument. Die XML-Datei ändert sich automatisch mit, wenn beide Dokumente geöffnet sind. Dazu sollte in den Programmvorgaben unter Avenue.Quark die Option Dynamische Inhaltsaktualisierung aktivieren angeschaltet sein. Ist diese Vorgabe deaktiviert, müssen Sie im XML-Fenster auf die Schaltfläche Inhalt synchronisieren klicken, um die Inhalte zwischen XPress-Dokument und XML-Datei abzugleichen. In der XML-Datei können Sie jetzt den getaggten Inhalt nicht mehr ändern - zumindest nicht im Programm XPress. Das geht nur noch im Print-Dokument. Um getaggten Inhalt im XPress-Dokument zu erkennen, gehen Sie in das Menü Ansicht > Getaggten Inhalt zeigen. Alternativ können Sie auch über Ansicht > Sichtzeichen zeigen nur die Steuerzeichen einblenden.

Sichern Sie das XML-Dokument über die Schaltfläche Sichern. Sie haben jetzt drei Dateien erstellt: zuerst eine DTD, um die Regeln (die Elemente) für die XML-Datei zu erzeugen. Als Zweites haben Sie eine auf der DTD beruhende XML-Datei erstellt. Und zum Schluss eine XPress-Datei, die mit der XML-Datei dynamisch verbunden ist. Diese Verbindung zwischen der XML-Datei und der XPress-Datei ist nicht ganz einfach zu verstehen. Wenn Sie die XML-Datei im QuarkXPress-Workflow bearbeiten wollen, müssen Sie die XML-Datei und das dynamisch verbundene XPress-Dokument öffnen, bearbeiten und beide Dateien speichern.

Tagregeln und Stilvorlagen

Das manuelle Ziehen eines Textes aus einem Textrahmen auf das Tag ist doch etwas umständlich und fehleranfällig. Wir sollten diese Arbeit automatisieren. In XPress lässt sich ein Text über seine Stilvorlage einem XML-Tag zuordnen.

Tagregeln

Abbildung: Tagregeln festlegen

Erstellen Sie sich dazu ein neues XPress-Dokument und legen Sie Stilvorlagen fest, jedes Tag bekommt seine eigene Stilvorlage. Geben Sie z.B. dem Überschrift-Text die Stilvorlage Stil_Ueberschrift. Wenn dieses XPress-Dokument offen ist, können Sie in einem neuen XML-Dokument so genannte Tagregeln festlegen, die sich auf die Stilvorlagen beziehen.
Gehen Sie dazu auf Bearbeiten > Tagregeln und weisen Sie jedem Tag die entsprechende Tagregel zu. Markieren Sie das Tag „Ueberschrift“ und klicken Sie auf Regel hinzufügen. Wählen Sie unter Stilvorlage die soeben erstellte Stilvorlage „Stil_Ueberschrift“. Wenn Sie den Text erstellt und mit Stilvorlagen formatiert haben, ziehen Sie den kompletten Textrahmen aus dem XPress-Dokument mit gedrückter Befehlstaste auf das Stammelement im XML-Arbeitsbereichsfenster. XPress verteilt automatisch den über Stilvorlagen formatierten Text auf die Tags.

Die Checkbox Neues Tag für jeden Absatz sorgt dafür, dass XPress ein neues Tag erstellt, wenn es im Text eine Absatzschaltung entdeckt. Bei einem längeren Lauftext bekommen wir also mehrere Abschnitte, die mit dem Tag „Lauftext“ ausgezeichnet werden. XPress kann nicht nur aufgrund von Stilvorlagen, sondern auch anhand von normalen Textformatierungen automatisch taggen. Indem Sie einem Tag weitere Regeln hinzufügen, können Sie XPress anweisen, unterschiedlich formatierte Texte einem Tag zuzuordnen.

Wenn Sie Inhalte im getaggten XPress-Dokument bearbeiten und anschließend in XPress die XML-Datei öffnen, bemerkt XPress den Unterschied und bietet die Möglichkeit an, beide Dokumente abzugleichen.

ungleicher Inhalt

Abbildung: Alertbox Verschiedene Inhalte

Kindelemente und Attribute

XPress bietet noch weitere Möglichkeiten zum Erstellen von XML-Dateien.
Elemente können so genannte „Kindelemente“ haben. In unserem Beispiel sollte das Element Ort in Land und Stadt aufgeschlüsselt werden. Legen Sie dazu in einem Editor wie Notepad oder Text-Edit eine zweite DTD an:

<!ELEMENT Zeitungsartikel (Autor, Ort, Datum, Ueberschrift, Vorspann, Lauftext, Bildunterschrift)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Ort (Land, Stadt)>
<!ELEMENT Land (#PCDATA)>
<!ELEMENT Stadt (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>
<!ELEMENT Ueberschrift (#PCDATA)>
<!ELEMENT Vorspann (#PCDATA)>
<!ELEMENT Lauftext (#PCDATA)>
<!ELEMENT Bildunterschrift (#PCDATA)>

Das Element Ort ist jetzt der „Behälter“ für die Elemente Land und Stadt.

XML-Elemente können notwendig oder optional sein. Manche Elemente können mehrmals vorkommen.
Ein »?« steht für: das Element kann einmal oder gar nicht vorkommen.
Ein »+« steht für: das Element kann ein- oder mehrere Male vorkommen.
Ein »*« bedeutet: das Element kann gar nicht oder mehrere Male vorkommen.
Eine entsprechnde DTD würde beispielsweise so aussehen:

<!ELEMENT bestellung (name, vorname, lieferadresse?, bestelldatum, artikel+, anzahl, preis, mwst, endbetrag)>

Optionale Elemente werden in der XML-Baumstruktur zunächst nicht angezeigt und über die Kontextmenüs Untergeordnetes Element einfügen oder Geschwisterelement einfügen vor/nach in die XML-Datei geschrieben. Die Reihenfolge der Elemente wird in der DTD festgelegt und wird mit Element einfügen vor/nach eingehalten.
Elemente können so genannte „Attribute“ haben. Zum Beispiel eine ID, die über die Schaltfläche „ID generieren“ erzeugt wird. Ein Attribut kann bei der Arbeit mit XPress eine Alternative zu Kindelementen sein. Wenn Sie vor der Entscheidung stehen, mit Kindelementen oder Attributen zu arbeiten, sollten Sie sich in XPress nach Möglichkeit für Kindelemente entscheiden, denn Tagregeln lassen sich hier nicht auf Attribute anwenden.
CDATA steht beispielsweise für Text als Attribut, ein fakultatives Attribut wird mit #IMPLIED gekennzeichnet, notwendige Attribute mit #REQUIRED.
Ein Beispiel für den Einsatz eines Attributes wäre z.B:
<!ATTLIST serienbrief id ID #REQUIRED>

Processing instructions

Weiterhin bietet XPress beim Erstellen von XML-Dateien an, eine so genannte PI (= Processing instruction) also Verarbeitungsanweisung für einen Parser in die XML-Datei zu schreiben:
Eine Verarbeitungsanweisung für eine Stylesheet-Einbindung würde in einer XML-Datei wie folgt angegeben:

xml-stylesheet type="text/css" href="zeitungsstil.css

Im XML-Code ist diese Anweisung am Anfang der Datei zu finden.

<?xml version="1.0" encoding="UTF-16"?>
<!DOCTYPE Zeitungsartikel SYSTEM "zeitung_erweitert.dtd" []>
<?xml-stylesheet type="text/css" href="zeitungsstil.css"?>
<Zeitungsartikel>
<Autor>Nikklas Herbst</Autor>
<Ort>
<Stadt>Berlin</Stadt>
</Ort>
<Datum>29. August 2003</Datum>
<Ueberschrift>Seehofer schließt weitere Verhandlung über Rentenreform nicht aus ...</Ueberschrift>
<Vorspann>Nach dem Kompromiss zwischen Regierung und Opposition zeigt sich Unions-Verhandlungsführer Horst Seehofer auch bei der Rentenreform gesprächsbereit.</Vorspann>
<Lauftext>In der ARD sagte Seehofer, eine Verständigung auf gemeinsame Ziele bei der Rente ...</Lauftext>
</Zeitungsartikel>

Diese Verarbeitungsanweisung sorgt dafür, dass ein Webbrowser auf die externe CSS-Datei zugreifen kann, die für die Formatierung und Anzeige im Browser zuständig ist.
Auch Kommentare lassen sich über das Kontextmenü einfügen. In einem Kommentar bringt der Programmierer üblicherweise Hinweise zum Programmcode unter:

<!--Die Informationen in der folgenden Verarbeitungsanweisung werden von avenue.quark verwendet. Diese nicht bearbeiten oder löschen, wenn die XML-Datei erneut in avenue.quark geöffnet werden soll.-->

XML in XPress-Layouts importieren

Die XML-Datensätze haben wir aus XPress heraus erstellt. Richtig interessant wird es aber, wenn XML-Inhalte in XPress-Dokumente importiert werden.
Erstellen Sie eine neue XPress-Datei und ziehen einen oder mehrere Textrahmen auf. Sie brauchen jetzt die Platzhalterpalette aus dem Menü Fenster > Platzhalter zeigen.
Klicken Sie auf die Schaltfläche Die XML- oder XMT-Datei mit der DTD wählen und öffnen Sie eine DTD. Ziehen Sie per Drag 'n Drop die Platzhalter wie <Ueberschrift> etc. an die richtigen Stellen in Ihren Textrahmen.

Platzhalter   
Abbildung: Platzhalterpalette

Formatieren Sie die Platzhalter, wie Sie es aus normalen XPress-Dateien gewohnt sind. Geben Sie der Überschrift z.B. einen größeren Schriftgrad als dem Vorspann. Über die Schaltfläche XML-Datei wählen weisen Sie in der Platzhalterpalette dem XPress-Dokument eine XML-Datei zu, die jetzt die Platzhalter ersetzt. Mit XML-Ordner wählen weisen Sie dem XPress-Dokument einen kompletten Ordner mit vorher erstellten XML-Dateien zu. Blättern Sie mit den Schaltflächen Vorige/Nächste XML-Datei durch die XML-Dateien, die in dem Ordner enthalten sind. Mit der Schaltfläche Zwischen Platzhaltern und Inhalt umschalten können Sie zwischen dem Inhalt der XML-Dateien und der Ansicht der Platzhalter wechseln.
Mit der Schaltfläche Platzhalter in Text konvertieren wandeln Sie das XPress-Dokument in statischen Text um. Das Dokument verliert dabei den dynamischen Bezug zur XML-Datei!

Leider müssen alle XPress-Dateien einzeln manuell gespeichert bzw. ausgedruckt werden. Hier wäre eine Funktion wünschenswert, die es ermöglicht, alle Datensätze auf einmal nicht nur einzulesen, sondern auch automatisch mehrere XPress-Seiten oder -Dokumente zu generieren und diese ggf. gleich zu speichern oder zu drucken.
HTML-Seiten können genauso wie Printlayouts generiert werden: Fügen Sie dazu die Platzhalter in ein Weblayout ein. Wenn Sie die Inhalte der so erstellten XPress-Dokumente bearbeiten wollen, müssen Sie die Änderungen in den Original-XML-Dateien vornehmen.
In den Vorgaben unter Projekt > XML-Import können Sie definieren, dass beim Öffnen oder Ausgeben eines XPress-Dokuments dieses standardmäßig mit der dazugehörigen XML-Datei verglichen wird.
Hier kann der Inhalt automatisch oder durch Bestätigung des Anwenders abgeglichen werden. Mit der Checkbox DTD beim Öffnen überprüfen bekommt der Benutzer eine Warnmeldung, wenn die für die Erstellung der Platzhalter verwendete DTD fehlt oder geändert wurde.

XML in weiteren DTP-Programmen bearbeiten


Auch andere DTP-Programme wie z.B. Adobe InDesign können XML-Daten im- oder exportieren.

InDesign

Abbildung: Der XML-Arbeitsbereich in InDesign

Die Arbeitsweise ähnelt im Prinzip der in XPress, allerdings haben Sie in InDesign 2 keine dynamische Verbindung zwischen dem Print-Layout und den XML-Daten. D.h. nach dem XML-Import wird bei einer Änderung der originalen XML-Datei das Print-Layout nicht automatisch mit aktualisiert. Für das Arbeiten in einem XML-basierten Workflow empfiehlt Adobe ihr Produkt Framemaker.

Framemaker

Abbildung: Arbeiten mit strukturierten Dokumenten in Framemaker

Das Arbeiten mit XML ist auch in Adobe Framemaker nicht ohne einigen Aufwand zu realisieren. Auch hier lassen sich Bilder nur manuell integrieren. Framemaker ist im Gegensatz zu den oben vorgestellten Programmen XPress und InDesign in der Lage, direkt aus einem bestehendem Layout CSS-Dateien zu generieren.
Einen kleinen Erfahrungsbericht zum Layouten eines umfangreichen XML-Dokuments mit Framemaker finden Sie unter http://www.augmentingminds.com/mintert/xml/kap9.html#9.3.2

XML Dokumente mit XSL in andere Formate umwandeln

Mit den oben gezeigten Verfahren können Sie XML-Dokumente über DTP-Programme für die Printausgabe aufbereiten. Wie Sie gesehen haben, ist hier an vielen Stellen, wie dem Einbinden von Bildern manuelles Eingreifen erforderlich. Im folgenden sehen wir uns einen weitgehend automatisierten Weg an, XML-Dateien für den Druck aufzubereiten.

Mithilfe der eXtensible Stylesheet Language XSL lassen sich XML-Dokumente in andere Formate wie PDF, RTF, HTML oder in andere XML-Dateien umwandeln. XSL besteht aus zwei Teilen, der Transformationssprache XSLT (XSL Transformations) und der Formatierungssprache XSL-FO (XSL Formating Objects).

Während sich CSS für die Darstellung im Webbrowser eignet, ist XSL-FO seitenorientiert. Zunächst wird das Seitenformat und die Ränder festgelegt, dann definieren Sie den eigentlichen Inhaltsbereich (fo:region-body). Das Seitenformat wird durch ein sogenanntes master-set definiert. Innerhalb des Dokuments können wir mit mehreren Musterseiten, sogenannten page-mastern arbeiten.

 Seitebereiche

Abbildung: Seitenbereiche in XSL-FO

Im folgenden Listing sehen Sie ein Beispiel für eine FO-Datei, die mit einem Parser wie FOP direkt in das PDF-Format überführt werden kann. FOP (Formating Objects Prozessor) ist ein Java-Programm, das Sie z.B. unter Windows über die Kommandozeile starten können.

<?xml version="1.0" encoding="utf-8"?>
<!-- Die FO-Datei ist selbst in der XML-Syntax geschrieben -->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<!-- Seitenformat und Ränder (Stege)definieren -->
<fo:simple-page-master master-name="Politikseite"
page-height="29.7cm"
page-width="21cm"
margin-top="3cm"
margin-bottom="6cm"
margin-left="3cm"
margin-right="3cm">
<fo:region-body margin-top="3cm" margin-bottom="1.5cm"/>
<fo:region-before extent="3cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>

<!-- Anfang der page-sequence
hier kommt der Inhalt (in ein flow Objekt eingebettet) -->
<fo:page-sequence master-reference="Politikseite">
<fo:flow flow-name="xsl-region-body">

<!-- Überschrift (Der Absatz wird umschlossen vom Block-Element) -->
<fo:block font-size="18pt"
font-family="sans-serif"
color="white"
line-height="24pt"
space-after.optimum="15pt"
background-color="#CC0033"
text-align="center"
padding-top="3pt">
Ifo Index lässt hoffen
</fo:block>

<!-- Vorspann, links und rechts um 8 mm eingerückt-->
<fo:block font-size="12pt"
font-family="sans-serif"
font-style="italic"
line-height="15pt"
margin-left="8mm"
margin-right="8mm"
space-after.optimum="3pt"
text-align="justify">
Der einflussreiche Ifo-Geschäftsklimaindex hat im August erneut zugelegt und den Hoffnungen auf eine Konjunkturbelebung Auftrieb gegeben. Volkswirte warnen jedoch vor zu großer Euphorie.
</fo:block>

<!-- Fließtext -->
<fo:block font-size="10pt"
font-family="sans-serif"
line-height="15pt"
space-after.optimum="3pt"
text-align="justify">
Der Konjunkturindikator hat die Erwartungen von Analysten übertroffen. Er legte von 89,3 Punkten im Juli auf 90,8 Punkte im August zu, wie das Ifo-Institut am Dienstag in München mitteilte. Volkswirte hatten mit einem Anstieg auf 90,0 Zähler gerechnet.
Die befragten Unternehmen beurteilten sowohl die aktuelle Geschäftslage als auch die Aussichten für die kommenden sechs Monate günstiger als noch im Juli. Der Index für die Geschäftslage stieg auf 79,9 Punkte, der Index für die Erwartungen auf 102,1 Punkte.
</fo:block>

</fo:flow> <!-- Ende des flow elements-->
</fo:page-sequence> <!-- Ende der page-sequence -->
</fo:root>

Links

FOP: http://xml.apache.org/fop/

PDF mit FOP per XSL-Stylesheet erzeugen

Nun werden Sie sich wahrscheinlich fragen, wie denn ein PDF direkt aus einer XML-Datei generiert werden kann, ohne die FO-Anweisungen wie im obenstehenden Beispiel mit dem Inhalt zu mischen. Um mit XSLT ein PDF aus einer XML-Datei zu erstellen, benötigen Sie das eigentliche XML Dokument, ein XSL-Stylesheet und einen XSL-Prozessor, wie z.B. FOP.

Zum Erstellen einer PDF-Datei aus einem XML-Dokument geben Sie FOP das XML-Dokument und das Stylesheet, sowie den Namen der zu erzeugenden PDF-Datei an. FOP informiert Sie dann über den Fortgang der PDF-Erzeugung.

C:\Dokumente und Einstellungen\user>C:\Programme\fop\fop-0.20.5\fop -xml Ifo.xml -xsl Zeitung.xsl -pdf Ifo.pdf
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] FOP 0.20.5
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] building formatting object tree
[INFO] setting up fonts
[INFO] [1]
[INFO] Parsing of document complete, stopping renderer

Wie aber sieht nun so ein XSLT-Stylesheet aus? Es ist selbst ein XML-Dokument und kann mit einem Texteditor erzeugt werden.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- ... hier folgen die XSLT-Regeln -->
/xsl:stylesheet>

Diese PDF-Datei wurde mit FOP durch das folgende Stylesheet erzeugt.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-height="260mm" page-width="180mm" margin="5mm 25mm 5mm 25mm" master-name="Musterseite">
<fo:region-body margin="20mm 0mm 20mm 0mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="Musterseite">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<xsl:apply-templates select="Zeitungsartikel"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="Autor">
<fo:block font-family="Times" font-size="14pt" text-decoration="underline">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="Stadt">
<fo:inline>
<xsl:apply-templates/>
</fo:inline>
</xsl:template>
<xsl:template match="Ueberschrift">
<fo:block margin-top="24pt" margin-left="-12pt" margin-right="-12pt" font-weight="bold" font-size="22pt" line-height="26pt" background-color="#CCCCCC">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="Vorspann">
<fo:block font-family="Times"
font-size="12pt"
font-style="italic"
color="#FF9900"
text-align="justify"
space-before.optimum="8pt"
space-after.optimum="16pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="Lauftext">
<fo:block font-family="Times" font-size="12pt" font-style="normal">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="RoterWuerfel">
<fo:instream-foreign-object>
<svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="40px" height="40px">
<svg:g style="fill:red; stroke:#550000">
<svg:rect x="0" y="0" width="15" height="15"/>
</svg:g>
</svg:svg>
</fo:instream-foreign-object>
</xsl:template>
<xsl:template match="querstrich">
<fo:block text-align="center" color="#FF0000">
<fo:leader leader-pattern="rule" leader-length="200pt"/>
</fo:block>
</xsl:template>
<xsl:template match="Logo">
<fo:external-graphic src="url(./Bilder/Wirtschaft.jpg)"/>
</xsl:template>
<xsl:template match="bild">
<fo:external-graphic src="{@url}" />
</xsl:template>
</xsl:stylesheet>

Wenn Ihnen das manuelle Erstellen des Stylesheets zu mühsam ist, sollten Sie einen Blick auf das Programm StyleVision von Altova riskieren. Mit dieser Software bekommen Sie eine grafische Benutzeroberfläche zum Erstellen von XSL-Stylesheets, FO-Dateien, HTML-Seiten oder PDF-Dokumenten.

Style Vision

StyleVision

Links

XSL Stylesheet Editor StyleVision: http://www.altova.com/download_stylevision.html

XML im Webbrowser anzeigen

Obwohl eine XML-Datei Ähnlichkeiten mit HTML hat, kann ein Webbrowser mit einer reinen XML-Datei noch nicht viel anfangen.
Wenn Sie eine XML-Datei im Browser betrachten, ist die Enttäuschung groß. Ein älterer Browser wird, wenn überhaupt, nur den Quellcode bzw. die Baumstruktur der XML-Datei anzeigen. Ein aktueller Browser zeigt zumindest den Inhalt an.
Erst wenn Sie Formatierungsanweisungen per CSS oder XSL einbinden, werden die Inhalte in Form gebracht. In der folgenden XML-Datei ist das Stylesheet „zeitungsstil.css“ eingebunden.


<?xml version = "1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Zeitungsartikel SYSTEM “zeitung.dtd">
<?xml-stylesheet type = "text/css" href= "zeitungsstil.css"?>
<Zeitungsartikel>
....
</Zeitungsartikel>

Die dazugehörige CSS-Datei kann aus XPress 6.0 leider nicht per Knopfdruck generiert werden. Sie müssen sie in einem Texteditor von Hand erstellen.

Ueberschrift
{ display:block;
background-color:#C0C0C0;
font-family:Verdana,Arial,Helvetica,sans-serif;
font-size:18pt;
font-weight:bolder;
text-transform:uppercase;
padding:20px;
}
Vorspann
{ display:block;
background-color:#cc8080;
color:#FFFFFF;
font-family:Verdana,Arial,Helvetica,sans-serif;
font-size:11pt;
padding:20px;
}
Lauftext
{ display:block;
color:#000000;
font-family:Verdana,Arial,Helvetica,sans-serif;
font-size:11pt;
padding:20px;
}


Als Belohnung erhalten Sie in Browsern wie Mozilla 1.5, Internet Explorer 5, Safari oder neueren eine Darstellung, wie die folgende.

Browser

Abbildung: XML-Datei im Webbrowser Safari 1.0

XML in der Praxis

XML wird oft als der Nachfolger von HTML beschrieben. XML löst aber nicht wirklich ein grundlegendes Problem der Webdesigner, nämlich die unterschiedliche Darstellung von Webseiten auf verschiedenen Browsern und Plattformen. Auch XHTML bietet in dieser Richtung nichts Neues. Ein XHTML-Dokument ist eine Textdatei, die die XML-Syntaxregeln einhält, als Tags aber die konventionellen HTML-4.0-Tags verwendet. Wollen Sie Ihre Webseiten mit einem XML-Parser weiterverarbeiten, ist die Verwendung von XHTML eine Möglichkeit. Wenn Sie eine möglichst große Zielgruppe ansprechen wollen, halte ich auf absehbare Zeit jedoch HTML in der Version 4.0 in Verbindung mit Cascading Stylesheets für das Standardformat, in dem Webseiten an den Browser geschickt werden. Das Verwenden von XML, Flash, PDF oder anderen Datei-Formaten als kompletter Ersatz für HTML ist nach meiner Meinung ein Medienbruch und nur für begrenzte Empfängerkreise sinnvoll.
Um im World Wide Web browserunabhängig zu publizieren, müssen Sie die XML-Dateien daher in HTML umwandeln. Zu diesem Zweck brauchen Sie ein Übersetzungsprogramm, einen Parser wie z.B. Saxon (http://saxon.sourceforge.net/). Oder Sie importieren XML-Daten in die Platzhalter eines XPress-Weblayouts und exportieren diese Datei nach HTML.

Im Printbereich könnte ein Anwendungsgebiet für XML die datenbankgestützte Katalogproduktion sein. Ein automatisierter Arbeitsablauf lässt sich wie oben beschrieben mithilfe der Transformationssprache XSLT (eXtensible Stylesheet Language Transitions) und XSL-FO (XSL-Formating Objects) realisieren.
Bislang ist hier ein XML-basierter Workflow im Printbereich allerdings die Ausnahme. Die Vorteile von XML zeigen sich erst, wenn man ein und denselben Inhalt in verschiedenen Medien (Print, Online und CD-ROM) ausgeben will.

Literaturhinweise


Einführung in XML: http://de.selfhtml.org/xml/
XML-Überblick: http://de.wikipedia.org/wiki/XML
Publizieren mit XML: Mintert, Behme: http://www.augmentingminds.com/mintert/xml/
XML-Praxis: http://www.linkwerk.com/pub/xmlidp/2000/buch.html
XML in Director: http://www.macromedia.com/support/director/internet/using_xml_parser_xtra/
W3C XSLT-Recommendation : http://www.w3.org/TR/xslt
XML | XSL:Christine Kränzler, Markt und Technik, ISBN: 3-8272-6339-5
Quark XPress GE-PACKT: Stephan Franke, mitp-Verlag, ISBN: 3-8266-0720-1


Autor: Stephan Franke · sfranke@mediengestalter-mm-hamburg.de · Version vom: 31.08.2020
Dieses Dokument ist unter der Creative Commons Lizenz BY-SA veröffentlicht.