4. はじめてみよう

DocBook DTD を使って文書をマークアップするためには特殊なツールはまった く必要ありません.SGML ファイル(普通は .sgml か .sgm という ファイル名拡張子が付いています)は実は単なるプレーンテキストの ASCII ファイルに過ぎず,テキスト中に SGML の「タグ」が散らばっているだけです. 筆者としては,読者の皆さんが DocBook のマークアップを行う際にはお気に 入りのテキストエディタ(vi, emacs, notepad など何でも)を使うことを強く お勧めします.ファイルが ASCII 形式のプレーンテキストであることは非常 に重要です.したがって,本格的なワープロは機能が余計なだけではなく, ASCII でないファイルを作ってしまうことがあります.ですからテキストエディタ を使いましょう.これが最良かついちばん簡単な方法です.

DocBook でマークアップされた文書は色々な点で HTML そっくりに見えます. 例えば,以下にごく簡単な HTML ページを示します:

<html>
<head>
<title>HTML ページの例</title>
</head>
<body bgcolor="#000000">
<h1>これは見出しです</h1>
<p>
これは HTML ページの最初の段落です.
</p>
<p>
これは HTML ページの 2 番目の段落です.
</p>
</body>
</html>

マークアップタグは,"<" と ">" の括弧で括られた部分です. マークアップの「開始」タグ(ページ内で「要素(element)」の始まりを表す) は単に "<" と ">" の括弧で括られ, 「終了」タグ(要素の終わりを表す)は "</" と ">" で括られます. 開始タグとその対になる終了タグに挟まれている部分は全て, ページ内において完成した「要素」となります.

では「要素」とは何でしょうか? 文書要素は単に文書内の項目であり, 項目を挟むタグによって定義されます.例えば HTML の完全な "H1" (見出し レベル 1)要素を以下に示します:

<h1>これはレベル 1 の見出しです</h1>

要素は他の何らかの要素を含むこともできます.これは DTD によって定義さ れます.例えば,HTML の "body" 要素は見出し(heading),段落(paragraph), 列挙(list)等の様々な要素を含みます.例を示します:

<body>
<h1>これはレベル 1 の見出しです</h1>
<p>
これは段落です.
</p>
</body>

この例では "h1" 要素と "p" 要素が "body" 要素に含まれているのが分かる と思います.

しかし,HTML と DocBook SGML が似ている点はせいぜいこの程度です. HTML は主に HTML ブラウザで表示した時のページの整形と見栄えを定義する ために使われるマークアップ言語です.HTML はタグの組合せやタグが厳密に 持つべき構造についてはかなりいい加減です.

これに対して,DocBook SGML は文書の整形の仕方ではなく文書の構造を定義 するために使われるマークアップ言語です.DocBook には,要素を "bold" や "italic" にするためのタグはありません.その代わりに,各要素がどのよう に見えるべきかではなく,各要素に「何が」入っているのかを定義することに よって文書をマークアップしていきます.DocBook のごく簡単な例を以下に示 します:

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article>

   <artheader>
      <title>これは文章の題名です</title>
   </artheader>

   <sect1>
      <title>これはレベル 1 の章の題名です</title>
      <para>
      これは最初の段落です.
      </para>
      <para>
      これは 2 番目の段落です.
      </para>
   </sect1>

</article>

ご覧の通り,整形に関する情報は文書中にはありません.

"article" タグはその文書が article (記事)であることを表します. 文書中の他の全ての要素はこの「ルート(root, 根の)」要素に含まれます. 最初の "title" タグのペアは記事のタイトルを示し,このペアは "artheader(article header)" 要素に含まれます.2 番目の "title" タグの ペアは "sect1" 要素に含まれており,この節の題名を表します.

さて,一番最初にある "DOCTYPE" タグは何でしょうか? これは 「文書型定義(document type declaration)」といって,その文書が どんな種類の SGML 文書であるかを定義する方法であり,マークアップのため にどの DTD を使うかを示します.しかし,文書型定義の何たるかを理解しな ければならないわけではなく,DocBook を使ってマークアップする全ての文書 の先頭に必ず置けばそれで十分です.作成する文書の種類によっては "DOCTYPE" の次の単語は変更する必要があるかもしれません――この例では "article" ですが,"book", "chapter", "refentry" その他を書いてもかまい ません.

OSWG の文書群について見ると,もっとも多い文書の型は "article" です. article は HOWTO, mini-HOWTO, 雑誌の記事,論文などを含みます. "article" は実際には,ある程度決まった文章量と構造の複雑さをもった文書 に使うための一般的なクラスです.マニュアルページ("man" ページ)や普通の 書籍を書くのでなければ,あなたが OSWG の文書を書く時には "article" を 使う機会がいちばん多いでしょう.