DocBook

DocBookは技術文書のためのマークアップ言語である。元々の用途はコンピュータのハードウェアやソフトウェアに関する技術文書の作成だったが、他の種類の文書のためにも使うことができる。

DocBookの利点のうち特に大きなものの一つは、文書内容の論理的な構造を表す、表示形式に依存しない文書の作成が可能となることである。そのようにして作った文書はユーザーが文書に手を入れることなく、HTML・EPUB・PDF・manページ・HTMLヘルプなどの様々なフォーマットで出力できる。

 歴史 
DocBookは1991年にHaL Computer SystemsとO'Reilly & Associates（現在のオライリーメディア）の共同プロジェクトとして始まった。初期は独自の組織 (Davenport Group) のもとで管理されていたが、1998年にSGML Open、後のOASIS（構造化情報標準促進協会）の下に移行した。現在はOASISのDocBook Technical Committeeによって管理されている。

DocBookはSGMLとXMLの両形式のためにDTDが用意されている。XMLならばRELAX NGとXML Schemaも利用可能である。DocBook 5以降、RELAX NGが標準形式となり、他のフォーマットはRELAX NG版から生成されている。

DocBookはそもそもSGMLアプリケーションとして登場したが、等価なXMLアプリケーションが開発され、ほとんどの環境でXML版に置き換わっている。ちなみに、XMLのDTDはバージョン4から登場し、それ以降、SGMLのDTDはバージョンアップしていない。

初期は設計に関わった主要なソフトウェア会社の間で使われるだけだったが、その後、DocBookはオープンソースコミュニティで多くのプロジェクトのドキュメント作成のデファクトスタンダードして受け入れられた。FreeBSD・KDE・GNOMEのドキュメント、GTKのAPIリファレンス、Linuxカーネルやその他のLinux関連ドキュメント、などが有名な例である。オープンソースコミュニティ以外での使用も増え続けている。また、DocBookに対する何らかのサポートを含む商用の文書作成ツールも多く出回っている。

DocBookのソースから出力文書を作り出すためのキーとなるアプリケーションは、ノーマン・ウォルシュら DocBookプロジェクトの開発チームがメンテナンスしている、XSLスタイルシート、およびレガシーなDSSSLスタイルシートである。それらのスタイルシートを使えば、高品質なHTML・XSL-FO・PDFを出力することができ、またRTF・manページ・HTMLヘルプなどのフォーマットでも出力することができる。ウォルシュはDocBookの公式ドキュメントであるDocBook: The Definitive Guideの中心的な著者でもある。この本は出版物として以外にもオンラインでGFDLの下で利用できる。

DocBookはXMLであるので、どんなテキストエディタでも書くことができるが、よりシンプルに作業を進めることのできる多くの専用ツールが存在する。EmacsのXML modeにはDocBookのスキーマ情報が組み込みで付属し、ユーザーは素早く要素の追加や文書の検証などが行える。DocBook文書を、各要素をCSSでスタイル付けすることで、視覚的に表示するWYSIWYGエディタも存在する。

 コード例 
<book id="simple_book">
  <title>Very simple book</title>
  <chapter id="chapter_1">
    <title>Chapter 1</title>
    <para>Hello world!</para>
    <para>I hope that your day is proceeding <emphasis>splendidly</emphasis>!</para>
  </chapter>
  <chapter id="chapter_2">
    <title>Chapter 2</title>
    <para>Hello again, world!</para>
  </chapter>
</book>

DocBookのフォーマットはXMLで書かれており、コンピュータと同様に人間にも可読である。そのフォーマットは「タグ」（<book>など）とテキストである内容（Hello world!など）から成る。タグは</book>のような「閉じタグ」と1対1で対応している。文書全体(book)は2つの章(chapter)に構造化されており、それぞれ1つのタイトル(title)と1つ以上の段落(para)から構成される。これは文書が任意の大きさになっても成り立つ。

注意しておかねばならないのは、タグはテキストの「構造」や「意味」を示しているのであって、「見栄え」ではないということである。つまり「この段落をボールドにしろ」「センタリングしろ」などの命令は存在しない。そういう設計なのである。1つのDocBookファイルから多くのフォーマットで出力を得ることができるが、それぞれ見た目が全く異なり、さらには要素の配置さえも異なることがある。

 Simplified DocBook 
DocBookには多くの機能があるので、新規の利用者は圧倒されてしまうかもしれない。学習に長い時間をかけることなくDocBookを利用したい者のために、Simplified DocBookが設計された。DocBookの小さなサブセットであり、論文や記事などの単一の文書のために設計されている。つまり本(book)はサポートされない。Simplified DocBookのDTDは現在バージョン1.1である。

 脚注 
 出典 

 参考文献 

 外部リンク 
英語
 "What is DocBook?" - Oasis-open.org
 DocBook Repository at OASIS - DocBookのスキーマ/DTDのオフィシャルサイト
 DocBook Project - DocBookのXSLおよびDSSSLスタイルシートをメンテナンスしているSourceforgeプロジェクト
 DocBook validator、XML → HTML/PDF transformer
 DocBook to OpenDocument XSLT (docbook2odf) - DocBookのXSLTスタイルシート、OpenDocumentへの変換ユーティリティ
 EServer TC Library: DocBook
日本語
 DocBookの概要 (ppt) - 1999年作成

 チュートリアルおよびリファレンス 
英語
 DocBook.org - Norman Walsh DocBook: The Definitive Guideのウェブサイト。Wiki、FAQなど。
 DocBook XSL: The Complete Guide
 Documention with DocBook on Win32
 DocBook Demystification HOWTO
日本語
 実用DocBook入門
 DocBookで作るWindows Helpサンプル
 DocBookによるドキュメント作成
 EclipseでDocBook XMLを構築する

Category:DTPソフト
Category:マークアップ言語
Category:XMLベースの技術
Category:オープンフォーマット
Category:ソフトウェアドキュメンテーション