Home Previous Zeitschrift 2002/06 Next Index
 
  Inhalt:
 
 
Was ist SGML?
Elemente sind die Basis
Die DTD
SGML-Dokumente
Vorteile von SGML
FrameMaker + SGML
Am Anfang steht die EDD
Arbeiten mit der Struktur
Strukturansicht
Elementgrenzen
Attributvergabe
Strukturprüfung und SGML-Ausgabe
Fazit
Autor

 

Schnittstelle zwischen SGML und DTP 

Seit über 10 Jahren geistert nun schon das Schlagwort SGML durch die Druckindustrie und das Verlagswesen. Trotzdem oder gerade deswegen sind sich auch heute noch viele unsicher, was darunter zu verstehen ist bzw. wofür man SGML überhaupt braucht. Gleichzeitig wird aber immer häufiger von außen die Anforderung an die Dienstleister herangetragen, sich mit SGML auseinanderzusetzen.

An dieser Stelle kommt nun das Programm Adobe FrameMaker + SGML ins Spiel. Es verbindet unter einer Standardoberfläche DTP-Funktionalitäten mit SGML-Fähigkeiten. Vorneweg aber noch einmal ganz kurz ein paar grundsätzliche Punkte zum Thema SGML.

Was ist SGML?

Die reine Übersetzung des Begriffs SGML, Standard Generalized Markup Language, bringt auf den ersten Blick keine neuen Erkenntnisse. SGML ist ein Standard (ISO-Standard 8879 seit 1986, DIN EN 28 879 seit 1991), der mit Hilfe einer allgemeinen Sprache eine Auszeichnung von Dokumentenstrukturen und -inhalten vornimmt.

Hierbei definiert man mittels SGML aber nur die Beschreibung des formalen Aufbaues eines bestimmten Dokumententyps, z.B. eines Briefes, einer Gesetzesammlung oder einer Bedienungsanleitung.

Elemente sind die Basis

Die einzelnen Bausteine dieser Struktur werden Elemente genannt. Ein solcher Baustein kann z.B. das Element Überschrift oder das Element Tabelle sein. Diese Elemente wiederum werden nun immer weiter differenziert. D.h. das Element Überschrift besteht aus einem Element Kapitelüberschrift und einem Element Zwischenüberschrift. Das Element Tabelle besteht aus einem Tabellenkopf und einem Tabellenrumpf, die wiederum jeweils in einzelne Reihen und Zellen unterteilt werden. 

Man kann sich das ganze auch als Baumstruktur vorstellen, deren Äste sich immer weiter verzweigen. 
   

  Strukturansicht einer DTD in einem grafisch-unterstützen DTD-Werkzeug (in diesem Fall Near & Far, Microstar Software LTD) ...
   
  ... und als ASCII-File 

Neben der Differenzierung der Elemente werden gleichzeitig auch die Abhängigkeiten der einzelnen Elemente zueinander definiert. So kann man z.B. festlegen, daß in einem Absatz nur eine Grafik erscheinen darf. Es sind aber gleichzeitig mehrere Tabellen oder Listen möglich. 

Zusätzlich kann man zu einzelnen Elementen auch Attribute definieren, die das jeweilige Element genauer beschreiben. Ein Element Listeneintrag könnte z.B. die Attribute Numeriert oder Punktiert haben, die dann die Darstellung des Listeneintrages steuern. 

Die DTD

Diese ganzen Informationen, d.h. die Elemente, ihre Beziehungen zueinander und ihre jeweiligen Attribute, werden in einer Document Type Definition (DTD) abgelegt. 

Was die ganze Sache so schwer nachvollziehbar macht, ist die Tatsache, daß in dieser DTD noch kein einziges Wort des eigentlichen Inhaltes eines SGML-Dokumentes erfaßt wurde. Außerdem gibt es noch keinerlei Layout-Informationen. 

Vielmehr bildet die DTD die Grundlage für alle weiteren Bearbeitungsschritte wie der Eingabe und der Formatierung von Inhalten, um ein SGML-strukturiertes Dokument zu erhalten. 

Außerdem wird sie als Referenzmodell für die Prüfung der im SGML-Dokument verwendeten Elemente herangezogen. 

SGML-Dokumente

Der Unterschied zwischen einer DTD und einem SGML-Dokument bzw. einem strukturiertem Dokument besteht, wie bereits angedeutet, in dem Inhalt, der im SGML-Dokument enthalten ist. Über entsprechende Werkzeuge, z.B. FrameMaker + SGML, greift man nun auf die in der DTD vordefinierten Strukturen zu und fügt die entsprechenden Inhalte ein. 
   

  SGML-Dokument in einem WYSIWYG-Editor mit eingeblendeten Elementgrenzen ... 

Sichert man ein solches Dokument anschließend als SGML-Dokument, erhält man ein ASCII-basierte Datei, die, sind die entsprechenden Strukturregeln bzw. die DTD bekannt, jederzeit wieder interpretiert werden kann. 
   

  ...und als originäres SGML-Dokument 

Vorteile von SGML

Bleibt immer noch die Frage, wozu dieser ganze Aufwand betrieben wird? 

SGML-Dokumente sind völlig plattform- und applikationsneutral, da die Informationen in einer dokumentierten Syntax im ASCII-Format (s. oben) abgelegt werden. Dies bedeutet, daß z.B. eine als SGML-Dokument abgelegte Bedienungsanleitung theoretisch auch in 10 oder 20 Jahren noch verwendet werden kann, was man von vielen proprietären bzw. herstellerspezifischen Programmformaten leider nicht behaupten kann. Dies ist nicht zuletzt einer der Gründe für den massiven Einsatz von SGML in der Luft- und Raumfahrtindustrie bzw. dem Automobilbau. 

Darüber hinaus wird durch die SGML-Strukturierung sichergestellt, daß alle Dokumente formal gleich aufgebaut werden. Die strukturelle Integrität solcher Dokumente kann über sogenannte Parser (Syntaxanalysierer) sichergestellt werden, Volltextrecherchen sind möglich, außerdem wird die in der Branche so oft zitierte Medienneutralität gewährleistet. Diese Punkte sind mitentscheidend dafür, daß z.B. Normen für DIN und ISO, aber auch Sitzungsprotokolle des Europäischen Parlaments oder das bekannte ,Oxford English Dictonary" bereits als SGML-strukturierte Dokumente erstellt und verwaltet werden. 

FrameMaker + SGML

An dieser Stelle kommt nun FrameMaker + SGML zum Einsatz, der auf diese Struktur bzw. DTD aufsetzt und das Einfügen von Inhalten in solche vordefinierte Strukturen erlaubt. 

Das ansprechende an dieser Lösung ist die nahtlose Integration der SGML-Funktionalitäten in das Frontend des ,normalen" FrameMakers. Man sieht, von dem Startbildschirm und drei Buttons am Dokumentenrand abgesehen, erst einmal gar nicht, daß man es mit einem eigenen Programm zu tun hat. 

Es ist natürlich auch möglich, mit FrameMaker + SGML normale, unstrukturierte FrameMaker-Dokumente zu erstellen bzw. zu bearbeiten und auszugeben, da der volle FrameMaker-Funktionsumfang wie Buchfunktion, Listen- und Verzeichnisgenerierung, Tabellenfunktion, Gleichungseditor, HTML- und PDF-Ausgabe, etc. enthalten ist. 

Am Anfang steht die EDD

Vor das strukturierte Arbeiten mit FrameMaker + SGML haben die Entwickler von Adobe allerdings einen gewissen Aufwand gestellt. Die DTD reicht nämlich als reine Arbeitsgrundlage nicht aus. Das Problem hierbei ist, daß die DTD neben den Strukturdefinitionen ja keinerlei Informationen über die Formatierung und Darstellung der einzelnen in ihr enthaltenen Elemente enthält. Genau hierin liegt aber die Aufgabe von FrameMaker + SGML, die Verbindung von Struktur und Layout. Daraus resultiert, daß eine spezielle Umsetzung der Strukturinformation in ein FrameMaker-spezifisches Format erfolgen muß. Dieses neue Dokument nennt man Element Definition Document (EDD). 

Hierbei kann die EDD durch Konvertierung mittels sogenannter Read-/Write-Rules, die den SGML-Import und Export steuern, aus einer bestehenden DTD erzeugt werden. 

Alternativ ist auch die komplette, durch entsprechende Hilfsmittel geführte Neuerstellung einer EDD möglich. Diese Tatsache ist sehr wichtig, denn sie bedeutet, daß ein strukturiertes Arbeiten mit FrameMaker + SGML auch möglich ist, ohne daß eine DTD vorhanden sein muß. Es bedeutet auch, daß man theoretisch ohne die Berücksichtigung jeglicher SGML-Regeln arbeiten kann. 

Der Aufbau des EDD entspricht, wie schon beschrieben, im wesentlichen dem der DTD. D.h. es werden Elemente definiert und in den allgemeinen Regeln werden die zugehörigen bzw. untergeordneten Elemente festgelegt. Sofern vorhanden, werde außerdem die Attribute mit ihren möglichen Werten aufgelistet. Hinzu kommen nun die Kontext-Regeln, die bestimmte Abhängigkeiten definieren, z.B. ob es eine Überschrift der ersten, zweiten oder dritten Ebene ist. Dementsprechend wird dann z.B. die Schriftart jeweils um zwei Punkte verkleinert oder der Einzug erhöht. Möglich ist aber auch der Aufruf eines bestimmten Zeichen- oder Absatzformates für die entsprechende Auszeichnung. 
   

  Ein Element in der EDD mit Kontextregeln 

Arbeiten mit der Struktur

Die Einbindung der Strukturinformationen in ein FrameMaker-Dokument erfolgt über den Import der EDD. 

Hierfür muß ein FrameMaker-Dokument vorliegen bzw. angelegt werden, in dem die in der EDD aufgerufenen Absatz- und Zeichenformate vorhanden sind. Der Import selber geschieht, wie bei einem Text oder einer Grafik, über den normalen Import-Befehl. 

Soll dieser EDD-Import SGML-konform sein, so muß vorher noch eine entsprechende SGML-Applikation zugewiesen werden. Sie enthält Verweise auf die zu verwendende Read-/Write-Rule, die Template-Datei, die DTD und sonstige benötigte Steuerdateien wie SGML-Deklarationen. 

Über den Elementkatalog werden nun die an der jeweiligen Dokumentenstelle gültigen Elemente angezeigt. 


  
Symbole zeigen die Gültigkeit eines Elementes 

Über die Symbolik des Elementkataloges kann man bereits bei der Erstellung eines strukturierten Dokumentes sicherstellen, daß korrekt, d.h. strukturkonform gearbeitet wird. Um ein Element einzufügen, braucht man es im Elementkatalog nur noch anzuklicken und den Vorgang mit dem Button Einfügen abzuschließen. Ist das Element an dieser Stelle eindeutig, reicht sogar ein Doppelklick auf den Elementeintrag. Danach fügt man den entsprechenden Inhalt, z.B. Text oder Grafik, in das Element ein. 

Es ist auch möglich, bestehenden Text in ein Element einzugliedern und somit z.B. ein spezielles, in der EDD hinterlegtes Format aufzurufen. Dies wird u.a. für Auszeichnungen benötigt, die in einem übergeordneten Element stehen sollen. 

Eine häufige Problemstellung ist auch, daß man bereits fertig erfaßte aber unstrukturierte Dokumente hat. Hier bietet FrameMaker + SGML die Möglichkeit, basierend auf den im Dokument verwendeten Absatz- und Zeichenformaten, eine Strukturierung vorzunehmen. Über eine Konvertierungstabelle wird dabei festgelegt, welches Absatz- oder Zeichenformat zu welcher Elementzuweisung werden soll. Voraussetzung hierfür ist natürlich ein konsequenter Einsatz dieser Formate im Ursprungsdokument. Abschließend muß dann noch die entsprechende EDD importiert werden und, in Abhängigkeit von der Qualität des Ursprungsdokumentes, die restlichen Strukturierungen manuell eingepflegt werden. 

Strukturansicht

Eines der mächtigsten Werkzeuge beim Arbeiten mit FrameMaker + SGML ist die Strukturansicht. Diese baumartige Darstellung visualisiert sehr übersichtlich die im Dokument vorhandenen Strukturelemente und ihrer Inhalte. Außerdem bietet sie die Möglichkeit der visuellen Strukturkontrolle. Gleichzeitig erlaubt sie das schnelle Verschieben, Kopieren und Löschen von ganzen Strukturzweigen. 
  

  Neben Inhalten und Attributen von Elementen werden auch Fehler in der Strukturansicht angezeigt (hier rot markiert) 

Das Plus- bzw. Minus-Symbol vor oder nach dem Elementnamen signalisieren weitere Unterelemente oder Attribute, die ein- oder ausgeblendet werden können. 

Klickt man einen Eintrag im FrameMaker-Dokument an, so wird automatisch die entsprechende Stelle in der Strukturansicht markiert und umgekehrt. Dadurch kann man sehr einfach auch durch umfangreiche Dokumente navigieren. 

Verschiebt man in der Strukturansicht ein Element, so prüft FrameMaker + SGML ständig, ob das Element gemäß der EDD an der Stelle gültig ist, an der es gerade eingefügt werden soll und signalisiert die korrekte Position durch ein Häkchen. Wird eine Stelle als Ziel ausgewählt, die völlig regelwidrig ist, läßt das Programm diese Verschiebung erst gar nicht zu. 

Elementgrenzen

Ein weiteres wichtiges Hilfsmittel bei der Arbeit mit strukturierten Dokumenten ist die Anzeige der Elementgrenzen. Auf Grund der Verschachtelung von Elementen kann es nämlich vorkommen, daß man sich z.B. noch in einem übergeordneten Element befindet und deswegen ein bestimmtes Element nicht einfügen kann, das an dieser Stelle eigentlich gültig sein sollte. Oftmals ist es nur die Frage von Millimetern, ob man noch das eine oder schon das andere Element markiert hat. Blendet man aber die Elementgrenzen ein, sieht man sehr schnell, auf welcher Elementebene man sich befindet. FrameMaker + SGML bietet zwei Formen der Anzeige. Bei der einen werden nur die eigentlichen Grenzen des jeweiligen Elementes mit Klammern angezeigt. 
   

  Anzeige der Elementgrenzen als Klammern... 

Die andere Möglichkeit ist die Darstellung als sogenannter Tag oder Marke. Hierbei wird nicht nur die eigentliche Grenze des Elements dargestellt (Pfeil nach rechts Beginn, Pfeil nach links Ende des Elements), sondern auch der Name des jeweiligen Elementes angezeigt. 
   

  ...und als Tags mit Elementnamen 

Zu beachten ist bei beiden Darstellungsarten, daß sie den Umbruch des Dokumentes beeinflussen. Außerdem werden sie ausgedruckt, wobei allerdings eine Warnung erscheint, wenn man mit eingeschalteten Elementgrenzen drucken will. 

Attributvergabe

Auch das Zuweisen von Attributen wird natürlich in FrameMaker + SGML unterstützt. Der entsprechende Dialog erlaubt hierbei sowohl die Zuordnung des Attributes selbst als auch die Festlegung seines Attributwertes als freie Texteingabe oder per Pull-Down-Menü. So kann z.B. das Element Liste ein Attribut namens Typ haben. Die zugehörigen Attributwerte könnten dann Numeriert oder Punktiert heißen. 
   

  Ein Attribut mit seinem Attributwert 

Durch Aufbau einer entsprechenden Kontextregel in der EDD, die den Attributwert abfragt, kann nun entweder ein Absatzformat mit Zählbausteinen oder Punkten angezogen werden. 

Strukturprüfung und SGML-Ausgabe

Neben der visuellen Darstellung von Strukturfehlern in der Strukturansicht gibt es natürlich auch eine Suchfunktion, die, basierend auf einem integriertem Parser, eine Strukturprüfung des gesamten Dokumentes durchführen kann. 

Hierbei werden wie bei der Rechtschreibprüfung die einzelnen Fehlerstellen angesprungen und im Dokument und in der Struktur angezeigt. Die Art des Fehlers, z.B. ein unvollständiges Element, ein an der falschen Stelle verwendetes Element oder nicht erlaubte Attribute, werden dabei angezeigt. 

Diese Strukturprüfung ist speziell bei der geplanten Ausgabe eines FrameMaker + SGML-Dokumentes als reines SGML-Dokument notwendig. Ansonsten kann es beim Ausgeben des Dokumentes zu Fehlermeldungen kommen, die das Programm im Extremfall dazu veranlassen, die Ausgabe abzubrechen. 

Generell geschieht die Ausgabe als SGML-Dokument einfach über den Befehl ,Sichern als..." mit der Formatangabe SGML. Auch hierbei muß allerdings eine entsprechende SGML-Anwendungsdatei hinterlegt sein, entsprechende Umsetzung FrameMaker-konformer Einträge in rein SGML-konforme Einträge steuert. 

FrameMaker + SGML erlaubt außerdem die Batch-Verarbeitung ganzer Verzeichnisse als SGML-Dateien. 

Fazit

FrameMaker + SGML bietet eine einfache Anwendung strukturierter Dokumente, die, wie eingangs schon erwähnt, nicht unbedingt SGML-strukturiert sein müssen. Durch die Integration in ein normales DTP-Frontend mit WYSIWYG-Fähigkeiten wird hierbei der Zugang zu dieser Art von Arbeit wesentlich erleichtert. Gleichzeitig muß man sich darüber im klaren sein, daß sich mit der Einführung einer SGML-basierten Produktion die Arbeitsaufgaben der Beteiligten massiv ändern. Liegt die Strukturierung vor, wird wirklich nur noch der Inhalt eingepflegt, abweichende Darstellungsformen sind nicht mehr realisierbar, es sei denn, sie sind von der Struktur vorgesehen. Dies setzt bei den Mitarbeitern, aber auch bei den Kunden, teilweise ein massives Umdenken voraus. 

Nicht zu unterschätzen ist außerdem der Aufwand sowohl zeitlicher als auch finanzieller Art, der notwendig ist, um eine komplett SGML-konforme Produktion zu ermöglichen. Das beginnt bereits bei der Erstellung der DTD, die in aller Regel über einen Dienstleister erstellt wird und z.B. bei einem größeren Verlag mit umfangreichem Verlagsprogramm schnell einen fünfstelligen Betrag erfordert. Auch die Frame-spezifischen Anforderungen wie das Erstellen von Read-/Write-Rules und der notwendigen Deklarationen bis hin zur Festlegung einer SGML-Anwendungsdatei sind meistens besser bei einem externen Dienstleister aufgehoben, denn der entsprechende Einarbeitungsaufwand ist enorm. 

Abschließend bleibt zu sagen, daß FrameMaker + SGML ein sehr komplexes Thema auf sehr intuitive Weise erschließt. Aber wie bei so vielen anderen Werkzeugen sind auch hier entsprechende Grundkenntnisse Voraussetzung für eine erfolgreiche Einführung. 

Marcus Bollenbach
Dipl.-Ing. (FH) Druckereitechnik
freiberuflicher Trainer
u.a. für FrameMaker und
FrameMaker + SGML 


Systemvoraussetzungen
 

Macintosh 68040 oder besser, PowerPC empfohlen; 16 MB RAM, 32 MB empfohlen; ab System 7.5
Windows 80486 oder besser; 16 MB RAM, 32 MB empfohlen
UNIX 24-64 MB RAM, 40-128 MB ,Swap"-Kapazität, X Windows System X11R
Zum Seitenanfang
 

© ADOLPH Verlag GmbH - Letztes Update 03.05.2004