• 検索結果がありません。

SGML 定義情報の作成

ドキュメント内 HiRDB Text Search Plug-in Version 10 (ページ 73-79)

DELETE 時

2.5  文書検索プラグインのデータベースの作成

2.5.2  SGML 定義情報の作成

Text Search Plug-in システムで文書検索プラグインの環境を構築するには,文書検索プラグインが使用 する表の SGMLTEXT 型の列の作成に必要な情報を定義するファイルを作成します。必要な情報とは,

SGML テキストデータの構造と文書要素を表すタグ名称などを定義する DTD,検索に不要なタグや文書 要素の削除,参照タグと外字コードの対応を定義する正規化パラメタのことです。これらの情報をまとめ て,SGML 定義情報といいます。

ファイルは,テキストエディタなどを使用して作成します。作成する列の種別によって必要なファイルは 異なります。作成する列の種別ごとに必要となるファイルを次の表に示します。

表 2‒4 文書検索プラグインの 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 文書の分割につい て,次の図に示します。

図 2‒3 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 文書中の改行コードの変換方法を次の表に示します。

表 2‒5 SGML 文書中の改行コードの変換方法

改行コードの前の文字 改行コードの後ろの文字 変換方法

1 バイト文字 1 バイト文字 改行コードをスペースに置換

1 バイト文字以外の文字 改行コードを削除

1 バイト文字以外の文字 1 バイト文字

1 バイト文字以外の文字

そのほかの改行コードの変換規則は次のとおりです。

• 文書(CDATA)の始めおよび終わりの改行コードは削除します。

• 改行コードだけの文字列は,一つの半角スペースに置き換えます。

• 改行コードが連続する場合は,一つの改行コードとして扱います。

(2) 正規化パラメタファイル

正規化パラメタファイルには,SGML 文書中のタグを制御するパラメタを記述します。正規化パラメタ

ファイルはテキストエディタなどで作成します。なお,SGML 文書中のタグの制御が必要ない場合,この ファイルを作成する必要はありません。

正規化パラメタファイルは,DTD 単位に作成します。つまり,構造化文書用の列に対して一つ作成します。

(a) 正規化パラメタファイルの構成内容

正規化パラメタファイルは,正規化パラメタと特定文字データ変換マップで構成されます。

正規化パラメタ

接続対象要素リスト

要素型名のリストです。非構造要素のうち,前後にある文字データを接続する要素を指定します。

ソース上では,指定した開始タグと対応する終了タグを削除する指定です。

削除対象要素リスト

要素型名のリストです。非構造要素のうち,内部にある下位要素や文字データを含めて,削除する 要素を指定します。ソース上では,指定したタグ,構造内に含まれるタグおよび内容(文字データ)

をすべて削除する指定です。

特定文字データ変換マップ

ある特定の文字データを,共通的な文字コードへ変換するための指定です。SGML の構文上,テキス ト中に直接記述できない文字(例えば"<"など)や外字などの変換方法もこのマップに含めます。

(b) 正規化パラメタファイルの記述形式

正規化パラメタの指定方法

正規化パラメタは,要素型名に対して実行するオペランドを指定します。

記述形式

[ELEMENT△LIST]<改行>

"要素型名"△{CONN|DELT}<改行>

オペランド

CONN:接続対象要素リスト DELT:削除対象要素リスト

注意事項

• テキスト形式で作成してください。

• 要素型名は重複して指定できません。

• <改行>は改行コードを表しています。

特定文字データ変換マップの指定方法

特定文字データ変換マップは次の形式で記述します。

記述形式

[CHANGE△CHARACTER△LIST]<改行>

共通的な文字コードへ変換する SGML 文書中の文字データ△変換する文字<改行>

注意事項

• 共通的な文字コードへ変換する特定の文字データは,DTD ファイルに特定文字の実体を示す キーワードとして,"SDATA"で宣言されている必要があります。

• SDATA は文字コードを定義していませんので,全文検索を実行するために文字コードを定義す る必要があります。

• テキスト形式で作成してください。

• SGML 文書中の値と変換する文字は 1 行で記述してください。

• 変換する文字に,改行コード(0x0a)は指定できません。

• <改行>は改行コードを表しています。

(c) 正規化パラメタファイルの記述例

正規化パラメタファイルの記述例を次の図に示します。

図 2‒4 正規化パラメタファイルの記述例

(3) SGML 文書の正規化の例

SGML 文書の正規化の例を次の図に示します。

図 2‒5 SGML 文書の正規化の例

ドキュメント内 HiRDB Text Search Plug-in Version 10 (ページ 73-79)