11. SGML und SGML-Software

In vorangegangenen Sektionen, habe ich ein Grossteil der Vorgeschichte DocBook's unerwähnt gelassen. XML besitzt ein Vorgänger, SGML oder Standard Generalized Markup Language.

Bis Mitte 2002, wäre keine DocBook Erläuterung als solches umfassend genug gewesen, wenn sie die Erläuterung betreffend SGML, den Unterschieden zwischen SGML und XML und eine ausführlichen Beschreibung der SGML DocBook Toolkette ausgelassen hätte. Dieser Prozess wurde nun wesentlich vereinfacht; eine XML DocBook Toolkette ist nun als Open Source erhältlich, fungiert ebenso wie es die SGML Toolkette bis anhin tat und ist zudem wesentlich einfacher in der Anwendung. Wenn du nicht annimmst, dass du jemals mit alten SGML-Docbook Dokumenten zu tun haben wirst, kannst du den Rest dieser Sektion getrost überspringen.

11.1. DocBook SGML

DocBook war ursprünglich eine SGML Applikation und es existierte eine SGML-basierende DocBook Toolkette, die nun der Geschichte angehört. Es sind geringfügie Differenzen zwischen der DocBook SGML DTD und der DocBook XML DTD vorhanden, die sich jedoch für eine einführende Diskussion als irrelevant erweisen. Der einzige, der für Endbenützer ersichtlich ist, ist, dass in SGML inhaltslose Tags kein abschliessender Slash (oder: Schrägstrich) hinzugefügt werden muss, vor der schliessenden, eckigen Klammer >. (Die Benötigung eines abschliessenden / bedeutet, dass XML Parser wesentlich simpler sein können, da sie nicht auf die DTD referenzieren müssen, um zu wissen, welche öffnende Tags jeweils auch abschliessende benötigen.)

Versionen von HTML bis 4.01 (vor XHTML) waren reine SGML Applikationen. TEI war ursprünglich auch eine SGML Applikation. Die Gruppen, die alle drei DTDs hegten, wandten sich nach XML aus der gleichen Motivation, wie es die DocBook Entwickler taten — es ist drastisch einfacher. SGML erwies sich als extrem komplex; unhandlich zu gebrauchen. Die Spezifikation umfasste volumenmässig an die 150 Seiten und es kann nicht mit Gewissheit bestätigt werden, dass je ein Programm jegliche Funktionalität implementiert hätte.

Das frühere Toolkette Diagramm war simplifiziert; es beinhaltete nur die XML-zugehörige Toolkette. An dieser Stelle nun die historisch korrekte Ausführung:

Die DSSSL Toolkette evaluierte die DocBook SGML. Innerhalb dieser Toolkette, wird das Dokument im DocBook Format an eine der nah-verwandten Stylesheet Evaluierer namens Jade and OpenJade übergeben. Diese wandeln es in TeX-Macro Dokumentbeschreibungssprache um, welche nachfolgend durch ein Packet namens JadeTeX in das DVI Format konvertiert wird; abschliessend erfolgt noch die Konversion nach Postscript.

11.2. Warum SGML DocBook das zeitliche gesegnet hat

Die DSSSL Toolkette hat in punkto der Weiterentwicklung effektiv das zeitliche gesegnet. Die XSLT Toolkette hat soeben Produktionsstatus zum Zeitpunkt der Verfassung dieses Dokumentes in August 2002 angenommen; eine lauffähige Version ist in Red Hat 7.3 integriert worden. Die DocBook Entwickler lassen der Weiterentwicklung dieser Toolkette ein Grossteil ihrer Bemühungen zukommen.

Der Grund für den Wechsel nach XML war dreifach bedingt. Erstens erwies sich SGML für den Gebrauch zu komplex; dann erwies sich DSSSL als zu kompliziert; und abschliessend waren signifikante Teile der DSSSL Toolkette schwach und hoffnungslos unsauber programmiert worden.

Relativ zu SGML, beinhaltet XML ein reduziertes Funktionalitätsset, welches jedoch für die meisten Zwecke ausreichend ist; zudem ist es wesentlich verständlicher und vereinfacht die Entwicklung von entsprechenden Parsern. SGML-verarbeitende Programme (wie validierende Parser) sind gezwungen, eine Unmenge von Unterstützung für Funktionalitäten zu integrieren, welche DocBook und andere Text Beschreibungssprache nie wirklich verwendeten. Die Entfernung dieser Funktionalitäten vereinfachte XML wesentlich und beschleunigte XML-verarbeitende Programme.

Die Sprache, die verwendet wurde, um SGML DTDs beschreiben, erwies sich als ausreichend eigensinning und abschreckend, sodass die Komposition von SGML DTDs als eine Art geheimnisvolle Kunst galt. XML DTDs hingegen können durch einen Dialekt in XML selber beschrieben werden; es ist keine andere DTD Definition vonnöten. Eine XML Beschreibung einer XML DTD wird als Schema bezeichnet; der Ausdruck DTD wird wahrscheinlich in Vergessenheit geraten sowie sich inskünftig der Begriff Schema sich als Standard etablieren wird.

Die DSSSL Toolkette hat ihr Ableben hauptsächlich DSSSL selber zu verdanken; die in dieser Toolkette enthaltene SGML Stylesheet Dokumentbeschreibungssprache, erwies sich als zu mysteriös für die meisten menschlichen Wesen und erschwerte unnötig die Erzeugung und Modifizierung von Stylesheets. (Es war eine Variante von Scheme. Der bescheidene Autor, ein LISP Anhänger aus alten Zeiten, schüttelt sein Kopf bei diesem Gedanken in trauriger Entzückung.)

XML Anhänger bevorzugen die Zusammenfassung all dieser Veränderungen mit folgenden Worten: ``XML: schmeckt gut, sättigt weniger."

11.3. SGML-Tools

SGML-Tools war der Name einer DTD, die durch das Linux Documentation Project verwendet wurde, die einige Jahre zurückliegend entwickelt wurde, als die heutigen DocBook Toolketten noch nicht existierten. SGML-Tools Dokumentbeschreibung war zwar einfacher, büsste jedoch an Flexibilität gegenüber dem DocBook Format ein. Die ursprünglichen SGML-Tools formatter/DTD/stylesheet(s) Toolkette, sind seit einiger Zeit auf Eis gelegt worden, aber ein Nachfolger namens SGML-tools lite wird noch immer gehegt.

Das LDP hat die SGML-Tools in Bevorzugung des DocBook Formats verworfen, aber es ist noch immer durchaus möglich, dass du unter Umständen an ein altes HOWTO gerätst. Diese können durch den identifizierenden Header ``<!doctype linuxdoc system>" rekognosziert werden. Sofern es dich treffen sollte, konvertiere es nach XML DocBook und verwerfe die alte Version.