fml8 のドキュメントでは、SGML の DTD "DOCBOOK" をごくごく普通に使うことにしています。
本章は SGML で書くために最小限必要な知識についてのメモです。
基本的な SGML の書式は、当たり前 [1] ですが、正しい HTML の書き方と同様です。 本付録で、2、3 の典型的な 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 を始め、 いろいろなものへ変換するやり方が用意されています。
[1] | HTML は SGML 形式の応用の(最も有名な)一例です。 そのため本質的なシンタックスは HTML と同じということになります。 |
[2] | 正確には「SGML の一部にフォーマッタの要素が合体したもの」が HTML です。 HTML の方がはるかに有名になってしまったので、 「HTML のもっと厳密なもの…」といった説明が良くされます :) |
[3] | 我々が DOCBOOK を選んだ理由は簡単で、 多くの場所で使われているからです。 つまり、docbook のタグを書ける人が世の中に多いという意味でもあります。 |
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>.