ホーム > X-Plus > XML Square >  スタンダーズ

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

スタンダーズコーナー:OASIS規格解説 「DocBook」

2004年03月02日作成 

OASIS規格解説
DocBook
   

(株)日本ユニテック
青木 秀起

DocBookとは、技術文書向けのDTDで、SGML用とXML用の両方があります。1991年にSGML用として開発され、その後XMLにも対応するようになり、2001年1月にv4.1がOASIS標準として承認されました。 (http://www.oasis-open.org/docbook/xml/)

DocBook DTDに基づいて書かれた文書はXML文書であるため、簡単なXSLTツールを使ってHTML、PostScript、PDFなど、他の形式に変換することができます。DocBookの主な特徴は、DTDがモジュール構造になっていることです。

モジュール構造のDTD

DocBook DTDは非常に複雑でたくさんの要素で構成されていますが、いくつかのファイルに分割されたモジュール構造になっており、次図のようになっています(図1)。



図1 DocBook DTDのモジュール構造

docbookx.dtdファイルが、パラメータエンティティを使って、他のモジュールを呼び出すようになっています。docbookx.dtdファイルの一部は次のリストのようになっています(OASIS「DocBook XML DTD V4.2」より)。

リスト docbookx.dtdファイル
<!-- DocBook XML DTD V4.2 ................................................. -->
<!-- File docbookx.dtd .................................................... -->

<!-- Notation declarations ................................................ -->
<!ENTITY % dbnotn.module "INCLUDE">
<![%dbnotn.module;[
<!ENTITY % dbnotn PUBLIC
"-//OASIS//ENTITIES DocBook Notations V4.2//EN"
"dbnotnx.mod">
%dbnotn;
]]>

<!-- ISO character entity sets ............................................ -->
<!ENTITY % dbcent.module "INCLUDE">
<![%dbcent.module;[
<![%sgml.features;[
<!ENTITY euro "[euro ]"><!-- euro sign, U+20AC NEW -->
]]>
<![%xml.features;[
<!ENTITY euro "&#x20AC;"><!-- euro sign, U+20AC NEW -->
]]>

<!ENTITY % dbcent PUBLIC
"-//OASIS//ENTITIES DocBook Character Entities V4.2//EN"
"dbcentx.mod">
%dbcent;
]]>

<!-- Information pool .............. -->
<!ENTITY % dbpool.module "INCLUDE">
<![ %dbpool.module; [
<!ENTITY % dbpool PUBLIC
"-//OASIS//ELEMENTS DocBook Information Pool V4.2//EN"
"dbpoolx.mod">
%dbpool;
]]>

<!-- Document hierarchy ............ -->
<!ENTITY % dbhier.module "INCLUDE">
<![ %dbhier.module; [
<!ENTITY % dbhier PUBLIC
"-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
"dbhierx.mod">
%dbhier;
]]>

<!-- Other general entities ............................................... -->
<!ENTITY % dbgenent.module "INCLUDE">
<![ %dbgenent.module; [
<!ENTITY % dbgenent PUBLIC
"-//OASIS//ENTITIES DocBook Additional General Entities V4.2//EN"
"dbgenent.mod">
%dbgenent;
]]>


リストにあるとおり、条件キーワードを「INCLUDE」や「IGNORE」にすることで、必要なモジュールだけを選択できるようになっています。もちろん、新たなモジュールを作成して読み込ませたり、これらのモジュールの一部を変更したりすることもできます。このように、DocBook DTDはモジュール構造であるゆえにカスタマイズが容易であるという特徴を持っています。

これらのモジュールに含まれる数百ある要素のうち幹となる要素だけをツリー構造で表現すると次図のようになります(図2)。


図2 DocBookの主な要素




関連サービス

標準化仕様の動向調査
最新動向を伝えるDXメールニュース (無料)



この記事と関連の高い記事

関連キーワード:XML関連規格




ページトップへ戻る