# Standard Generalized Markup Language

Die Standard Generalized Markup Language (deutsch Genormte Verallgemeinerte Auszeichnungssprache), abgekürzt SGML, ist eine Metasprache, mit deren Hilfe man verschiedene Auszeichnungssprachen (englisch markup languages) für Dokumente definieren kann. SGML ist ein ISO-Standard: ISO 8879:1986 Information Processing – Text and Office Systems – Standard Generalized Markup Language (SGML).

## Historie und Aktualität

* 1986-10: ISO 8879 Informationsverarbeitung; Text- und Bürosysteme; Genormte verallgemeinerte Auszeichnungssprache (SGML)
* 1988-07: ISO 8879 AMD 1 (deutsch ISO 8879 Änderung 1) Informationsverarbeitung; Text- und Bürosysteme; Genormte verallgemeinerte Auszeichnungssprache (SGML); Änderung 1
* 1996-12: ISO 8879 Technical Corrigendum 1 (deutsch ISO 8879 Technische Berichtigung 1) Informationstechnik – Text- und Bürosysteme – Genormte verallgemeinerte Auszeichnungssprache (SGML); Technische Berichtigung 1
* 1999-11: ISO 8879 Technical Corrigendum 2 (deutsch ISO 8879 Technische Berichtigung 2) Informationstechnik – Text- und Bürosysteme – Genormte verallgemeinerte Auszeichnungssprache (SGML); Technische Berichtigung 2
Normungsstatus: aktuell.

## DIN-Fassung

Der ISO-Standard SGML ISO 8879 wurde 1990 unverändert in die Europäischen Norm EN 28879 übernommen (Zusatz EN für Europäische Norm und Voranstellung der Ziffer 2 als Kennzeichen für eine Übernahme einer ISO-Norm). Diese Fassung enthält bereits die Normänderung ISO 8879 AMD 1:1988-07.
Die Europäische Norm wurde 1991 in die deutsche Fassung DIN EN 28879 übernommen (Zusatz DIN zur Europäischen Norm). Die deutsche Fassung wurde nie in die deutsche Sprache übersetzt.
Das DIN vertreibt die Normen über den Beuth-Verlag, der die Norm ISO 8879 (original, englisch) wie auch die deutsche Norm DIN EN 28879 (englisch) anbietet. Die deutsche Fassung (DIN EN 28879) wurde am 1. September 2007 zurückgezogen. Die internationale Norm ISO 8879 ist unverändert ein aktuell gültiger Standard.
DIN-Anzeiger, September 2007:

## Inhalt und Darstellung

Um ein gültiges (englisch valid) Dokument in SGML zu beschreiben, muss eine Dokumenttypdefinition (DTD) verwendet werden, die den strukturellen Aufbau des Dokumentes beschreibt. Mit SGML wird die Struktur eines Dokumentes beschrieben, wobei das Layout nicht berücksichtigt wird. Durch die strikte Trennung von Struktur und Layout bilden SGML-Daten die Grundlage für medienneutrale Daten.
Die Struktur wird im Dokument durch Elemente angegeben. Zum Beispiel wird eine Überschrift in SGML mit einem Element gekennzeichnet, die Darstellung (Layout) dieses Elementes bleibt dem Layoutprogramm überlassen.
SGML-Dokumente werden mit Parsern gelesen oder geprüft. Ein Parser liest zunächst die SGML-Deklaration (Regeln der Syntax), danach die DTD (Regeln der Struktur) ein und danach die eigentlichen Dokumentdaten (Inhalt, techn. Instanz = Ableitung der Definitionen). Der Parser prüft, ob das Dokument konform zu den angegebenen Regeln ist. Ein solcher Parser ist z. B. nsgmls von James Clark; dieser Parser wird im Rahmen des OpenSP-Projektes weiterentwickelt.
Ein gültiges Dokument ist ein Dokument, welches zu allen angegebenen Regeln konform ist. Jedes SGML-Dokument ist – Qualität zuerst – ein gültiges Dokument. Nur gültige Dokumente können von Parsern weiterverarbeitet werden.
Zur Transformation oder Wiedergabe eines Dokumentes für ein bestimmtes Ausgabemedium kann zum Beispiel die freie Sprache Document Style Semantics and Specification Language (DSSSL) verwendet werden.

## Abgrenzung

Die bekanntesten auf SGML basierenden Sprachentwicklungen sind HTML und XML. HTML war die wichtigste Anwendung (englisch application) von SGML. XML wird als Nachfolger von SGML betrachtet. XML wird im Wesentlichen durch eine bestimmte Untermenge von SGML definiert. In der Praxis hat XML heute SGML in vielen Bereichen abgelöst.

## Sprachelemente

* Dokumenttypdefinitionen (DTDs)
* Dokumenttypdeklarationen, z. B. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4.0//DE">
* Tags
** Starttag: <dokument> <p> <b>
** Endtag: </dokument> </p> </b>
* Elemente
** Inhaltsblöcke, gekennzeichnet durch Starttag und Endtag: <p>Inhalt</p>
** Elemente ohne Inhalt, gekennzeichnet nur mit einem Starttag: <img src="bild.jpg">
** Elemente ohne Inhalt nach Syntax ISO 8879 Technical Corrigendum 2 (Web SGML) von 1999: <img src="bild.jpg" />
* Attribute, Eigenschaften innerhalb von Tags: src="bild.jpg"
* Zeichen-Entitäten
** benannte Entitäten: &lt; &amp; &auml;
** numerische Entitäten: &#233; &#xE9;
** Systementitäten: &#TAB; &#SPACE;
* CDATA-Abschnitte: <![CDATA[Inhalt]]>
* Verarbeitungsanweisungen: <?Anweisung>
* Kommentare
** Kommentare in Tags und Deklarationen: --Kommentar--
** Kommentardeklarationen: <!--Kommentar-->
Viele Sprachelemente von SGML leben heute in HTML und XML weiter.

## Geschichte

Einer der Väter von SGML ist Charles Goldfarb, der die Grundlagen für IBMs Document Composition Facility Generalized Markup Language (IBM GML oder DCF GML) definierte. Ziel der GML war es, Dokumente so zu beschreiben, dass das Ergebnis weder von einer bestimmten Plattform noch von einer spezifischen Anwendung abhing. Es ging dabei rein um die logische Struktur wie z. B. die Einteilung eines Buches in Überschriften, Kapitel, Abschnitte und nicht um das Aussehen eines Dokumentes. Diese wesentliche Idee, das Konzept des generic coding, ist bereits Ende der 1960er Jahre entstanden und geht auf William W. Tunnicliffe zurück. Im Lauf der Jahre wurde GML weiterentwickelt und setzte sich letztendlich 1986 als internationaler Standard ISO 8879:1986 Standard Generalized Markup Language – SGML durch.
Behörden, Firmen, Bildungseinrichtungen und Institutionen begannen damit, ihre Daten in SGML zu speichern. Den großen Durchbruch auf breiter Front schaffte SGML aber erst mit der Möglichkeit, Daten für HTML- und XML-basierende Anwendungen automatisiert zu erstellen.

## Anwendungen

* HTML, Standard zur Strukturierung von Webseiten
* DocBook, Standard zur Erstellung von (technischen) Dokumentationen
* TEI, Dokumentformat zur Kodierung und für den Austausch von Texten
* EAD, Standard zur Beschreibung von Findbüchern und anderen Findhilfen in Archiven
* ASD DTDs, Spezifikation zur Erstellung technischer Dokumentationen für die Luftfahrt
* ATA DTDs, Spezifikation zur Erstellung technischer Dokumentationen für die Luftfahrt
* MIL DTDs, technische Dokumentationen im Militär
Die meisten aufgeführten Anwendungen werden heute auf Basis von XML weiterentwickelt.