4.7 INDEXLISTメソッド

 クライアントがサーバにデータベースのインデックス一覧情報を検索要求するメソッドである。サーバは、リクエストで指定されたインデックスキーワードに対するインデックス一覧をレスポンスとして返す。尚、本メソッドはフレームにバンドルされている検索結果集合を更新しない。

4.7.1 リクエスト

4.7.1.1 Request-Line

        Request-Line    =       Method SP Handle SP Frame SP CATP-Version SP 
                                Request-Code SP Request-Phrase CRLF

 (1) Method

        Method          =       "INDEXLIST"

 (2) Handle

 GETHANDLEリクエストによって取得したハンドルを指定する。

 (3) Frame

 フレームには3桁の任意の数字を指定する。但し、このフレームの値はサーバにて参照されない。

 (4) CATP-Version

 クライアントがサポートしている最新のCATPバージョンを指定する。

 (5) Request-Code

 リクエストコードは、リクエストを表すコードである数字3桁の0を指定する。

        Request-Code    =       "000"   ; 数字3桁の0

 (6) Request-Phrase

 リクエストの説明句として、下記のトークンを指定する。

        Request-Phrase  =       "REQUEST"       

4.7.1.2 Request-Header

        Request-Header  =       Database-names
                                [Number-of-entries]

 (1) Database-names

 検索対象のデータベース名を指定する。データベース名はリスト形式で複数指定可能である。

        Database-names  =       "Database-names" ":" 1#Database-name CRLF
        Database-name   =       token

 (2) Number-of-entries

 データベースの検索の結果、取得したいインデックスの数を指定する。本フィールドは前方一致等のワイルドカード機能がサーバで実装されている場合に有効である。サーバは本値分のインデックス情報を必ず返送しなければいけないわけではない。本フィールドが省略された場合のデフォルト値はサーバの実装による。

        Number-of-entries       =       "Number-of-entries" ":" 1*DIGIT CRLF

4.7.1.3 Object-Header

 (1) Content-Length

 オブジェクトボディのレングスを指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。

4.7.1.4 Object-Body

 オブジェクトボディには検索対象のインデックスキーワードを指定する。

        Index-keyword   =       Tag ":" Value CRLF
        Tag             =       token   ; 検索対象タグ
        Value           =       text

4.7.2 レスポンス

4.7.2.1 Status-Line

        Status-Line     =       Method SP Handle SP Frame SP CATP-Version SP 
                                Status-Code SP Reason-Phrase CRLF

 (1) Method

 メソッドはクライアントがリクエストラインに指定したメソッドと同じものを指定する。

 (2) Handle

 ハンドルはクライアントがリクエストラインに指定したハンドルと同じものを指定する。

 (3) Frame

 フレームはクライアントがリクエストラインに指定したフレームと同じものを指定する。

 (4) CATP-Version

 CATPバージョンは、サーバで使用されるプロトコールのバージョンを指定する。クライアントがリクエストラインで指定したCATPバージョンが、サーバがサポートしているバージョンよりも古い場合、サーバはそのバージョンをサポートしていることが望まれる。その場合クライアント指定のCATPバージョンをステータスラインに指定する。

 (5) Status-CodeとReason-Phrase

 サーバでのリクエストに対する処理結果を意味する。各コードの詳細並びにReason-Phraseはサーバの実装による。

  1. 2xx     :       成功
     本メソッドがサーバにおいて正常に処理されたことを意味する。
  2. 4xx     :       クライアントエラー
     リクエストに間違った構文があるか、実行がもともと不可能である。
  3. 5xx     :       サーバエラー
     サーバはリクエストを遂行できなかったことを意味する。

4.7.2.2 Response-Header

        Response-Header =       Number-of-fields-returned

 (1) Result-count

 データベース検索の結果ヒットしたインデックス数を指定する。

        Result-count    =       "Result-count" ":" 1*DIGIT CRLF

 (1) Number-of-fields-returned

 オブジェクトボディ(Object-Body)に設定されたインデックス情報の数を指定する。

        Number-of-fields-returned       =       "Number-of-fields-returned" ":" 1*DIGIT CRLF

4.7.2.3 Object-Header

 (1) Content-Length

 オブジェクトボディのレングスを指定する。

 (2) Encoding

 オブジェクトボディのエンコーディング方式を指定する。オブジェクトボディが存在しない場合は省略しても良い。

4.7.2.4 Object-Body

 オブジェクトボディには検索の結果、該当するインデックス情報レコードまたは診断レコードを設定する。インデックス情報レコードは、インデックス情報をフィールドとする単一レコードである。

 尚、下記の場合はオブジェクトボディ部にインデックス情報レコードは設定されない。

        Object-Body             =       Diagnostic-record | Index-info-record
        Index-info-record       =       Record  
        Record                  =       1*Field
        Field                   =       Index-keyword "=" Number-of-record CRLF
        Index-keyword           =       token   ; インデックスキーワード
        Number-of-record        =       1*DIGIT ; インデックスキーワードに対応するデータベースレコード数