Zhang Jian、北京郵電大学
XML の制限
現在、多くの Web サイトのコンテンツ データはデータベースまたはデータ ファイルに保存されています。 Web プログラム開発者にとって、データベースから有用な情報を抽出したい場合の従来の方法は、サーバー側でスクリプト (VBScript、JavaScript、CGI、ASP、Perl など) を記述し、データベースの SQL クエリを実行することです。関連するレコードを取得し、クエリ結果を HTML ページに編成し、ユーザーはブラウザを使用して最終結果を確認します。
システムサービスの柔軟性や拡張性を向上させ、より幅広いサービス対象を実現するために、多くの商用Webサイトでは、ビジネスルールやオリジナルデータ、プレゼンテーションフォームなどを独立したサービスとして提供することに努めています。表示にデータを埋め込む HTML の方法は、明らかにこのニーズを満たしていません。したがって、元のデータを XML 文書に格納し、スタイル シートを使用してコンテンツを表示することが、電子商取引に適した XML テクノロジの利点となります。しかし本質的に、XSL テクノロジーはデータの表示を目的としたものではなく、表示手段や方法の点で HTML よりもはるかに充実していないフォーマット変換テクノロジーです。プログラマーにとって、より理想的なソリューションは、HTML と XML の 2 つのテクノロジーを組み合わせて互いの利点を補完し、刻々と変化する HTML の表示を最大限に活用しながら、実際の元のデータが元の意味と構造を維持できるようにすることです。 。 XML Data Island は、このテクノロジーを融合した製品です。<XML> タグを使用して XML データを HTML ページに直接埋め込み、この 2 つの利点を補完します。
IE でデータ アイランドを処理する方法
XML コードが埋め込まれたこの種の HTML ページを処理できるようにするために、Internet Explorer 4.0 (以下、IE 4.0 と呼びます) では DSO (Data Source Objects、データ ソース オブジェクト) テクノロジが導入されました。 Java アプレットで実装されています。
例:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
上記の例では、CODE 属性は DSO Java アプレットを指定し、MAYSCRIPT 属性はクライアント スクリプトがデータ オブジェクトを処理できることを保証し、PARAM タグは XML ドキュメントの場所を指定します。
Java を使用する場合の制限は、HTML ドキュメント内に XML の URL アドレスしか記述できず、XML タグを直接埋め込むことができないことです。これは、実際のデータ アイランド ソリューションにはまだ遠く及ばないという点です。 Microsoft は、Internet Explorer 5.0 (以下、IE 5.0 と呼びます) で DSO テクノロジを拡張し、以前の制限を打ち破り、HTML と XML を真に統合しました。 HTML ページは、<XML> タグの直接使用をサポートしています。
例:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
一部の XML...
</XML>
各データ アイランドの ID が一意である限り、データ アイランドに含めることができます。データ アイランドは必要な場所に埋め込まれており、これらの DSO は互いに独立しています。
上記の例の直接埋め込み方法に加えて、外部参照を使用してデータ アイランドをリンクすることもできます。
例:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
このように、会社の顧客オブジェクトが IE 4.0 を使用し続ける場合にのみ、これらの顧客の互換性の問題を解決するために、 Java アプレットはプログラマが考慮すべきオプションです。
IE 5.0 によって実装された DSO テクノロジでは、データが SQL 言語を使用してデータベースにクエリを実行した結果である場合、それらは ADO (ActiveX Data Objects) レコード セットに保存されます。サーバーはこの ActiveX コントロール (通常は ADO レコードセット) をクライアントに送信し、そこでクライアント スクリプト プログラムがさらなる処理を実行します。実際、IE 5.0 は XML データ アイランドを特別な ADO レコード セットとして処理します。
XML データ バインディング
1. ADO レコードセット マッピング
XML の各メイン要素は ADO レコードセット内のレコードにマップされ、サブ要素はそれに対応してレコードセット内のフィールド (ドメインとも呼ばれます) にマップされます。
たとえば、XML データ アイランド book.xml は次のように存在します。
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>Straight Talk About Computers</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title> グルメ電子レンジ </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
現時点で、マッピングされた ADO レコード セットは次のとおりです。
タイトル、isbn、
コンピュータについてのストレート トーク 72-80088-005、
グルメ電子レンジ、72-80081-082
2. HTML 要素へのバインド
データ アイランドを HTML ドキュメントに埋め込んだ後、XML データ アイランドを HTML 要素にバインドできます。各 DSO エントリ (つまり、データ アイランド) には固有の ID 番号があります。まず、HTML 要素の DATASRC 属性を対応する ID に設定して、HTML 要素をデータ アイランドに関連付けます。次に、DATAFLD 属性値を設定して、抽出された XML 要素を決定します。
たとえば、DIV 要素にバインドされるコードは次のとおりです。
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
注 : すべての HTML 要素を XML データ アイランドにバインドできるわけではありません。現在、この DSO バインディング メカニズムをサポートする要素は次のとおりです。
A. APPLET、BUTTON、DIV、FRAME、IFRAME、IMG、INPUT (ここでのタイプは、CHECKBOX、HIDDEN、LABEL、PASSWORD、RADIO、および TEXT)、LABEL、 MARQUEE、SELECT、SPAN、TABLE、TEXTAREA。
3.表形式の明示的な XML データ
XML データを TABLE 要素にバインドすると、複数行の表形式で自動的に表示できます。
たとえば、XML データを TABLE 要素にバインドするコードは次のとおりです。
<TABLE BORDER=1 DATASRC="#xmldso">
<THEAD>
<TR><TH>Title</TH>
<TH>ISBN</TH ></TR >
</THEAD>
<TBODY>
<TR><TD><DIV DATAFLD="title"></DIV></TD>
<TD><DIV DATAFLD="isbn">
</DIV>< /TD>< /TR>
</TBODY>
</TABLE>
このように、TABLE 要素の DATASRC 属性を #xmldso に設定することで、この 2 つがバインドされます。テーブルは、ヘッダー (THEAD) とテーブル本体 (TBODY) の 2 つの部分に分かれています。各 <book> 要素は、表の行として表示されます。各列にどのデータが表示されるかは、DIV 要素の DATAFLD 属性によって指定されます。