特集
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メソッド」により、その見出し語の意味を取得することができる。


 INDEX
  [特集]NetDictionaryで始めるWebサービス・プログラミング
  第2回 Visual Studio .NETで作るWebサービス・クライアント
    1.ICD Webサービスを試す
  2.見出し語を検索する
    3.単語の意味を取得する
    4.Visual Studio .NETを起動する
    5.GUIを作成する
    6.Web参照を追加する
    7.追加されたWeb参照とプロキス・クラス
    8.ネームスペースの指定を追加する
    9.イベント・ハンドラを記述する
    10.アプリケーションを実行する
 
 特集 : NetDictionaryプロジェクト


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間