データバインド アーキテクチャ

Data Binding Architecture Data Binding Architecture *
*前のトピック: データバインド
*次のトピック: ページへのデータソースオブジェクトの追加

データバインド アーキテクチャ

データバインドは、データソースオブジェクト、データコンシューマ、バインディング エージェント、テーブル繰り返しエージェントから構成されるコンポーネント アーキテクチャに基づいている。。データソースオブジェクトはWebページにデータを供給し、データコンシューマであるHTMLエレメントのデータを表示し、バインディング エージェントでデータプロバイダとデータコンシューマの同期をとる。次の図は、コンポーネント間のやり取りを示したものである。

データソースオブジェクト

Internet Explorer 4.0でHTMLページのエレメントをデータにバインド(連結)するには、データソースオブジェクト(DSO) がそのページになくてはならない。データソースオブジェクトはオープンな仕様であり、その仕様はDSOデベロッパーに対して以下のように取り決められている。

  • ページへのデータ転送の方法。データソースオブジェクトでは、あらゆるトランスポートプロトコルが使える。これには、HTTPのような標準インターネットプロトコルや、単なるファイル入出力がある。また、データソースオブジェクトでは同期転送、非同期転送のどちらも利用できる。ユーザーに即時的な対話性を提供するには、非同期転送が適している。
  • データセットを指定する方法。データソースオブジェクトでは、ODBC接続の文字列とSQLステートメントが必要となる。または、単純にURLを受け取ることもできる。
  • スクリプトでデータを操作する方法。データソースオブジェクトでは、データをクライアント側で保守するので、データの並べ替えやフィルタの方法も管理する。
  • 更新の許可または不許可。

データソースオブジェクトは通常、アクセス可能なオブジェクトモデルを通じてこの機能をスクリプトに公開する。

データソースオブジェクトに対する唯一の厳密な条件は、OLE DB あるいは OLE DB Simple Provider APIを使ってデータソースオブジェクトデータにアクセスしなければならないことである。すべてのデータソースオブジェクトは、標準的なインターフェイスからデータアクセスを提供するので、MSHTMLではプロパティ、メソッド、イベントの標準セットによってデータソースオブジェクトのオブジェクトモデルを拡張している。つまり、このオブジェクトモデルを通じてスクリプトでデータを操作できる。

ページにデータソースオブジェクトを追加する方法はページへのデータソースオブジェクトの追加で説明する。カスタム データソースオブジェクトの実装については、Internet Client SDKドキュメントの IE4/MSHTML Data Binding Interfaces にその説明がある。

データコンシューマ

データコンシューマ(data consumer)は、データソースオブジェクトから与えられたデータを表示するHTMLページのエレメントである。エレメントには、多くのHTMLエレメントの他に、JavaアプレットやActiveX™コントロールとして実装されたカスタム オブジェクトも含まれる。Internet Explorer 4.0では、データソースオブジェクトから与えられるデータセット中の特定行の値をエレメントにバインドすることを許すデータバインドのためのHTML拡張をサポートしている。また、アプレットやActiveXコントロールは、インディングの追加方式をサポートしている。これについてはOBJECTを参照すること。

エレメントは、単一値(single-value)コンシューマ、表形式データ(tabular data)コンシューマをサポートしている。INPUTエレメントのような単一値コンシューマでは、データソースによって与えられたカレント レコードから1つの値を使用する。TABLEエレメントのような表形式データコンシューマは、与えられたデータから全レコードのセットを繰り返す。これはセット バインディングという。

Webオーサーがデータソースオブジェクトから与えられたデータにエレメントをバインドできる拡張機能については、データバインドのためのHTML拡張で説明する。データバインドをサポートする個々のエレメントについては、データへのHTMLエレメントのバインディングを参照すること。

バインディング エージェント

バインディング エージェントと繰り返しエージェントは、Mshtml.dll(Internet Explorer 4.0用のHTMLビューワ)に実装されていて、この処理は完全に裏側で実行される。ページが最初にロードされると、バインディング エージェントは、ページ上のエレメントにあるデータソースオブジェクトとデータコンシューマを探し出す。バインディング エージェントがすべてのデータソースオブジェクトとデータコンシューマを検出し、それらの間でデータの同期を保つ。例えば、データソースからデータソースオブジェクトが追加のデータを受け取ると、バインディング エージェントはコンシューマに新しいデータを転送する。反対に、ユーザーがページ上のエレメントをバインドされたデータに更新すると、バインディング エージェントはデータソースオブジェクトに通知する。

また、バインディング エージェントでは、Webオーサーにプロバイダとコンシューマでによるデータの状態変化を知らせるために、様々なスクリプトで扱えるイベントを発生する。

テーブル繰り返しエージェント

繰り返しエージェントは、HTMLのTABLEエレメントのような表形式データコンシューマと共に機能し、データソースオブジェクトによって与えられたデータセット全体を繰り返す。テーブル内の個々のエレメントは、バインディング エージェントによって同期される。

データバインドのためのHTML拡張

Webオーサーがページにデータバインドを追加できるように、Internet Explorer 4.0では、いくつかの新しいHTML属性をサポートしている。すべてのデータバインド関連のHTML属性は、ドキュメントオブジェクトモデルでは、同じ名前のプロパティに対応している。次にHTML属性とその使用方法を説明する。

データバインドで重要な点は、データコンシューマにデータソースオブジェクトをバインドすることである。データソースオブジェクト (DSO) とデータコンシューマをバインドするために、Internet Explorer 4.0では次に示す属性をサポートし、HTMLの機能を拡張した。

DATASRC コンシューマとバインドされるデータソースオブジェクトの識別子を指定する。
DATAFLD エレメントとバインドされるデータソースオブジェクトからのデータの特定カラムを指定する。
DATAFORMATAS 特定カラムのデータの表示形式を指定する。
DATAPAGESIZE 一度にテーブルに表示するレコードの数を指定する。

バインドされたエレメントは2つの特別なカテゴリに分かれる。

  • 単一値コンシューマ
  • 表形式データコンシューマ

バインディング エージェントでは、データソースのカレントレコードから1つの値を取得し、単一値コンシューマにその値を渡す。繰り返しエージェントはバインディング エージェントと共に機能し、表形式データコンシューマにレコードのすべてのセットを渡す。

Webページ上の単一値データコンシューマ エレメントでDATASRC属性とDATAFLD属性を指定すると、エレメントのバインディングをデータに完全に指定できる。単一値エレメントでDATAFORMATAS属性を指定すると、データの表示形式を指定できる。DATAPAGESIZE属性を指定すると、表形式データコンシューマが表示するレコードの数を制限できる。これらすべてのプロパティは、ドキュメントオブジェクトモデルから実行時に設定できる。

次の例は、HTMLページに表示する単一値データコンシューマ エレメントを指定したものである。

<SPAN DATASRC=#dsoComposer DATAFLD=compsr_first></SPAN>

この例のDATASRC属性には、ページに埋め込まれたデータソースオブジェクト (DSO) のID (dsoComposer) を設定する。DATAFLD属性には、データソースオブジェクトによって与えられたデータセットのカラム名を設定する。このバインディングを行うには、データソースオブジェクトから読み出したデータセットに、という名前のカラムがなければならない。

次の例で、テーブル(表形式データコンシューマ)をデータソースオブジェクトとバインドする方法を説明する。繰り返しエージェントでは、テンプレートとしてテーブル本体の中の行 (TR) を使用する。この例で"dsoComposer"として指定されたデータソースオブジェクトは、データセットの各レコードを供給するので、全作曲家の名前が表示されるまで、DIVに含まれるテンプレートが繰り返される。

<TABLE DATASRC=#dsoComposer>
<TR><TD><DIV DATAFLD=compsr_first></DIV></TD></TR>
</TABLE>

DATAFORMATAS属性による表示形式の指定

データソースオブジェクトによって与えられたデータは様々なフォーマットに変更できる。ページ オーサーは、単一値コンシューマ エレメントでDATAFORMATAS属性を使うと、この表示形式を指定できる。Internet Explorer 4.0では、HTMLとTEXTが使用できる。

<MARQUEE DATASRC=#dsoAdvertisement DATAFLD=banner
DATAFORMATAS=html>
</MARQUEE>

この例ではMARQUEEを記述し、ページに表示する様々なバナーを提供するデータソースオブジェクトを指定している。

DATAPAGESIZE属性を使ったテーブル表示の最適化

テーブルをデータソースにバインドすると、デフォルトでは、データセットのすべてのレコードが表示される。データセットが大きい場合、ページはユーザーに見えるように範囲を越えて下に伸びて表示される。さらに、テーブルの下にあるコンテントは、画面からはみ出す。DATAPAGESIZE属性では、一度に表示する最大レコード数の指定をTABLEに適用できる。ドキュメントオブジェクトモデルのTABLEオブジェクトの拡張機能(nextPageメソッドとpreviousPageメソッド)ユーザーはテーブルのレコードを見るために、次ページや前ページに移動できるようになる。また、dataPageSizeプロパティを設定すると、実行時にページサイズを変更できる。

テーブルの大きさの制限だけでなく、WebオーサーはHTMLページで使うために選択したデータソースオブジェクトによって公開される特別な機能を調査しなくてはならない。Tabular Data Control (TDC)と Remote Data Service では、フィルタの機能を提供している。

Up トップに戻る
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.