2.5.2 SGML定義情報の作成
Text Search Plug-inシステムで文書検索プラグインの環境を構築するには,文書検索プラグインが使用する表のSGMLTEXT型の列の作成に必要な情報を定義するファイルを作成します。必要な情報とは,SGMLテキストデータの構造と文書要素を表すタグ名称などを定義するDTD,検索に不要なタグや文書要素の削除,参照タグと外字コードの対応を定義する正規化パラメタのことです。これらの情報をまとめて,SGML定義情報といいます。
ファイルは,テキストエディタなどを使用して作成します。作成する列の種別によって必要なファイルは異なります。作成する列の種別ごとに必要となるファイルを次の表に示します。
必要なファイル名 |
列種別 |
|
---|---|---|
構造なし文書用の列 |
構造化文書用の列 |
|
DTDファイル |
× |
○ |
正規化パラメタファイル |
× |
△ |
- 注意事項
-
-
Text Search Plug-inの定義に必要なファイルの名称は,ご利用のOSの制限に従ってください。
-
各ファイルの内容は,HiRDBをセットアップした文字コード,および「付録A 登録する文書(テキストデータ)および文字列データに使用できる文字」に示す文字コードで記述してください。
-
- 〈この項の構成〉
(1) DTDファイル
DTDファイルとは,構造化文書用の列に対して,登録する文書の構造を定義するためのファイルです。一つの列に一つのDTDファイルを作成します。DTDファイルはテキストエディタなどで作成します。なお,構造なし文書用の列を作成する場合,このファイルを作成する必要はありません。
Text Search Plug-inでは,一つの列に対して一つのDTDを対応付けます。通常,SGML文書にはDTDが含まれています。しかし,Text Search Plug-inで管理する列には,DTDは文書と切り離して入力します。これによって,DTDの異なる文書の登録を避けられます。列でのDTDとSGML文書の分割について,次の図に示します。
なお,列にDTDファイルが登録されていれば,SGML文書にDTDが含まれていても問題はありません。ただし,SGML文書に含まれているDTDの内容が,列に登録されているDTDの内容と矛盾している場合は,エラーになります。
(a) Text Search Plug-inでのSGML文書の制限
Text Search Plug-inではSGMLに関して次の制限があります。DTDを決定する場合は,これらの制限に注意してください。
-
SGML宣言指定は不要です。SGML宣言が指定されていても,内容は無効です。
-
DOCTYPEは最上位構造名になります。
-
一つの列には同じDOCTYPEを持つ文書を登録してください。
-
公開識別子(PUBLIC)は指定できません。
-
システム識別子(SYSTEM)にはDTD名称を指定してください。
-
外部エンティティは扱えません。
-
登録するSGML文書は,次に示す文字コードで作成してください。
-
HiRDBをセットアップした文字コード
-
「付録A 登録する文書(テキストデータ)および文字列データに使用できる文字」に示す文字コード
-
-
SGML文書中の一つのタグに対するネストレベルは100までです。
(b) SGML文書中の改行コードの変換方法
SGML文書中の改行コードの変換方法を次の表に示します。
改行コードの前の文字 |
改行コードの後ろの文字 |
変換方法 |
---|---|---|
1バイト文字 |
1バイト文字 |
改行コードをスペースに置換 |
1バイト文字以外の文字 |
改行コードを削除 |
|
1バイト文字以外の文字 |
1バイト文字 |
|
1バイト文字以外の文字 |
そのほかの改行コードの変換規則は次のとおりです。
-
文書(CDATA)の始めおよび終わりの改行コードは削除します。
-
改行コードだけの文字列は,一つの半角スペースに置き換えます。
-
改行コードが連続する場合は,一つの改行コードとして扱います。
(2) 正規化パラメタファイル
正規化パラメタファイルには,SGML文書中のタグを制御するパラメタを記述します。正規化パラメタファイルはテキストエディタなどで作成します。なお,SGML文書中のタグの制御が必要ない場合,このファイルを作成する必要はありません。
正規化パラメタファイルは,DTD単位に作成します。つまり,構造化文書用の列に対して一つ作成します。
(a) 正規化パラメタファイルの構成内容
正規化パラメタファイルは,正規化パラメタと特定文字データ変換マップで構成されます。
(b) 正規化パラメタファイルの記述形式
- 正規化パラメタの指定方法
-
正規化パラメタは,要素型名に対して実行するオペランドを指定します。
- 記述形式
-
[ELEMENT△LIST]<改行>
"要素型名"△{CONN|DELT}<改行>
- オペランド
-
CONN:接続対象要素リスト
DELT:削除対象要素リスト
- 注意事項
-
-
テキスト形式で作成してください。
-
要素型名は重複して指定できません。
-
<改行>は改行コードを表しています。
-
- 特定文字データ変換マップの指定方法
-
特定文字データ変換マップは次の形式で記述します。
- 記述形式
-
[CHANGE△CHARACTER△LIST]<改行>
共通的な文字コードへ変換するSGML文書中の文字データ△変換する文字<改行>
- 注意事項
-
-
共通的な文字コードへ変換する特定の文字データは,DTDファイルに特定文字の実体を示すキーワードとして,"SDATA"で宣言されている必要があります。
-
SDATAは文字コードを定義していませんので,全文検索を実行するために文字コードを定義する必要があります。
-
テキスト形式で作成してください。
-
SGML文書中の値と変換する文字は1行で記述してください。
-
変換する文字に,改行コード(0x0a)は指定できません。
-
<改行>は改行コードを表しています。
-