特集
NetDictionaryで始める
Webサービス・プログラミング
2.見出し語を検索する
デジタルアドバンテージ
2001/09/29
|
|
まず最初は、単語を検索し、それに該当する見出し語(ICDに登録されている単語のこと)のIDを得るためのSearchWordメソッドを呼び出してみよう。前ページの画面でSearchWordをクリックすると次の画面になる。
|
SearchWordメソッドの参照用ページ |
このメソッドでは2つの引数を入力する必要がある。[起動]ボタンをクリックすれば実際にメソッドの呼び出しが行われる。 |
|
|
検索する文字列を入力する。 |
|
|
完全一致する単語のみを検索する場合には“false”を、部分一致する単語をすべて検索するには“true”を指定する。 |
|
|
このボタンをクリックすると実際にメソッドが呼び出され、その結果が表示される。 |
|
SearchWordメソッドは、string型とbool型の2つの引数が必要となるため、その入力用に2つのテキスト・ボックスが表示される。パラメータqueryには、検索したい単語を入力する。他方、パラメータpartialには、入力した単語に完全に一致する見出し語のみを検索する場合には“false”を、入力した単語を見出し語の一部に含むものをすべて検索する場合には“true”を指定する。上図の例では“microsoft”と“true”を指定している。つまり見出し語に“microsoft”を含む単語をすべて検索するという指示になる。
2つのパラメータを入力して[起動]ボタンをクリックすると、次のような画面が別ウィンドウとして開くはずだ。
|
SearchWord メソッドで“microsoft”を検索した結果 |
“Microsoft”、“Microsoft.NET”、“Microsoft Product Activation”の3つ単語が見つかっている。 |
|
|
“Microsoft”が見つかったことを示す部分。 |
|
|
“Microsoft.NET”が見つかったことを示す部分。 |
|
|
“Microsoft Product Activation”が見つかったことを示す部分。 |
|
ブラウザ内に表示されている実行結果はXMLドキュメントで、実際にはこれがSOAPメッセージとしてカプセル化されインターネットを越えてやってくる。実行結果をよく読むと“microsoft”の検索結果として、“Microsoft”、“Microsoft.NET”、“Microsoft Product Activation”の3つが見つかったことが分かるだろう。ただし、.NET Frameworkを使っていれば、このようなXMLとして返される検索結果をプログラムで解析する必要はない。この結果は、プログラムでは次のようなクラスのオブジェクトの配列として扱うことができる。
public class WORD {
public string title;
public string id;
public string english;
public string japanese;
}
|
|
WORDクラスの定義 |
SearchWordメソッドの戻り値は、クライアント・プログラムではWORDクラスのオブジェクトの配列として扱うことができる。 |
SearchWordメソッドの実行結果画面をよく見ると、<ArrayOfWORD>要素中の各<WORD>要素がこのクラスに対応しているのが分かる。
このクラスは、実際にWebサービス本体を記述しているasmxファイル(ICD Webサービスではicd.asmxというファイル)で定義しているもので、SearchWordメソッドはこのインスタンスの配列を返している。サーバ側のプログラム構造については次回以降で述べるが、Webサービスを記述しているサーバ側でも返す値をわざわざXMLフォーマットにする必要はない。単にWORDオブジェクトの配列をリターンしているだけだ。つまりVS .NETでは、サーバとクライアント間でSOAPやXMLが使用されていても、どちらのプログラムもそれらを直接処理する必要はなく、同じ型のオブジェクトとして扱えるようになっている。
<WORD>要素(WORDクラス)には、見出し語(title)、ID(id)、見出し語の英語読み(english)、日本語読み(japanese)がそれぞれ文字列として含まれる。このうちのIDを元に「GetItemByIdメソッド」により、その見出し語の意味を取得することができる。
Insider.NET 記事ランキング
本日
月間