(57)【要約】【課題】問い合わせ式がＵＲＬパラメータの制限文字数を超えていても、そのために検索処理がエラーとなるのを防止できるようにする。【解決手段】生成部３４は、クライアント２０-i（ｉ＝１）からのリクエストに含まれる検索条件の指定する検索のための問い合わせ式を生成する。この問い合わせ式はパラメータ情報に対応付けてテーブル３１２-1に登録される。検索処理部３８は、生成された問い合わせ式に基づきＸＭＬ文書システム１０を対象とする検索処理を行う。検索結果は検索に用いられた問い合わせ式に対応付けられたパラメータ情報を含むように加工されてクライアントに返される。取得部３５はクライアントからのリクエストのＵＲＬがパラメータ情報を含む場合、テーブル３１２-1により当該情報と対応付けられている問い合わせ式を取得する。検索処理部３８は取得された問い合わせ式に基づき検索処理を実行する。【選択図】      図２
2008009747.tif 000002
【特許請求の範囲】
【請求項１】
クライアントから通知される、ＵＲＬで示されるＨＴＴＰリクエストを受信する受信手段と、
前記受信手段によって受信されたＨＴＴＰリクエストが検索条件を含む場合、当該検索条件の指定する構造化文書検索のための問い合わせ式を生成する問い合わせ式生成手段と、
前記問い合わせ式生成手段によって生成された問い合わせ式を当該問い合わせ式よりも短い文字列で構成される固有のパラメータ情報に対応付けて保持するためのテーブルを格納する記憶手段と、
前記問い合わせ式生成手段によって生成された問い合わせ式に従って構造化文書データベースを有する構造化文書システムにアクセスすることにより、前記構造化文書データベースから該当する構造化文書を検索するための検索処理を実行する検索処理手段と、
前記検索処理手段による検索処理によって得られる検索結果を、当該検索処理に用いられた問い合わせ式に前記テーブルによって対応付けられたパラメータ情報を含む検索結果に加工する検索結果加工手段と、
前記検索結果加工手段によって加工された検索結果を対応する要求元のクライアントに返す送信手段と、
前記受信手段によって受信されたＨＴＴＰリクエストが前記固有のパラメータ情報を含む場合に、前記テーブルによって当該パラメータ情報と対応付けられている問い合わせ式を取得する問い合わせ式取得手段とを具備し、
前記検索処理手段は、前記問い合わせ式取得手段によって問い合わせ式が取得された場合、当該取得された問い合わせ式に基づいて検索処理を実行する
ことを特徴とするＷｅｂサーバ。
【請求項２】
前記テーブルをクライアントと前記Ｗｅｂサーバとの接続単位に生成し、クライアントと前記Ｗｅｂサーバとの接続が切断された際に当該クライアントに対応する前記テーブルを削除するテーブル管理手段を更に具備することを特徴とする請求項１記載のＷｅｂサーバ。
【請求項３】
前記問い合わせ式に実体参照が含まれている場合、当該実体参照を元の文字列に置換する実体参照置換手段を更に具備することを特徴とする請求項１記載のＷｅｂサーバ。
【請求項４】
前記加工された検索結果は、検索された構造化文書数が前記要求元のクライアントに１回で表示される文書数の上限を超えている場合に、後続するまたは先行する検索結果をユーザからの指示に応じて当該クライアントが前記Ｗｅｂサーバに要求するのに用いられる次の検索のためのＨＴＴＰリクエストを含み、前記加工された検索結果に含まれるパラメータ情報は、当該次の検索のためのＨＴＴＰリクエストの一部をなすことを特徴とする請求項１記載のＷｅｂサーバ。
【請求項５】
クライアントから通知されるＨＴＴＰリクエストに基づいて、構造化文書データベースを有する構造化文書システムにアクセスするＷｅｂサーバに適用されるプログラムであって、
前記Ｗｅｂサーバに、
クライアントから通知される、ＵＲＬで示されるＨＴＴＰリクエストを受信するステップと、
前記受信されたＨＴＴＰリクエストが検索条件を含む場合、当該検索条件の指定する構造化文書検索のための問い合わせ式を生成するステップと、
前記生成された問い合わせ式を当該問い合わせ式よりも短い文字列で構成される固有のパラメータ情報に対応付けてテーブルに保持するステップと、
前記生成された問い合わせ式に従って前記構造化文書システムにアクセスすることにより、前記構造化文書データベースから該当する構造化文書を検索するための検索処理を実行するステップと、
前記検索処理によって得られる検索結果を、当該検索処理に用いられた問い合わせ式に前記テーブルによって対応付けられたパラメータ情報を含む検索結果に加工するステップと、
前記加工された検索結果を対応する要求元のクライアントに返すステップと、
前記受信されたＨＴＴＰリクエストが前記固有のパラメータ情報を含む場合に、当該パラメータ情報を前記テーブルによって対応付けられている問い合わせ式に置換するステップと、
前記置換された問い合わせ式に従って前記構造化文書システムにアクセスすることにより、前記構造化文書データベースから該当する構造化文書を検索するための検索処理を実行するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからのＨＴＴＰ（Hyper Text Transfer Protocol）リクエストに基づいて構造化文書システムにアクセスするＷｅｂサーバに係り、特に当該構造化文書システムを対象に構造化文書検索のための問い合わせ式に基づく検索処理を行うのに好適なＷｅｂサーバ及びプログラムに関する。
【背景技術】
【０００２】
一般に、Ｗｅｂ環境において、クライアント（クライアント端末）からＷｅｂサーバ（Ｗｅｂサーバコンピュータ）にアクセスする場合、ＨＴＴＰを用いて当該Ｗｅｂサーバにリクエストが通知される。例えば、クライアントがＵＲＬ（Uniform Resource Locator）で指定される情報を取得する必要がある場合、ＨＴＴＰのＧＥＴメソッドを使用して当該クライアントからＷｅｂサーバ（Ｗｅｂサーバ上で動作するＷｅｂアプリケーション）にリクエストが通知される。このリクエストはＨＴＴＰリクエストと呼ばれる。
【０００３】
ＧＥＴメソッドでは、ＵＲＬパラメータの文字数に制限がある（例えば、非特許文献１参照）。このため、制限を超える文字数のＵＲＬパラメータを送信することができない。ＵＲＬパラメータは、ＵＲＬで記述される「ＨＴＴＰリクエストのパラメータ」を示す。パラメータは、「パラメータ名＝パラメータ値」で表される。
【非特許文献１】チャック・ムシアーノ（Chuck Musciano），ビル・ケネディ（Bill Kennedy）共著，田辺 茂也監訳，渡辺知夫，大西照代共訳，「ＨＴＭＬ第３版」，オライリー（O'Reilly）ジャパン，１９９９年１０月２９日，ｐ．４３４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述のように、クライアントからＷｅｂサーバにＨＴＴＰのＧＥＴメソッドを使用してＨＴＴＰリクエストを通知する場合、ＵＲＬパラメータの文字数制限のために、この制限を超える文字数のＵＲＬパラメータを送信することができない。このような現象は、次のような場合に発生する。
【０００５】
今、クライアントからＷｅｂサーバに、ＧＥＴメソッドを用いてＨＴＴＰリクエストが通知されたものとする。また、このリクエストが、ユーザの指定した構造化文書検索条件から構造化文書検索のための問い合わせ式（文書検索式）を生成して、当該問い合わせ式に従って構造化文書を検索することを要求するＵＲＬパラメータを含むものとする。Ｗｅｂサーバは、このＵＲＬパラメータに基づいて問い合わせ式を生成する。構造化文書が例えばＸＭＬ（Extensible Markup Language）文書の場合、問い合わせ式としてＸＰａｔｈ式が生成される。
【０００６】
Ｗｅｂサーバは、生成されたＸＰａｔｈ式に基づいて、ＸＭＬ文書システムによって管理されているＸＭＬ文書データベースから該当するＸＭＬ文書を検索するための検索処理を実行する。Ｗｅｂサーバは、この検索処理の結果（検索結果）を例えばＸＭＬ形式でリクエスト元のクライアントに返す。この検索結果は、検索された文書の一覧（検索結果一覧）を含む。この検索結果一覧はクライアントによって例えばＨＴＭＬ形式に変換されて、当該クライアントの表示画面に表示される。
【０００７】
検索結果一覧に掲載される文書の数は、検索された文書の数が例えばユーザによって指定された数を超えている場合、当該指定数に抑えられる。この場合、検索結果一覧は、次の検索結果一覧（ページ）をユーザが指定するのに用いられるリンク（次ページリンク）を表示するための情報（タグ情報）と当該リンクと対応付けられているＵＲＬを含む。このＵＲＬは、上記生成されたＸＰａｔｈ式をＵＲＬパラメータとして含む。
【０００８】
ユーザは、現在表示画面に表示されている検索結果一覧の次の検索結果一覧を必要とする場合、表示画面に表示されている次ページリンクをクリックする。すると、クライアントは、クリックされた次ページリンクに対応付けられているＵＲＬ中のＸＰａｔｈ式をＵＲＬパラメータの値とする新たなＨＴＴＰリクエストを、ＧＥＴメソッドによりＷｅｂサーバに通知する。しかし、このＵＲＬパラメータの文字数がＧＥＴメソッドでのＵＲＬパラメータの制限文字数を超えている場合、クライアントからＷｅｂサーバには、制限文字数を超えるＵＲＬパラメータ部分は送信されない。つまりＷｅｂサーバには、ＸＰａｔｈ式の一部しか通知されない。この場合、新たなＨＴＴＰリクエストに基づくＷｅｂサーバによる検索処理はエラーとなる。
【０００９】
このように従来技術においては、クライアントからＷｅｂサーバに通知されるＨＴＴＰリクエストに含まれている構造化文書検索のためのＸＰａｔｈ式（つまり問い合わせ式）がＵＲＬパラメータの制限文字数を超えている場合、Ｗｅｂサーバによる検索処理がエラーとなるという問題がある。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、問い合わせ式がＵＲＬパラメータの制限文字数を超えていても検索エラーを防止できるＷｅｂサーバ及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１つの観点によればＷｅｂサーバが提供される。このＷｅｂサーバは、クライアントから通知される、ＵＲＬで示されるＨＴＴＰリクエストを受信する受信手段と、前記受信手段によって受信されたＨＴＴＰリクエストが検索条件を含む場合、当該検索条件の指定する構造化文書検索のための問い合わせ式を生成する問い合わせ式生成手段と、前記問い合わせ式生成手段によって生成された問い合わせ式を当該問い合わせ式よりも短い文字列で構成される固有のパラメータ情報に対応付けて保持するためのテーブルを格納する記憶手段と、前記問い合わせ式生成手段によって生成された問い合わせ式に従って構造化文書データベースを有する構造化文書システムにアクセスすることにより、前記構造化文書データベースから該当する構造化文書を検索するための検索処理を実行する検索処理手段と、前記検索処理手段による検索処理によって得られる検索結果を、当該検索処理に用いられた問い合わせ式に前記テーブルによって対応付けられたパラメータ情報を含む検索結果に加工する検索結果加工手段と、前記検索結果加工手段によって加工された検索結果を対応する要求元のクライアントに返す送信手段と、前記受信手段によって受信されたＨＴＴＰリクエストが前記固有のパラメータ情報を含む場合に、前記テーブルによって当該パラメータ情報と対応付けられている問い合わせ式を取得する問い合わせ式取得手段とを具備する。前記検索処理手段は、前記問い合わせ式取得手段によって問い合わせ式が取得された場合、当該取得された問い合わせ式に基づいて検索処理を実行する。
【発明の効果】
【００１２】
本発明によれば、クライアントからのＨＴＴＰリクエストによって通知された検索条件に基づいて生成された問い合わせ式に従う検索処理の結果（検索結果）をＷｅｂサーバから当該クライアントに返す際に、当該問い合わせ式に代えて、当該問い合わせ式に対応付けられた当該問い合わせ式よりも短い文字列で構成されるパラメータ情報を当該検索結果に含めることにより、次の検索のためにクライアントから通知されるＨＴＴＰリクエストに、当該問い合わせ式に対応付けられたパラメータ情報を含めさせることができる。これにより、ＨＴＴＰリクエストに含まれるパラメータ情報に対応付けられた問い合わせ式がＵＲＬパラメータの制限文字数を超えていても、当該ＨＴＴＰリクエストがＵＲＬパラメータの制限文字数の影響を受けることを防止できる。つまり、ＨＴＴＰリクエストの一部がＷｅｂサーバに送信されない不具合が発生するのを防止できる。しかも本発明においては、このＨＴＴＰリクエストに含まれているパラメータ情報を元の問い合わせ式に戻して、当該元の問い合わせ式に基づいて検索処理を実行するため、当該問い合わせ式がＵＲＬパラメータの制限文字数を超えていても、そのために検索処理がエラーとなるのを防止できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明をＸＭＬ文書検索システムに適用した実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るＸＭＬ文書検索システムのハードウェア構成を示すブロック図である。このシステムは、ＸＭＬ文書システム１０と、クライアント（クライアント端末）２０-1，…，２０-nと、Ｗｅｂサーバ（Ｗｅｂサーバコンピュータ）３０と、ネットワーク４０とから構成される。ＸＭＬ文書システム１０、クライアント２０-1〜２０-n、及びＷｅｂサーバ３０は、ネットワーク４０に接続されている。
【００１４】
ＸＭＬ文書システム１０はＸＭＬ文書群を管理する。ＸＭＬ文書システム１０は、ＸＭＬ文書群を格納するＸＭＬ文書データベース（ＸＭＬ文書ＤＢ）１１を含む。このＸＭＬ文書ＤＢ１１の名前（ＤＢ名）は「ｔｅｓｔ」であるものとする。
【００１５】
クライアント２０-i（ｉ＝１，…，ｎ）上では、Ｗｅｂサーバ３０を利用するクライアントソフトウェアが動作する。クライアントソフトウェアは例えばＷｅｂブラウザである。クライアント２０-iは、ＸＭＬ文書システム１０によって管理されているＸＭＬ文書を必要とする場合、ＨＴＴＰのＧＥＴメソッドを使用して当該クライアント２０-iからＷｅｂサーバ３０にＨＴＴＰリクエストを通知する。このＨＴＴＰリクエストは、Ｗｅｂブラウザによって発行される。
【００１６】
Ｗｅｂサーバ３０は、主として、コンピュータ本体３１０と、ハードディスクドライブ（ＨＤＤ）のような外部記憶装置３２０とから構成される。コンピュータ本体３１０は主メモリのようなメモリ３１１を含む。外部記憶装置３２０は、Ｗｅｂサーバアプリケーションプログラム（以下、Ｗｅｂアプリケーションと称する）３２１を格納する。このＷｅｂアプリケーション３２１は、外部記憶装置３２０からメモリ３１１にロードされることにより、Ｗｅｂサーバ３０（のコンピュータ本体３１０に含まれている図示せぬＣＰＵ）によって実行される。Ｗｅｂアプリケーション３２１は、ＸＭＬ文書システム１０を対象に、クライアント２０-iから要求された検索処理を実行する機能を有する。Ｗｅｂアプリケーション３２１には、ユーザによって指定されたパラメータ（ｘｐａｒａｍパラメータ）からＸＰａｔｈ式を生成するのに必要なテンプレート（ＸＰａｔｈ式生成テンプレート）３２２が付加されている。
【００１７】
図２は、図１に示されるＷｅｂサーバ３０がＷｅｂアプリケーション３２１を実行することによって実現される当該Ｗｅｂサーバ３０の機能構成を示すブロック図である。
【００１８】
Ｗｅｂサーバ３０は、受信部３１と、送信部３２と、テーブル管理部３３と、ＸＰａｔｈ式生成部３４と、ＸＰａｔｈ式取得部３５と、判定部３６と、実体参照置換部３７と、検索処理部３８と、検索結果加工部３９とを含む。
【００１９】
受信部３１は、クライアント２０-iとＷｅｂサーバ３０との間にセッション（ＨＴＴＰセッション）が設定されている接続状態において、当該クライアント２０-iからネットワーク４０を介してＨＴＴＰリクエストが通知された場合、当該ＨＴＴＰリクエストを受信する。
【００２０】
送信部３２は、受信部３１によって受信されたＨＴＴＰリクエストの指定する情報、例えば検索結果を、当該ＨＴＴＰリクエストを通知したクライアント（要求元クライアント）２０-iに当該リクエストに対する応答として返す。
【００２１】
テーブル管理部３３は、Ｗｅｂサーバ３０との間にセッションが設定されているクライアント２０-i毎に生成されるＸＰａｔｈテーブルを管理する。このＸＰａｔｈテーブルは、メモリ３１１に格納される。テーブル管理部３３は、クライアント２０-iとＷｅｂサーバ３０との間のセッションが切断された場合、当該クライアント２０-iに対応するＸＰａｔｈテーブルをメモリ３１１から削除する。
【００２２】
ＸＰａｔｈテーブルは、ＸＰａｔｈ式をＵＲＬパラメータ値と対応付けて保持する。ＵＲＬパラメータ値は、文字列「ｘｐａｔｈｐｒｅｖ」＋「対応するＸＰａｔｈ式が保持されているＸＰａｔｈテーブルのインデックス値」によって表される。この場合、ＸＰａｔｈテーブルの＊番目（＊＝０，１…）のエントリ（第＊エントリ）に保持されるＸＰａｔｈ式は、ＵＲＬパラメータとして用いられるｘｐａｔｈパラメータの値（ｘｐａｔｈパラメータ値）「ｘｐａｔｈｐｒｅｖ＊」に対応付けられる。
【００２３】
図２の例では、クライアント２０-1及び２０-nにそれぞれ対応するＸＰａｔｈテーブル３１２-1及び３１２-nがメモリ３１１に格納されている。メモリ３１１には、Ｗｅｂアプリケーション３２１が当該メモリ３１１にロードされた際に、当該Ｗｅｂアプリケーション３２１に付加されているＸＰａｔｈ式生成テンプレート３２２も格納される。
【００２４】
ＸＰａｔｈ式生成部３４は、受信部３１によって受信されたＨＴＴＰリクエストによってＸＰａｔｈの生成が指示されている場合、当該ＵＲＬに含まれているｘｐａｒａｍパラメータからＸＰａｔｈ式を生成する。ＸＰａｔｈ式生成部３４は、このＸＰａｔｈ式の生成をＸＰａｔｈ式生成テンプレート３２２を用いて行う。
【００２５】
ＸＰａｔｈ式取得部３５は、受信部３１によって受信されたＨＴＴＰリクエストにｘｐａｔｈパラメータが含まれている場合、対応するＨＴＴＰリクエストの要求元クライアントに固有のＸＰａｔｈテーブルによって当該ｘｐａｔｈパラメータの値（ｘｐａｔｈパラメータ値）に対応付けられたＸＰａｔｈ式を取得する。つまりＸＰａｔｈ式取得部３５は、ｘｐａｔｈパラメータ値とＸＰａｔｈテーブルとに基づいて、当該ｘｐａｔｈパラメータ値に対応付けて当該ＸＰａｔｈテーブルに格納されているＸＰａｔｈ式を取得する。
【００２６】
判定部３６は、ＧＥＴメソッドによって通知されるＨＴＴＰリクエストが受信部３１によって受信された場合、ＸＰａｔｈ式生成部３４によるＸＰａｔｈ式生成またはＸＰａｔｈ式取得部３５によるＸＰａｔｈ式取得のいずれを行わせるかを判定する。
【００２７】
実体参照置換部３７は、ＸＰａｔｈ式生成部３４によって生成されたＸＰａｔｈ式またはＸＰａｔｈ式取得部３５によって取得されたＸＰａｔｈ式に実体参照（entity reference）が含まれている場合、当該実体参照を元の文字列に置換する。
【００２８】
検索処理部３８は、実体参照置換部３７から実体参照を含まないＸＰａｔｈ式を受けて、当該ＸＰａｔｈ式に従ってＸＭＬ文書システム１０を対象とする検索処理を行う。
【００２９】
検索結果加工部３９は、検索処理部３８による検索処理によって得られる検索結果を加工する。加工された検索結果は、対応する検索処理に用いられた問い合わせ式にＸＰａｔｈテーブルによって対応付けられたｘｐａｔｈパラメータ値を含む。
【００３０】
次に、本実施形態におけるＷｅｂサーバ３０の動作について、図３乃至図５の動作の流れを表す図、並びに図６乃至図８のフローチャートを参照して説明する。
【００３１】
まず、クライアント２０-1からＷｅｂサーバ３０に対して接続リクエストが通知されることにより、クライアント２０-1とＷｅｂサーバ３０のポート番号が８０８０のポートとの間にセッション（コネクション）が設定されたものとする。この状態で、クライアント２０-1のディスプレイに、図３に示される入力画面２０１がＷｅｂブラウザによって表示されているものとする。入力画面２０１は、検索条件として書籍名及び著者名をそれぞれ入力するための入力フィールド２０２及び２０３を有する。入力画面２０１はまた、検索結果一覧に表示される文書数の上限を表す表示件数を入力するための入力フィールド２０４を有する。
【００３２】
今、入力画面２０１が表示されている状態で、ユーザが書籍名及び著者名として、それぞれ「ＸＭＬＤＢ」及び「東京太郎」を入力したものとする。またユーザが、表示件数として１００を入力したものとする。
【００３３】
クライアント２０-1のＷｅｂブラウザは、入力画面２０１上でのユーザの入力操作に基づき、当該ユーザによって指定された検索条件を満たすＸＭＬ文書の所在を指定する図３に示すＵＲＬ２０５を生成する。このＵＲＬ２０５は、ユーザによって指定された検索条件を満たすＸＭＬ文書の一覧を取得するのに用いられる。
【００３４】
ＵＲＬ２０５は、ホスト名及びポート番号「ｌｏｃａｌｈｏｓｔ：８０８０」と、ｘｃｌａｓｓパラメータ「ｘｃｌａｓｓ＝ｐａｒａｍｑｕｅｒｙ」と、ｘｐａｒａｍパラメータ「ｘｐａｒａｍ１＝ＸＭＬＤＢ」及び「ｘｐａｒａｍ２＝東京太郎」と、ｘｒｓｃｏｕｎｔパラメータ「ｘｒｓｃｏｕｎｔ＝１００」と、ｘｒｓｐｏｓパラメータ「ｘｒｓｐｏｓ＝１」の各パラメータ（ＵＲＬパラメータ）を含む。
【００３５】
ホスト名及びポート番号「ｌｏｃａｌｈｏｓｔ：８０８０」中の「ｌｏｃａｌｈｏｓｔ」は、Ｗｅｂサーバ３０のホスト名を示し、「８０８０」はクライアント２０-1との間に設定されているＷｅｂサーバ３０のポートのポート番号を示す。クライアント２０-1は、このポート番号「８０８０」のポートを介してＷｅｂサーバ３０と通信することができる。
【００３６】
ｘｃｌａｓｓパラメータ「ｘｃｌａｓｓ＝ｐａｒａｍｑｕｅｒｙ」は、ｘｃｌａｓｓパラメータ名「ｘｃｌａｓｓ」とｘｃｌａｓｓパラメータ値「ｐａｒａｍｑｕｅｒｙ」とを含む。このｘｃｌａｓｓパラメータは、処理の内容を指定するパラメータである。ｘｃｌａｓｓパラメータによって「ＸＰａｔｈ式生成及び検索」を指定する場合、上記ｘｃｌａｓｓパラメータ値「ｐａｒａｍｑｕｅｒｙ」が用いられる。ｘｃｌａｓｓパラメータによって「ＸＰａｔｈ式による検索」のみを指定する場合、ｘｃｌａｓｓパラメータ値「ｑｕｅｒｙ」が用いられる。
【００３７】
ｘｐａｒａｍパラメータ「ｘｐａｒａｍ１＝ＸＭＬＤＢ」は、ｘｐａｒａｍパラメータ名「ｘｐａｒａｍ１」とｘｐａｒａｍパラメータ値「ＸＭＬＤＢ」とを含む。ｘｐａｒａｍパラメータ「ｘｐａｒａｍ２＝東京太郎」は、ｘｐａｒａｍパラメータ名「ｘｐａｒａｍ２」とｘｐａｒａｍパラメータ値「東京太郎」とを含む。この２つのｘｐａｒａｍパラメータにより、入力画面２０１上でユーザが入力した検索条件としてのデータ「ＸＭＬＤＢ」及び「東京太郎」をＷｅｂサーバ３０に通知することができる。
【００３８】
ｘｒｓｃｏｕｎｔパラメータ「ｘｒｓｃｏｕｎｔ＝１００」は、ｘｒｓｃｏｕｎｔパラメータ名「ｘｒｓｃｏｕｎｔ」とｘｒｓｃｏｕｎｔパラメータ値「１００」とを含む。このｘｒｓｃｏｕｎｔパラメータにより、表示件数として１００件が指定される。
【００３９】
ｘｒｓｐｏｓパラメータ「ｘｒｓｐｏｓ＝１」は、ｘｒｓｐｏｓパラメータ名「ｘｒｓｐｏｓ」とｘｒｓｐｏｓパラメータ値「１」とを含む。このｘｒｓｐｏｓパラメータにより、表示開始位置が指定される。
【００４０】
クライアント２０-1は、生成されたＵＲＬ２０５を含むＨＴＴＰリクエスト２０６をＧＥＴメソッドによりＷｅｂサーバ３０にネットワーク４０を介して通知する。このＨＴＴＰリクエスト２０６は、Ｗｅｂサーバ３０の受信部３１によって受信される。するとＷｅｂサーバ３０では、以下に述べる動作が行われる。
【００４１】
まず、Ｗｅｂサーバ３０の判定部３６は、受信部３１によって受信されたＨＴＴＰリクエスト２０６のＵＲＬ（ここではＵＲＬ２０５）にＸＰａｔｈ式の生成及び検索（ｐａｒａｍｑｕｅｒｙ）を指定するｘｃｌａｓｓパラメータ（ｘｃｌａｓｓ＝ｐａｒａｍｑｕｅｒｙ）が含まれているかを判定する（ステップＳ１）。本実施形態のように、ＸＰａｔｈ式の生成及び検索を指定するｘｃｌａｓｓパラメータが含まれているならば、判定部３６は、ＸＰａｔｈ式の生成及び検索が指示されているものと判断する。この場合、判定部３６はＸＰａｔｈ式生成部３４を起動する。
【００４２】
するとＸＰａｔｈ式生成部３４は、メモリ３１１にロードされているＸＰａｔｈ式生成テンプレート３２２をメモリ３１１のワーク領域にコピーする（ステップＳ２）。ＸＰａｔｈ式生成テンプレート３２２は、図３に示されるように、２つのｘｐａｒａｍパラメータ名「ｘｐａｒａｍ１」及び「ｘｐａｒａｍ２」を含む。このＸＰａｔｈ式生成テンプレート３２２は、入力画面２０１に配置される（検索条件として書籍名及び著者名を入力するための）入力フィールド２０２及び２０３に対応付けて予め用意されている。
【００４３】
ＸＰａｔｈ式生成部３４は、メモリ３１１のワーク領域にコピーされたＸＰａｔｈ式生成テンプレート３２２中のｘｐａｒａｍパラメータ名「ｘｐａｒａｍ１」及び「ｘｐａｒａｍ２」を、受信されたＨＴＴＰリクエスト２０６のＵＲＬ２０５に含まれている当該ｘｐａｒａｍパラメータ名「ｘｐａｒａｍ１」及び「ｘｐａｒａｍ２」のｘｐａｒａｍパラメータ値「ＸＭＬＤＢ」及び「東京太郎」（つまり検索条件としてのｘｐａｒａｍパラメータ値）に置き換えるｘｐａｒａｍ置換処理を行う（ステップＳ３）。この置換処理により、ＸＰａｔｈ式生成部３４は、ＸＰａｔｈ式生成テンプレート３２２中のｘｐａｒａｍパラメータ名「ｘｐａｒａｍ１」及び「ｘｐａｒａｍ２」がｘｐａｒａｍパラメータ値「ＸＭＬＤＢ」及び「東京太郎」に置き換えられた、図３に示されるＸＰａｔｈ式３２３を生成する。
【００４４】
このようにＸＰａｔｈ式生成部３４は、ＵＲＬ２０５がｘｃｌａｓｓパラメータ「ｘｃｌａｓｓ＝ｐａｒａｍｑｕｅｒｙ」（ＸＰａｔｈ式の生成を指定するパラメータ）と検索条件とを含む場合、当該検索条件の指定するＸＭＬ文書検索のためのＸＰａｔｈ式（問い合わせ式）３２３を、ＸＰａｔｈ式生成テンプレート３２２に基づいて生成する。ＸＰａｔｈ式生成部３４によって生成されたＸＰａｔｈ式３２３はテーブル管理部３３に渡される。
【００４５】
テーブル管理部３３は、ＸＰａｔｈ式生成部３４からＸＰａｔｈ式３２３を受け取ると、当該ＸＰａｔｈ式３２３に対応するＨＴＴＰリクエスト２０６を通知したクライアント２０-1に固有のＸＰａｔｈテーブル３１２-1がメモリ３１１に存在するかを判定する（ステップＳ４）。ここでは、図２の例とは異なって、メモリ３１１にＸＰａｔｈテーブル３１２-1が存在しないものとする。
【００４６】
メモリ３１１にＸＰａｔｈテーブル３１２-1が存在しない場合、テーブル管理部３３はメモリ３１１内にＸＰａｔｈテーブル３１２-1を生成する（ステップＳ５）。次にテーブル管理部３３は、このＸＰａｔｈテーブル３１２-1の任意のエントリ、例えば先頭エントリ（第０エントリ）を指定するインデックス値（エントリ番号）０で決まるＵＲＬパラメータ値（ｘｐａｔｈパラメータ値）「ｘｐａｔｈｐｒｅｖ＋インデックス値０」、つまり「ｘｐａｔｈｐｒｅｖ０」を生成する（ステップＳ６）。
【００４７】
テーブル管理部３３は、生成されたｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」とＸＰａｔｈ式３２３との対を、図３に示されるようにＸＰａｔｈテーブル３１２-1の先頭エントリに登録する（ステップＳ７）。ｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」は、ＸＰａｔｈ式３２３よりも短い文字列で構成される。つまりテーブル管理部３３は、ＸＰａｔｈ式３２３を、当該ＸＰａｔｈ式３２３よりも短い文字列（ＵＲＬパラメータの制限文字数を超えない文字列）で構成されるｘｐａｔｈパラメータ値（ＵＲＬパラメータ値）に対応付けて、ＸＰａｔｈテーブル３１２-1に登録（格納）する。
【００４８】
これに対し、図２の例のようにＸＰａｔｈテーブル３１２-1が存在するならば（ステップＳ５）、テーブル管理部３３は、ＸＰａｔｈ式生成部３４によって生成されたＸＰａｔｈ式３２３が既に当該ＸＰａｔｈテーブル３１２-1に登録されているかを判定する（ステップＳ８）。
【００４９】
もし、ＸＰａｔｈ式３２３がＸＰａｔｈテーブル３１２-1に登録されていないならば、テーブル管理部３３は当該ＸＰａｔｈテーブル３１２-1の空きエントリを確保する（ステップＳ９）。この空きエントリがＸＰａｔｈテーブル３１２-1の第＊番目のエントリ、つまりＸＰａｔｈテーブル３１２-1のインデックス値＊で表される第＊エントリであるものとする。この場合、テーブル管理部３３は、ＸＰａｔｈテーブル３１２-1の第＊エントリを指定するインデックス値＊で決まるＵＲＬパラメータ値（ｘｐａｔｈパラメータ値）「ｘｐａｔｈｐｒｅｖ＊」を生成する（ステップＳ１０）。ｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ＊」は、ＸＰａｔｈ式３２３よりも短い文字列で構成される。
【００５０】
テーブル管理部３３は、生成されたｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ＊」とＸＰａｔｈ式３２３との対を、ＸＰａｔｈテーブル３１２-1の第＊エントリに登録する（ステップＳ１１）。そしてテーブル管理部３３は、このＸＰａｔｈ式３２３を実体参照置換部３７に渡す。
【００５１】
一方、ＸＰａｔｈ式３２３がＸＰａｔｈテーブル３１２-1に登録されているならば（ステップＳ８）、テーブル管理部３３は、ステップＳ９乃至Ｓ１１を行わずに、当該ＸＰａｔｈ式３２３を実体参照置換部３７に渡す。これにより、ＸＰａｔｈ式がＸＰａｔｈテーブル３１２-1に徒に登録されるのを防止できる。
【００５２】
実体参照置換部３７は、テーブル管理部３３からＸＰａｔｈ式３２３を受け取ると、当該ＸＰａｔｈ式３２３に実体参照が含まれているかを判定する（ステップＳ１２）。本実施形態において、ＸＰａｔｈ式３２３には実体参照は含まれていない。この実体参照の詳細については後述する。
【００５３】
ＸＰａｔｈ式３２３に実体参照が含まれていない場合、実体参照置換部３７は当該ＸＰａｔｈ式３２３をそのまま検索処理部３８に渡す。検索処理部３８は実体参照置換部３７からＸＰａｔｈ式３２３を受け取るとＸＭＬ文書システム１０にアクセスし、当該ＸＰａｔｈ式３２３に従って周知の検索処理を実行する（ステップＳ１４）。これにより検索処理部３８は、ＸＭＬ文書システム１０のＸＭＬ文書ＤＢ１１に格納されている文書の集合から、ＸＰａｔｈ式３２３に合致するＸＭＬ文書群を取得する（ステップＳ１５）。ここで、ＸＰａｔｈ式３２３に合致するＸＭＬ文書の数が、ＵＲＬ２０５中のｘｒｓｃｏｕｎｔパラメータ「ｘｒｓｃｏｕｎｔ＝１００」で指定される表示件数「１００」を超えているものとする。この場合、検索処理部３８は、ＸＰａｔｈ式３２３に合致するＸＭＬ文書群のうちの先頭の１００件を、ＸＰａｔｈ式３２３に従う検索処理の結果（検索結果）として取得する。検索処理部３８によって取得された検索結果は検索結果加工部３９に渡される。
【００５４】
検索結果加工部３９は、検索処理部３８によって取得された検索結果を受け取ると、当該検索結果を例えば図４に示すＸＭＬ形式の検索結果３２４（つまり検索結果を表すＸＭＬ文書）に加工する（ステップＳ１６）。この検索結果３２４は、１００件のＸＭＬ文書の一覧である検索結果一覧３２５と、次ページ表示要素（ＮＥＸＴＵＲＬ要素）３２６とを含む。
【００５５】
検索結果一覧３２５は、検索されたＸＭＬ文書の所在を示すＵＲＬの一覧である。次ページ表示要素３２６は、次ページを表示するタグ（＜ＮＥＸＴＵＲＬ＞タグ）を含む。次ページ表示要素３２６はまた、次ページ（後続の１００件）をユーザからの指示に応じてクライアント２０-1がＷｅｂサーバ３０に要求するのに用いられる次の検索のためのＨＴＴＰリクエスト２０７を当該要素３２６の内容として含む。このＨＴＴＰリクエスト２０７は、次ページ（後続の１００件）の所在を指定するＵＲＬ３２８から構成される。
【００５６】
次ページ表示要素３２６中のＵＲＬ３２８（ＨＴＴＰリクエスト３２７）は、ホスト名及びポート番号「ｌｏｃａｌｈｏｓｔ：８０８０」とｘｐａｔｈパラメータとを含む。従来技術であれば、ｘｐａｔｈパラメータのｘｐａｔｈパラメータ値として、検索結果一覧３２５を取得するのに用いられたＸＰａｔｈ式３２３が設定される。これに対して本実施形態では、ｘｐａｔｈパラメータ値として、ＸＰａｔｈ式３２３に代えて、図４に示すように、当該ＸＰａｔｈ式３２３とＸＰａｔｈテーブル３１２-1によって対応付けられている「ｘｐａｔｈｐｒｅｖ０」が設定される。
【００５７】
このように検索結果加工部３９は、検索処理部３８による検索処理によって取得された検索結果を、当該検索処理に用いられたＸＰａｔｈ式３２３にＸＰａｔｈテーブル３１２-1によって対応付けられているｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」（パラメータ情報）を（ＨＴＴＰリクエストのＵＲＬの一部として）含む検索結果（ＸＭＬ形式の検索結果）に加工する（ステップＳ１６）。
【００５８】
Ｗｅｂサーバ３０の送信部３２は、検索結果加工部３９によって加工された検索結果３２４をクライアント２０-1からのＧＥＴメソッドにより通知されるリクエストに対するレスポンスとして、当該クライアント２０-1に返す（ステップＳ１７）。
【００５９】
なお、ＸＰａｔｈ式生成部３４によって生成されたＸＰａｔｈ式が、ＵＲＬパラメータの制限文字数を超えていない場合には、当該ＸＰａｔｈ式をＸＰａｔｈテーブルに登録することなく、そのままｘｐａｔｈパラメータ値として用いても構わない。
【００６０】
クライアント２０-1のＷｅｂブラウザは、Ｗｅｂサーバ３０の送信部３２によって返されたＸＭＬ形式の検索結果３３を受け取ると、当該検索結果３３を例えばＨＴＭＬ（HyperText Markup Language）形式に変換するためのＸＳＬ変換（Extensible Stylesheet Language Transformations: ＸＳＬＴ）処理を行う。これによりＷｅｂブラウザは、検索結果３３中の検索結果一覧３２５に基づいて、図４に示される検索結果一覧画面３２９を表示する。
【００６１】
検索結果一覧画面３２９は、次ページリンク３３０を含む。この次ページリンク３３０は、検索結果３３中の次ページ表示要素３２６に含まれている＜ＮＥＸＴＵＲＬ＞タグに基づいて表示される。次ページリンク３３０は、次ページ表示要素３２６中のＵＲＬ３２８を含む、次の検索（ここでは次のページの検索）のためのＨＴＴＰリクエスト３２７とリンク（対応付け）されている。
【００６２】
ユーザは、検索結果一覧画面３２９に表示されている検索結果一覧の次の検索結果一覧を必要とする場合、当該検索結果一覧画面３２９上の次ページリンク３３０をクリックする。すると、クライアント２０-1は、次ページリンク３３０にリンクされているＵＲＬ３２８を含むＨＴＴＰリクエスト３２７をＧＥＴメソッドにより図５に示すようにＷｅｂサーバ３０に通知する。
【００６３】
ＵＲＬ３２８を含むＨＴＴＰリクエスト３２７は、Ｗｅｂサーバ３０の受信部３１によって受信される。このＨＴＴＰリクエスト３２７のＵＲＬ３２８が、ｘｐａｔｈパラメータの値（ｘｐａｔｈパラメータ値）として、ＸＰａｔｈ式３２３に代えて、ＸＰａｔｈテーブル３１２-1によって当該ＸＰａｔｈ式３２３と対応付けられている「ｘｐａｔｈｐｒｅｖ０」、つまり当該ＸＰａｔｈ式３２３よりも短い文字列から構成されるパラメータ値を含むことに注意されたい。このため、ｘｐａｔｈパラメータが、ＧＥＴメソッド（ＵＲＬパラメータ）の文字数制限を超えるのを防止でき、当該ｘｐａｔｈパラメータの一部がＷｅｂサーバ３０に送信されない不具合が発生するのを防止できる。
【００６４】
Ｗｅｂサーバ３０の判定部３６は、受信部３１によって受信されたＨＴＴＰリクエスト３２７のＵＲＬ（ここではＵＲＬ３２８）にＸＰａｔｈ式の生成及び検索（ｐａｒａｍｑｕｅｒｙ）を指定するｘｃｌａｓｓパラメータ（ｘｃｌａｓｓ＝ｐａｒａｍｑｕｅｒｙ）が含まれているかを判定する（ステップＳ１）。本実施形態のように、ＸＰａｔｈ式の生成及び検索を指定するｘｃｌａｓｓパラメータが含まれていない場合、判定部３６はステップＳ１ａに進む。
【００６５】
ステップＳ１ａにおいて、判定部３６は、ＸＰａｔｈ式の検索のみ（ｑｕｅｒｙ）を指定するｘｃｌａｓｓパラメータ（ｘｃｌａｓｓ＝ｑｕｅｒｙ）が含まれているかを判定する。本実施形態のように、ＸＰａｔｈ式の検索のみを指定するｘｃｌａｓｓパラメータが含まれている場合、つまり「ｘｃｌａｓｓ＝ｑｕｅｒｙ」の場合、判定部３６はステップＳ１８に進む。それ以外は、終了する。
【００６６】
ステップＳ１８において、判定部３６は、受信されたＨＴＴＰリクエスト３２７のＵＲＬ（ＵＲＬ３２８）に、ｘｐａｔｈパラメータ値として「ｘｐａｔｈｐｒｅｖ＊」（＊＝０，１…）が設定されたｘｐａｔｈパラメータが含まれているかを判定する。本実施形態のように、ｘｐａｔｈｐｒｅｖ＊」（＊＝０，１…）が設定されたｘｐａｔｈパラメータが含まれているならば、判定部３６は、「ｘｐａｔｈｐｒｅｖ＊」を当該「ｘｐａｔｈｐｒｅｖ＊」と対応付けられているＸＰａｔｈ式に置換する必要があると判断する。この場合、判定部３６はＸＰａｔｈ式取得部３５を起動する。なお、ステップＳ１８の判定が先に行われて、受信されたＨＴＴＰリクエスト３２７のＵＲＬに、ｘｐａｔｈパラメータ値として「ｘｐａｔｈｐｒｅｖ＊」が含まれていない場合に、ステップＳ１の判定が行われても構わない。
【００６７】
ＸＰａｔｈ式取得部３５は判定部３６によって起動されると、受信されたＨＴＴＰリクエスト３２７のＵＲＬ３２８に設定されているｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」（「ｘｐａｔｈｐｒｅｖ＊」）中の「０」（「＊」）を、対応するＨＴＴＰリクエストを通知したクライアント２０-1に固有のＸＰａｔｈテーブル３１２-1のインデックス値「０」（「＊」）として取得する（ステップＳ１９）。
【００６８】
ＸＰａｔｈ式取得部３５は、取得されたインデックス値「０」（「＊」）で指定されるＸＰａｔｈテーブル３１２-1のエントリから、「ｘｐａｔｈｐｒｅｖ０」（「ｘｐａｔｈｐｒｅｖ＊」）と対応付けられているＸＰａｔｈ式、即ちＸＰａｔｈ式３２３を、図５に示すように取得する（ステップＳ２０）。つまりＸＰａｔｈ式取得部３５は、ＵＲＬ３２８に設定されているｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」（「ｘｐａｔｈｐｒｅｖ＊」）を、ＸＰａｔｈテーブル３１２-1によって当該ｘｐａｔｈパラメータ値と対応付けられているＸＰａｔｈ式３２３に変換する。ＸＰａｔｈ式取得部３５によって取得（変換）されたＸＰａｔｈ式３２３は実体参照置換部３７に渡される。
【００６９】
実体参照置換部３７は、ＸＰａｔｈ式取得部３５からＸＰａｔｈ式（ＸＰａｔｈ式３２３）を受け取ると、当該ＸＰａｔｈ式（ＸＰａｔｈ式３２３）に実体参照が含まれているかを判定する（ステップＳ１２）。本実施形態において、ＸＰａｔｈ式３２３には実体参照は含まれていない。この場合、実体参照置換部３７は当該ＸＰａｔｈ式３２３をそのまま検索処理部３８に渡す。これに対し、本実施形態と異なってＸＰａｔｈ式３２３に実体参照が含まれている場合、実体参照置換部３７は当該実体参照を元の文字列に置換するための実体参照置換処理を行う（ステップＳ１３）。この場合、実体参照置換部３７は、実体参照が置換されたＸＰａｔｈ式を検索処理部３８に渡す。実体参照置換部３７による実体参照置換処理の詳細は後述する。
【００７０】
検索処理部３８は、実体参照置換部３７からＸＰａｔｈ式３２３を受け取ると、ＸＭＬ文書システム１０にアクセスし、当該ＸＰａｔｈ式３２３に従って周知の検索処理を実行する（ステップＳ１４）。
【００７１】
本実施形態では、従来技術とは異なり、このＸＰａｔｈ式３２３がＷｅｂサーバ３０からクライアント２０-1に返される検索結果中のＨＴＴＰリクエストにｘｐａｔｈパラメータ値として設定されていない。つまり本実施形態では、検索結果中のＨＴＴＰリクエストには、ＸＰａｔｈ式３２３に代えて、当該ＸＰａｔｈ式３２３に対応付けられたｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」が設定されている。
【００７２】
よって次の検索のために、検索結果中のＨＴＴＰリクエストがクライアント２０-1からＷｅｂサーバ３０に通知された場合に、当該リクエストに設定されているｘｐａｔｈパラメータがＵＲＬパラメータの制限文字数を超えることが防止される。しかも本実施形態では、このｘｐａｔｈパラメータのｘｐａｔｈパラメータ値「ｘｐａｔｈｐｒｅｖ０」がＸＰａｔｈ式取得部３５によって元のＸＰａｔｈ式３２３に戻される。そして、このＸＰａｔｈ式３２３に基づいて検索処理部３８による検索処理が行われる。よって、ＸＰａｔｈ式３２３がＵＲＬパラメータの制限文字数を超えていても、そのために検索処理がエラーとなるのを防止できる。
【００７３】
検索処理部３８による検索処理以降の動作は、ＸＰａｔｈ式生成部３４によって生成されたＸＰａｔｈ式３２３に従って行われた前述の検索処理と同様である。但し、ＸＰａｔｈ式３２３に合致するＸＭＬ文書の数が「２００」を超えているものとすると、先の検索処理で取得された１００件の検索結果に後続する１００件が、ＸＰａｔｈ式３２３に従う検索処理の結果（検索結果）として取得される。この場合、検索結果加工部３９による加工後の検索結果は、前述した次ページ表示要素に加えて前ページ表示要素を含む。前ページ表示要素は、前ページを表示するタグと、前ページ（先行する１００件）をユーザからの指示に応じてクライアント２０-1がＷｅｂサーバ３０に要求するのに用いられる次の検索のためのＨＴＴＰリクエストとを含む。クライアント２０-1では、前ページを表示するタグに基づき、前ページリンクが表示される。前ページリンクは、次の検索（ここでは前のページの検索）のためのＨＴＴＰリクエストとリンクされている。
【００７４】
次に、実体参照置換部３７による実体参照置換処理について説明する。  
ＸＭＬ文書では、タグの区切り等で使用されるために、タグ以外の箇所では使用できない文字が予め定められている。例えば、「＜」「＞」「＆」「”」「’」である。これらの文字「＜」「＞」「＆」「”」「’」は、それぞれ実体参照「＆ｌｔ；」「＆ｇｔ；」「＆ａｍｐ；」「＆ｑｕｏｔ；」「＆ａｐｏｓ；」に置き換えてＸＭＬ文書に登録される。しかし、ＸＰａｔｈ式による検索処理では、ＸＰａｔｈ式中に実体参照が含まれる場合には検索エラーとなり、ＸＭＬ文書システム１０にアクセスできない。
【００７５】
そのため本実施形態では、ＸＰａｔｈ式生成部３４によってＸＰａｔｈ式が生成された場合、或いはＸＰａｔｈ式取得部３５によってＸＰａｔｈ式が取得された場合、実体参照置換部３７において、当該ＸＰａｔｈ式中に実体参照が含まれているかが判定される（ステップＳ１２）。もし、ＸＰａｔｈ式中に実体参照が含まれているならば、実体参照置換部３７は当該実体参照を元の文字列に置換する実体参照置換処理を行う（ステップＳ１３）。
【００７６】
図９は、実体参照置換処理前のＸＰａｔｈ式９１と実体参照置換処理後のＸＰａｔｈ式９２の一例を図９に示す。この図９の例では、ＸＰａｔｈ式９１に含まれている「＆ｌｔ；特許＆ｇｔ；＆ｌｔ；言語＆ｇｔ；」中の実体参照「＆ｌｔ；」「＆ｇｔ」が、それぞれ元の文字「＜」「＞」に置き換えられる。これによりＸＰａｔｈ式９１は、「＆ｌｔ；特許＆ｇｔ；＆ｌｔ；言語＆ｇｔ；」が「＜特許＞＜言語＞」に置き換えられたＸＰａｔｈ式９２に変換される。この実体参照を含まないＸＰａｔｈ式９２に基づいて、検索処理部３８による検索処理が行われる。このため、実体参照で記述されたＸＰａｔｈ式に対応付けられたｘｐａｔｈパラメータがクライアントからのＨＴＴＰリクエストに含まれている場合でも、ＸＰａｔｈ式によるＸＭＬ文書システム１０へのアクセスが可能となる。
【００７７】
なお、実体参照置換部３７による実体参照置換処理後のＸＰａｔｈ式をＸＰａｔｈテーブルに登録するならば、ＸＰａｔｈ式取得部３５によって当該ＸＰａｔｈ式が取得される都度、実体参照置換部３７による実体参照置換処理が行われるのを防止することができる。つまり実体参照置換部３７による実体参照置換処理を最小限に抑えることができる。
【００７８】
次に、クライアント２０-1からＷｅｂサーバ３０に対して当該Ｗｅｂサーバ３０との間に設定されているセッションを切断するための切断リクエストが通知された場合の動作について説明する。この切断リクエストはＷｅｂサーバ３０の受信部３１で受信される。この場合、Ｗｅｂサーバ３０は、クライアント２０-1と当該Ｗｅｂサーバ３０（ここでは、Ｗｅｂサーバ３０のポート番号が８０８０のポート）との間に設定されているセッションを切断する。するとテーブル管理部３３は、クライアント２０-1からのＸＭＬ文書システム１０へのアクセスは終了したと判断して、当該クライアント２０-1に対応するＸＰａｔｈテーブル３１２-1をメモリ３１１から削除する。これによりメモリ３１１の記憶領域（リソース）を有効に使用することができる。また、クライアントとＷｅｂサーバ３０との間に設定されるセッションを単位にＸＰａｔｈテーブルが生成されるため、リソース管理の簡素化が図れる。
【００７９】
上記実施形態は、本発明をＸＭＬ文書検索システムに適用した場合を前提としている。しかし本発明は、ＸＨＴＭＬ（Extensible HyperText Markup Language）文書などＸＭＬ文書以外の構造化文書を検索する構造化文書検索システムにも適用可能である。
【００８０】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態に係るＸＭＬ文書検索システムのハードウェア構成を示すブロック図。
【図２】図１に示されるＷｅｂサーバ３０の機能構成を示すブロック図。
【図３】クライアントからＷｅｂサーバ３０に対するＨＴＴＰリクエストの通知から、当該Ｗｅｂサーバにおける当該ＨＴＴＰリクエストに基づくＸＰａｔｈ式の生成及び当該ＸＰａｔｈ式に従う検索処理までの動作の流れを表す図。
【図４】検索結果の加工から加工された検索結果に基づく検索結果一覧画面の表示までの動作の流れを表す図。
【図５】クライアントからＷｅｂサーバ３０に対するｘｐａｔｈパラメータ値を含むＨＴＴＰリクエストの通知から、当該Ｗｅｂサーバにおける当該ｘｐａｔｈパラメータ値と対応付けられているＸＰａｔｈ式の取得までの動作の流れを表す図。
【図６】クライアントからのＨＴＴＰリクエストの受信時におけるＷｅｂサーバ３０の動作を説明するためのフローチャートの一部を示す図。
【図７】クライアントからのＨＴＴＰリクエストの受信時におけるＷｅｂサーバ３０の動作を説明するためのフローチャートの他の一部を示す図。
【図８】クライアントからのＨＴＴＰリクエストの受信時におけるＷｅｂサーバ３０の動作を説明するためのフローチャートの残りを示す図。
【図９】ＸＰａｔｈ式に対する実体参照置換処理の一例を示す図。
【符号の説明】
【００８２】
１０…ＸＭＬ文書システム（構造化文書システム）、１１…ＸＭＬ文書ＤＢ（構造化文書データベース）、２０-1〜２０-n，２０-i…クライアント、３０…Ｗｅｂサーバ、３１…受信部、３２…送信部、３３…テーブル管理部、３４…ＸＰａｔｈ式生成部（問い合わせ式生成手段）、３５…ＸＰａｔｈ式取得部（問い合わせ式取得手段）、３６…判定部、３７…実体参照置換部、３８…検索処理部、３９…検索結果加工部、３２０…外部記憶装置、３１１…メモリ（記憶手段）、３２１…Ｗｅｂアプリケーション（Ｗｅｂアプリケーションプログラム）、３２２…ＸＰａｔｈ式生成テンプレート。
【図１】
2008009747.tif 000003
【図２】
2008009747.tif 000004
【図３】
2008009747.tif 000005
【図４】
2008009747.tif 000006
【図５】
2008009747.tif 000007
【図６】
2008009747.tif 000008
【図７】
2008009747.tif 000009
【図８】
2008009747.tif 000010
【図９】
2008009747.tif 000011