SGML (Standard Generalized Markup Language, ISO 8879:1986) ist die Mutter aller strukturierten Auszeichnungssprachen: HTML und XML sind direkte Anwendungen beziehungsweise Vereinfachungen von SGML. Wer die Befehle und Konzepte von SGML versteht, erkennt die Herkunft moderner Markup-Sprachen sofort.
Grundkonzept: Deklarationen statt Tags
Anders als bei XML steht bei SGML nicht die Dokumentinstanz im Vordergrund, sondern die Deklaration. Eine SGML-Deklaration definiert die Zeichenmenge, die Syntax und die Element-Regeln, auf die sich ein Dokument bezieht — Dateien beginnen daher typischerweise mit einem <!DOCTYPE>-Konstrukt oder einer SGML-Deklaration.
Die wichtigsten SGML-Befehle und Konstrukte
<!DOCTYPE name ...>— Dokumenttyp-Deklaration, verweist auf die DTD (Document Type Definition)<!ELEMENT name contentmodel>— definiert ein Element und sein Inhaltsmodell<!ATTLIST name attname type default>— deklariert Attribute eines Elements<!ENTITY name "wert">— benannte Entität, wird beim Parsen aufgelöst (z.B.&)<![ ... ]]>— Marked Section, z.B.<![CDATA[...]]>für rohen Inhalt#PCDATA— parsed character data, gemischter Inhalt (Text plus Elemente)?,*,+— Häufigkeitsoperatoren im Inhaltsmodell (optional, beliebig oft, mindestens einmal)
Ein klassisches Beispiel einer Element-Deklaration:
<!ELEMENT absatz (#PCDATA | stark | kursiv)*>
<!ATTLIST absatz id ID #IMPLIED>
HTML und XML als SGML-Erben
HTML 2.0 bis HTML 4.01 waren offiziell SGML-Anwendungen mit einer öffentlichen SGML-Deklaration. XML ist die 1998 erschienene vereinfachte Teilmenge von SGML: Sie streicht die optionalen Mechanismen (Minimierung, kurze Tags, exotische Entitäten) und erzwingt Wohlgeformtheit. Für die Praxis relevant sind heute vor allem die XML-Nachfolger: XML-Befehle und XSLT/XSL-Befehle.
Verwandte Grundlagen: XML – Glossar, XPath-Befehle, XQuery-Befehle.