4.3. カタログの作成と修正

カタログ(catalogue)は、公開識別子(public identifier)を解釈してシステム ファイルを見つけだす際のルールが記述されたテキストファイルです。

カタログファイルは、DocBook は使いやすくするためのものです。 個々のユーザは、カタログファイルを(たとえば、ホームディレクトリ、/usr/local/sgml、その他の)どこにインストールして もいいですし、インストールさえすれば、それ以上処理したりコンパイルしたりする 必要もありません。

Example 4-1. カタログの例

-- Catalogue for the Conectiva Styles --                   (1)

OVERRIDE YES
 
PUBLIC "-//Conectiva SA//DTD DocBook Conectiva variant V1.0//EN" (2)
       "/home/ldp/styles/books.dtd" 

DELEGATE "-//OASIS" 
         "/home/ldp/SGML/dtds/catalog.dtd"

DOCTYPE BOOK /home/ldp/SGML/dtds/docbook/db31/docbook.dtd
 
-- EOF --                                                  (3)
        
(1)
コメント。コメントは、"--" で始まり、改行で終わります。
(2)
公開型宣言(public type declaration) "-//Connectiva SA//DTD books V1.0//EN"/home/ldp/styles にある books.dtd ファイル。
(3)
ファイルの終了を示すコメント。

上記の例では、識別子をファイルに対応させるために、次のような順序に 従っています。

  1. 識別子 PUBLIC をコピーする。

  2. 識別するテキストを書き込む。

  3. 対応するファイルへのパスを示す。

4.3.1. 用語の説明

次の識別子に注目してください。

"-//Conectiva SA//DTD books V1.0//EN"

この並び方は、ランダムではなく、あらかじめ決められた規則に従っています。

" - " という語句は、使用される識別子が、登録済みのタイプでは ないことを示しています。登録済み識別子はわずかしかなく、それらは通常、 ISOIEEE といったエンティティ (entity)に属しています。

識別子の次の部分では、それを作成した組織名が定義されます。 上記の例では、Conectiva S.A. です。

最後からひとつ手前に部分では、コンテント(content) (本書の場合は、DTD [1] です。) と、識別されているテキスト名が定義されます。

最後のエレメントは、文書を記述した言語を示しています。DocBook は、 英語で書かれた DTD なので、言語は EN となります。 2 文字のコードが推奨されているのは、ISO の言語識別基準 に従っているからです。

詳しくは、OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401) をご覧ください。

4.3.2. カタログ上での便利なコマンド

カタログ上で使われるコマンドのうち、代表的なものを以下で説明します。

PUBLIC

キーワード PUBLIC は、公開識別子(public identifier) をシステム上の識別子にマップします。

SYSTEM

キーワード SYSTEM は、システム識別子(system identifier)をシステム上のファイルにマップします。

SYSTEM "http://nexus.conectiva/utilidades/publicacoes/livros.dtd" "publicacoes/livros.dtd"

SGMLDECL

キーワード SGMLDECL は、使用されるべき SGML 文言 (SGML statement)のシステム識別子を指示します。

SGMLDECL "publishings/books.dcl"

DTDDECL

SGMLDECL と同様、キーワード DTDDECL は、使用されるべき SGML 文言を指示します。DTDDECL によって、SGML 文言は、DTD に対する公開識別子に 対応付けられます。残念ながら、この対応付けは、無料で入手できる既存のツール ではサポートされていません。この文言は、複数のカタログファイルを使うときに 効果があります。

DTDDECL "-//Conectiva SA//DTD livros V1.0//EN" "publicacoes/livros.dcl"

CATALOG

キーワード CATALOG を使うと、あるカタログファイルを 別のカタログファイル内に含めることができます。それによって、カタログファイル そのものを変更せずに、異なる複数のカタログを利用できるようになります。

OVERRIDE

キーワード OVERRIDE は、公開識別子がシステム識別子 に優先するかどうかを指示できます。大部分のシステムでの標準は、システム識別子 が公開識別子に優先しています。

DELEGATE

キーワード DELEGATE を使うと、あるカタログを特定 タイプの公開識別子に対応付けることができます。DELEGATE コマンドは、CATALOG と非常に似ていますが、特定のパターンが 指定されない限り何もしない点で異なっています。

DOCTYPE

文書型が最初に書かれていても、公開識別子やシステム識別子が書かれて いない場合、DOCTYPE コマンドが、その文書を特定の DTD に 対応付けます。

Notes

[1]

有効コンテントは、DTD, DOCUMENT, ELEMENTS, ENTITIES, NONSGML です。