カタログ(catalogue)は、公開識別子(public identifier)を解釈してシステム ファイルを見つけだす際のルールが記述されたテキストファイルです。
カタログファイルは、DocBook は使いやすくするためのものです。 個々のユーザは、カタログファイルを(たとえば、ホームディレクトリ、/usr/local/sgml、その他の)どこにインストールして もいいですし、インストールさえすれば、それ以上処理したりコンパイルしたりする 必要もありません。
Example 4-1. カタログの例
上記の例では、識別子をファイルに対応させるために、次のような順序に 従っています。
識別子 PUBLIC をコピーする。
識別するテキストを書き込む。
対応するファイルへのパスを示す。
次の識別子に注目してください。
"-//Conectiva SA//DTD books V1.0//EN" |
この並び方は、ランダムではなく、あらかじめ決められた規則に従っています。
" - " という語句は、使用される識別子が、登録済みのタイプでは ないことを示しています。登録済み識別子はわずかしかなく、それらは通常、 ISO や IEEE といったエンティティ (entity)に属しています。
識別子の次の部分では、それを作成した組織名が定義されます。 上記の例では、Conectiva S.A. です。
最後からひとつ手前に部分では、コンテント(content) (本書の場合は、DTD [1] です。) と、識別されているテキスト名が定義されます。
最後のエレメントは、文書を記述した言語を示しています。DocBook は、 英語で書かれた DTD なので、言語は EN となります。 2 文字のコードが推奨されているのは、ISO の言語識別基準 に従っているからです。
詳しくは、OASIS Technical Resolution 9401:1997 (Amendment 2 to TR 9401) をご覧ください。
カタログ上で使われるコマンドのうち、代表的なものを以下で説明します。
キーワード PUBLIC は、公開識別子(public identifier) をシステム上の識別子にマップします。
キーワード SYSTEM は、システム識別子(system identifier)をシステム上のファイルにマップします。
SYSTEM "http://nexus.conectiva/utilidades/publicacoes/livros.dtd" "publicacoes/livros.dtd"
キーワード SGMLDECL は、使用されるべき SGML 文言 (SGML statement)のシステム識別子を指示します。
SGMLDECL "publishings/books.dcl"
SGMLDECL と同様、キーワード DTDDECL は、使用されるべき SGML 文言を指示します。DTDDECL によって、SGML 文言は、DTD に対する公開識別子に 対応付けられます。残念ながら、この対応付けは、無料で入手できる既存のツール ではサポートされていません。この文言は、複数のカタログファイルを使うときに 効果があります。
DTDDECL "-//Conectiva SA//DTD livros V1.0//EN" "publicacoes/livros.dcl"
キーワード CATALOG を使うと、あるカタログファイルを 別のカタログファイル内に含めることができます。それによって、カタログファイル そのものを変更せずに、異なる複数のカタログを利用できるようになります。
キーワード OVERRIDE は、公開識別子がシステム識別子 に優先するかどうかを指示できます。大部分のシステムでの標準は、システム識別子 が公開識別子に優先しています。
キーワード DELEGATE を使うと、あるカタログを特定 タイプの公開識別子に対応付けることができます。DELEGATE コマンドは、CATALOG と非常に似ていますが、特定のパターンが 指定されない限り何もしない点で異なっています。
文書型が最初に書かれていても、公開識別子やシステム識別子が書かれて いない場合、DOCTYPE コマンドが、その文書を特定の DTD に 対応付けます。
[1] | 有効コンテントは、DTD, DOCUMENT, ELEMENTS, ENTITIES, NONSGML です。 |