SGML (Standard General Markup Language) は、文書内にコードを埋め込む ことで成り立っている言語です。その意味では、HTML と類似していますが、類似点は それだけです。SGML のパワーは、WYSIWYG (What You See Is What You Get) と違って、色やフォントサイズやある種の形式などを定義するわけではないという ところにあります。その代わり、(パラグラフやセクション、番号付きリストなどの) エレメント(element)を定義しておいて、SGML 処理系や後処理用プログラムに 版組や色、フォントなどを任せてしまいます。HTML でも同じことをしていますが、 HTML は実際のところ SGML のサブセットです。
SGML は、文書の生成のために、 本質的に 3 つの部分から成り立っています。1 つ目は、構造 (Structure) で、 これは、 通常、DTD とか文書型定義 (Document Type Definition) とよばれています。 DTD では、個々のエレメント (element) (もしくはタグ(tag)) の関係が定義されて います。この文書を書くのに使っている DocBook はそのひとつです。DTD は、文書の 内容 であるコンテント (content) が従うべきルールの箇条書きです。2 つ目は、DSSSL もしくは、Document Style Semantics and Specification Language です。DSSSL は、 文書をレンダリングするプログラムに対して、SGML を人間が読める形式にする際の やり方を指示します。たとえば、RTF フォーマットにしたい場合は、<title> タグを 14 ポイントのボールド体にするようレンダリングプログラムに指示し、 HTML にする 場合には、それを <h1> に変換するように指示します。最後に、文書の内容 であるコンテント (Content) があり、これは SGML 処理系によってレンダリングされ る対象物であり、最終的にユーザが目にする部分です。たとえば、このパラグラフは、 もちろんコンテントですが、画像や表、番号付きリストなんかもコンテントです。 コンテントは、タグ (tag) で囲まれて、個別のエレメントとして区別されます。