現在、多くの Web ウェブサイトのコンテンツ データはデータベースまたはデータ ファイルに保存されています。 Web プログラム開発者にとって、データベースから有用な情報を抽出したい場合の従来の方法は、サーバー側でスクリプト (VBScript、JavaScript、CGI、asp、Perl など) を記述し、データベースの SQL クエリを実行することです。関連するレコードを取得し、クエリ結果を HTML ページに編成し、ユーザーはブラウザを使用して最終結果を確認します。
システムサービスの柔軟性と拡張性を向上させ、より幅広いサービス対象を可能にするために、多くの商用ウェブサイトは、ビジネスルール、オリジナルデータ、プレゼンテーションフォームを独立したサービスとして提供することに最善を尽くしています。表示にデータを埋め込む HTML の方法は、明らかにこのニーズを満たしていません。したがって、元のデータを XML 文書に格納し、スタイル シートを使用してコンテンツを表示することが、電子商取引に適した XML テクノロジの利点となります。しかし本質的に、XSL テクノロジーはデータの表示を目的としたものではなく、表示手段や方法の点で HTML よりもはるかに充実していないフォーマット変換テクノロジーです。プログラマーにとって、より理想的なソリューションは、HTML と XML の 2 つのテクノロジーを組み合わせて互いの利点を補完し、刻々と変化する HTML の表示を最大限に活用しながら、実際の元のデータが元の意味と構造を維持できるようにすることです。 。 XML Data Island は、このテクノロジーの融合の成果であり、
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 ページでは、
例:
<HTML> <XML ID=“xmldso”> <?xml version=“1.0”?> some 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 データ アイランド Books.xml は次のように存在します:
<XML ID=“xmldso”> <?xml version=“1.0”?> <booklist> <book> <title>Straight Talk About Computers</title> <isbn>72-80088-005</isbn> </book> <book> <title> Gourmet Microwave </title> <isbn>72-80081-082</isbn> </book> </booklist> </XML>
この時点で、マップされた ADO レコード セットは次のとおりです:
titleisbn
Straight Talk About Computers 72-80088-005
グルメ電子レンジ 72- 80081-082
2. HTML 要素へのバインド
データ アイランドを HTML ドキュメントに埋め込んだ後、XML データ アイランドを HTML 要素にバインドできます。各 DSO エントリ (つまり、データ アイランド) には固有の ID 番号があります。まず、HTML 要素の DATASRC 属性を対応する ID に設定して、HTML 要素をデータ アイランドに関連付けます。次に、DATAFLD 属性値を設定して、抽出された XML 要素を決定します。
たとえば、p 要素にバインドされるコードは次のとおりです:
<p ID=title DATASRC=#xmldso DATAFLD=“title”></p> <p ID=PRice DATASRC=#xmldso DATAFLD=“isbn”></p>
注: すべての HTML 要素を XML データ アイランドにバインドできるわけではありません。現在、この DSO バインディング メカニズムをサポートする要素は次のとおりです:
A、APPLET、BUTTON、p、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><p DATAFLD=“title”></p></TD> <TD><p DATAFLD=“isbn”> </p></TD></TR> </TBODY> 1 </TABLE>
这样,通过将TABLE元素中的DATASRC属性设定为#xmldso,把两者绑定起来。表格内部分为表头(THEAD)和表体(TBODY)两部分。每一个
以上がHTML と XML の相補的な利点 (パート 1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。