どのように XML をドミノのアプリケーションに統合するかを説明しましょう。ここでは「Acme Auto Parts」という架空のカー用品店が、Web 上にカー用品のオンライン・カタログを作る、と想定してそのステップを順に説明していきます。
XML を使うフォームやページの作成
XML のデータを表示するビューの作成
ビューのページへの埋め込み
XSL スタイル・シートを XML に適用するプログラミング
エージェントを使った、フォームやビューからの XML へのアクセス
Java を使った、XML のノーツ・データベースからのエクスポートと生成
エージェントを使った、他のドミノ・データベースへのアクセス
これから説明していく設計要素やコードを含んだ2例のデータベース「Acme.nsf and Zippy.nsf(US)」が Iris Sandbox にありますので、ダウンロードして参考にしてください。
また、このとき次の点に注意してください。
サンプル・データベースを見るにはノーツ R5.0.3 クライアントと Microsoft Internet Explorer 5.5 が必要です。さらに詳しく言うと、この記事で紹介している内容、あるいはサンプル・データベースは、Internet Explorer 5.50.4522.1800 を元にしています。他のバージョンでは正しく動作しない可能性があります。
フォームに XML のタグを記述しますが、その際にはフィールドの前後に XML タグを記述します。これによって、XMLパーサーに送られたときに意味を持つデータを含む、XML ドキュメントができます。XML 要素をフォームやページ上で使うときには、XML を作成するためのルールに従い、XML タグを正しいフォーマットで記述する必要があります。さらに、 Internet Explorer 5.5 で閲覧する際に、フォームやページでの XML にアクセスできるようにプログラムする必要があります。XML を持ったページやフォームに直接アクセスすると、ブラウザーが固まってしまいます。
フォームを作成したところで、次に XML ドキュメントを表示するビューを作成します。ビューを使えばどの情報を XML に変換させるかを選択したり、データをトラッキングしたりできます。また、フォームが一度に一つの文書しか表示できないのに対し、ビューは複数を同時に表示できるので非常に便利です。ここではサンプルの Acme データベースにある [Parts] ビューを作成するステップを説明していきます。
ページにビューを埋め込んで、作成した XML にルート要素を加えられるようにします。フォームやページでの XML はプログラミングして Internet Explorer 5.5 を使ってアクセスできるようにするべき、ということを思い出してください。XML を使ったページやフォームに直接アクセスすると、ブラウザーが固まってしまいます。
ここまでで、XML はデータを記述してもそれがどのような形で表示されるかは定義しない、ということを見てきました。コンピューター間の通信では「どのように表示するか」といったことは重要ではありませんが、人を相手にしてデータをやりとりするときはスタイル・シートを使うことによって、より見やすくするのがよいでしょう。スタイル・シートで、データのどの部分を表示するか、データを HTML あるいは別の形式の XML に変換するか、といったことを決めることもできます。<Para>、<List>、<Item>といった頻繁に使われる要素用に、簡単なスタイルを標準として持っているブラウザーもありますが、たいていの場合、データのフォーマットを決めるためにスタイル・シートを使う必要があります。
XML に使えるスタイル・シートには次の2種類があります。
XSL(Extensible stylesheet language): データをどのように HTML あるいは別のバージョンの XML に変換するかを記述する
CSS(Cascading stylesheet): CSS をサポートする Web ブラウザー上で直接 XML のスタイルを決定する
Acme カー用品カタログは XML ドキュメントを HTML に変換するために XSL を使っています。ここにスタイル・シート acmecarpartscatalog.xsl を挙げます。<!--と--> で囲まれている行がコメント・ラインで、その下の行のタグについての説明が記されています。
メモ:
Internet Explorer 5.5 で標準の XSL は、W3C で推奨されている規格とは異なっています。Internet Explorer 5.5 以前で動作するスタイル・シートが、これからのバージョンのパーサーや XSL プロセッサーで動作するとは限りません。
Dim session As New NotesSession
'dbは現在のデータベースです。
Dim db As NotesDatabase
'dbZippyはアクセス先のデータベースです。
Dim dbZippy As New NotesDatabase("","zippy.nsf")
Dim doc As NotesDocument
Dim view As NotesView
Set db = session.CurrentDatabase
'Zippyのデータベースのノーツ文書ビューを取り出します。
Set view = dbZippy.GetView( "Notes Documents" )
'ノーツ文書ビューの中の最初の文書を取り出します。
Set doc = view.GetFirstDocument
ドミノ・デザイナーは、XML とネットワーク上でデータを共有するドミノ・アプリケーションを確実な方法で統合する機能を備えています。また、XML タグをフォームに追加したりビューを使って、どの文書を XML に解析するか、ということを指定したり、スタイル・シートを使ってデータがどのように表示されるかを決めることができます。エージェントを使えば、ページやフォームの XML にアクセス、そして XML 文書でない文書から XML を生成できるほか、他のドミノ・アプリケーションからデータを取り出すことも可能です。この記事があなたが自分のアプリケーションで XML を使う際に少しでも役に立てば、と思います。
著者について
カイラは現在は IBM のテクニカル・ライターをつとめていますが、以前はドミノ・デザイナー文書チームに2年間所属していました。ロータス時代は、「Application Development with Domino Designer」、「Domino Designer Programming Guide」といったマニュアルを手がけました。フリー・タイムには、洋裁、クロケット、そして飼っている4匹の猫と遊ぶのが趣味だそうです。