Appendix B. SGML の書き方

Table of Contents
SGML の概念
本( book )形式のテンプレート
HTML の <UL> 相当
HTML の <TABLE> 相当
ツール群
例: SGML から HTML を作る
見栄えを変更する
その他の情報源

fml8 のドキュメントでは、SGML の DTD は DOCBOOK をごくごく普通に使うことにします。

本章では、SGML を書くために最小限必要な知識についてメモします。

基本的な SGML の書式は、当たり前 [1] ですが、正しい HTML の書き方と同様です。 本 Appendix で、2、3 の典型的な SGML テンプレートをメモしておくので、 それらを適当に切り剥ぎしていけばなんとかなるはずです。

SGML の概念

SGML は本や短い文書(記事)を作成するに使います。 本や記事の論理構造を記述するための規格です。 HTML のもっと厳密なものだと思って下さい [2]

例えば、”本”という概念を考えてみます。 まず”本”には章、節といった構成単位があります。 節の中にはパラグラフがありますし、文には脚注がついたり、 図などが挟み込まれたりします。

これらの概念には、ある関係があります。 例えば”章”は”節”を含みますが、”節”は”章”を含みません。 そして、文は必ずあるパラグラフの中にあるものです。

そういった概念をどう表現するべきか?を規定したものが DTD (Data Type Definition)といえます。 DTD は自由に定義すれば良いのですが、かなり大変です。 しかしながら 誰かが作った DTD コレクションが世の中にはあるので、それを 使うのが便利です。 我々は DTD として docbook というものを使う [3] ことにしています。

DOCBOOK は OASIS-0PEN.ORG が保守している DTD 集です。非常に有名なもの で、デファクトスタンダードといってもよいでしょう。(わかりやすいかどう かは別として;)リファレンスがオライリーから本も出ていますし、ドキュメン トも豊富です。Free の UNIX などをはじめ、多くのプロジェクトで使われて います。

つまり、SGML を使うことで得られる最大の意義は「ある基準となるもの」に 規格化ないしは強制されるということです。これは SGML の構文による規制と いう意味ではありません。ある概念に従うことに強制されようということです。

ここで”概念”といっているのであって、”見栄え”については ふれていないことに注意して下さい。 例えば HTML では概念と見栄えは(むしろ意識的に)はっきり分離していません。

見栄えは DTD とは別の何かで定義されます。 通常スタイルシートというものです。 HTML 4.0 などでご存知の CSS と同じ概念です。

スタイルシートの記述をするプログラミング言語が必要です。 docbook では schema (lisp の一種) ベースの DSSSL (Document Style Semantics and Specification Language) を使います。

また SGML では論理構造しか記述しないので見栄えはコンバータ次第で どうとでもなります。 HTML、テキスト、ROFF、PS、PDF、RTF を始め、 いろいろなものへ変換するやり方が用意されています。

Notes

[1]

HTML は SGML 形式の応用の(最も有名な)一例です。 そのため本質的なシンタックスは HTML と同じということになります。

[2]

正確には HTML が SGML の一部にフォーマッタの要素が合体してしまったものです。 HTML の方がはるかに有名になってしまったので、 「HTML のもっと厳密なもの…」といった説明が良くされます :)

[3]

我々が DOCBOOK を選んだ理由は簡単で、 多くの場所で使われているからです。 つまり、docbook のタグを書ける人は世の中に多いという意味です。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.