本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 

Iris Today Archives

ドミノ・デザイナーでの XML のエクササイズ

Lotus Software
by Kyla Town
レベル:中級者
対象:Designer 5.0
原文の掲載:2001年1月2日(更新)

Iris Today Archivesの原文(US)

インデックス
サンプル・データベースについて
XML を使ったフォームの作成
XML のデータを表示するビューの作成
ページにビューを埋め込む
ロータス スクリプトを使って XML にアクセスする
XSL スタイル・シートの適用
JavaScript を使って XML にアクセスする
Java エージェントを使って XML をエクスポート、生成する
他のデータベースの情報へのアクセス
結論

XML (Extensive Markup Language) を使ったアプリケーションの開発が急速に進んでいます。XML を使うと、そのマークアップ言語を使ってデータを構造的に記述することができ、データをネットワーク上、アプリケーション間で共有することができます。

では、ドミノとXML はどのように統合されているのでしょうか。ドミノ・デザイナーはワークフローやセキュリティー能力だけではなく、XML を記述し、パーサーにデータを送るアプリケーションを作成する機能も備えています。ドミノはデータベース・アクセス制御やフィールドの暗号化といった何重ものセキュリティー機能をそなえた強力な開発環境なのです。

どのように 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 を元にしています。他のバージョンでは正しく動作しない可能性があります。
  • ドミノ・デザイナー R5.0.3 がインストールされている必要があります。
  • この記事で紹介する Java は、IBM XML4j パーサーと、LotusXSL プロセッサーを必要とします。これらのツールは、ドミノ R5.0.3 以降に含まれています。IBM XML4j については、IBM Alphaworks(US) の Web サイトから、LotusXSL プロセッサーは Lotus Developer Network(US) の Web サイトからダウンロードできます。
  • XML、ドミノ・デザイナー R5.0.3 の基礎的な知識があるものとして説明をしていきます。
データベース、アウトライン、エージェント、そしてフレームセットの作成については、R5 デザイナーヘルプを、XML や XSL (Extensive Stylesheet Language)については、World Wide Web Consoritium (W3C)(US) を参照してください。

サンプル・データベースについて
この例では、Acme カー用品店がドミノ・データベースを使用したカー用品のオンライン・カタログを持つサイトを運営しているとします。そして、Acme は複数の業者の製品を取り扱っています。Acme が XML をこのサイトに使った理由としては、XML をカー用品についての情報を表示する共通言語として使えば、メーカーから商品の価格や在庫の有無などを取りだし、そのままカタログに反映させることができるということです。これによって、顧客はAcme のカタログにアクセスして、さまざまなメーカーの商品について最新の情報を得ることができるようになるというわけです。
 
上に戻る
 
XML を使ったフォームの作成
フォームに XML のタグを記述しますが、その際にはフィールドの前後に XML タグを記述します。これによって、XMLパーサーに送られたときに意味を持つデータを含む、XML ドキュメントができます。XML 要素をフォームやページ上で使うときには、XML を作成するためのルールに従い、XML タグを正しいフォーマットで記述する必要があります。さらに、 Internet Explorer 5.5 で閲覧する際に、フォームやページでの XML にアクセスできるようにプログラムする必要があります。XML を持ったページやフォームに直接アクセスすると、ブラウザーが固まってしまいます。

では、[Parts] フォームを Acme カー用品カタログの中に作成するステップを見てみましょう。
  1. 空のデータベースを作成して [XML Exercise] という名前をつけ、ドミノ・デザイナー上で開きます。
  2. [XML Exercise] の設計ペインでフォームを選択します。
  3. [フォームの作成] をクリックします。
  4. フォームのプロパティーでフォームに「Parts」という名前をつけます。
  5. XML の宣言をフォームの最初の行に書きます。

    <?xml version="1.0"?>

  6. 次の XML タグを、今記述した XML 宣言のすぐ下に記述します。

    <part> <partname></partname> <partnumber></partnumber> <manufacturer></manufacturer>
    <stock></stock> <regprice></regprice> <saleprice></saleprice> </part>

    上のタグはすべて <part> と </part> の2つの間にはさまれて記述されていることに注目してください。このタグは「親タグ」と呼ばれ、ひとかたまりのデータの始めと終わりを示し、この例ではひとつのパーツを表すデータの始まりと終わりを示しています。2つの親タグの間にあるタグを「子タグ」と呼びます。
  7. 組になったそれぞれの子タグの間にフィールドを作成し、この中に XML でマークしたいデータを格納します。ここまでで下のようなフォームができているはずです。

    Parts Form

  8. [設計] - [フォームのプロパティー] をクリックします。
  9. [デフォルト] のタブをクリックし、[文書内容をHTMLとして扱う] をチェックします。これによって、ドミノはすべての文書を、HTML タグを生成することなく HTTP の要求側に送るようになります。
  10. 保存してフォームを閉じます。
  11. [作成] - [Parts] で、データをフォームに追加していきます。
 
上に戻る
 
XML のデータを表示するビューの作成
フォームを作成したところで、次に XML ドキュメントを表示するビューを作成します。ビューを使えばどの情報を XML に変換させるかを選択したり、データをトラッキングしたりできます。また、フォームが一度に一つの文書しか表示できないのに対し、ビューは複数を同時に表示できるので非常に便利です。ここではサンプルの Acme データベースにある [Parts] ビューを作成するステップを説明していきます。
  1. ビューを作成して、開いておきます。
  2. [編集] - [プロパティー] をクリックしてビューのプロパティー・ダイアログ・ボックスを開きます。
  3. [ビュー情報タブ] をクリックし、名前のところに「Parts」と入力します。
  4. [詳細]のタブ上で、[ビューの内容を HTML として扱う] をチェックします。チェックしていないデフォルトの状態では、ドミノはビューの内容を HTML で作成します。この設定はページにビューを埋め込んだ場合でも有効ですので、この操作をしないと埋め込みビューの内容が適切に表示されません。
  5. [オブジェクト] のタブ上で、[ビューの選択] をクリックし、次の式を入力します。これにより、先に作成した「Parts」のフォームがこのビューに関連付けられます。

    SELECT Form = "Parts"

  6. ビューに子要素(子タグに挟まれた要素)の数だけ列を追加します。
  7. ビュー内の最初の列をクリックします。
  8. 次の書式にしたがって列式を入力します。(PARENT は親タグ、CHILD は子タグをあらわします)

    "<PARENT><CHILD>"+fieldname+"</CHILD>"

    例えば、最初の列式は次のようになります。

    "<part><partname>"+PartName+"</partname>"

  9. 2つ目の列をクリックし、式を記述するところに次の書式にしたがって列式を入力します。

    "<CHILD>"+fieldname+"</CHILD>"

    例えば、2つ目の列式は次のようになります。

    "<partnumber>"+PartNumber+"</partnumber>"

  10. 前のステップを最後の XML 項目の直前まで繰り返します。
  11. 最後の子要素には、次に挙げる式を使います。

    "<LASTCHILD>"+fieldname+"</LASTCHILD></PARENT>

    例えば、最後の列の式は次のようになります。

    "<saleprice>"+SalePrice+"</saleprice></part>"

メモ:一つの列に2つ以上の式がある場合は、1つ目の式の後に ";"(セミコロン)をつけて、次の式を続けることができます。

"<PARENT><CHILD>"+fieldname+"<\CHILD>";
"<CHILD>"+fieldname+"<\CHILD>";
"<CHILD>"+fieldname+"<\CHILD>"

 
上に戻る
 
ページにビューを埋め込む
ページにビューを埋め込んで、作成した XML にルート要素を加えられるようにします。フォームやページでの XML はプログラミングして Internet Explorer 5.5 を使ってアクセスできるようにするべき、ということを思い出してください。XML を使ったページやフォームに直接アクセスすると、ブラウザーが固まってしまいます。

ページにビューを埋め込むには次のステップを踏みます。
  1. ページを作成します。
  2. [設計] - [ページのプロパティー] をクリックします。
  3. 名前に「GetParts」と入力します。
  4. [ページ情報] タブをクリックし、[Web アクセス:文書の内容をHTMLとして扱う]をチェックします。
  5. XML 宣言を記述し、埋め込むビューを表示するすぐ上にルート要素のタグを記述します。例えば、次の様になります。

    <?xml version="1.0"?>
    <partscatalog>

  6. 表示するビューを埋め込みたいところにカーソルを置きます。
  7. [作成] - [埋め込み設計要素] - [ビュー] と選択し、「Parts」のビューを選択します。
  8. 埋め込み要素のビューをクリックし、[設計要素] - [ビューのプロパティー] をクリックします。
  9. [情報] タブをクリックし、
    [対象 フレーム (ダブルクリック)] に Main と入力します。
    [Web アクセス:文書の内容を HTML として扱う] をチェックします。
  10. ビューの下に締めのルート・タグを書きます。ここでは以下のようになります。

    </partscatalog>
 
上に戻る
 
ロータス スクリプトを使って XML にアクセスする
フォーム、ビュー、そしてページを作成したところで、ロータス スクリプト、JavaScript 、あるいは Java をプログラミングして、XML にアクセスすることができます。ここでは、サーバー側のロータス スクリプト・エージェントを使って XML にアクセスする方法を見てみましょう。まず、エージェントは次のようになります。

Dim source As Variant

'sourceFile 変数は、URL、サーバー上のファイル、あるいはノーツ文書です。
'ある決まった文書にアクセスしたいのなら、OpenDocument URL コマンド、
'文書の UNID を使うことができます。例えば、文書の UNID が unid な、
'http://localhost/Acme.nsf/unid/OpenDocumen となります。
'sourceFile="http://localhost/Acme.nsf/GetParts?OpenPage"

'Microsoft.XMLDOM オブジェクトを作成します。
Set source = CreateObject("Microsoft.XMLDOM")
source.async = False

'XML をパーサーにロードします。
source.load(sourceFile)

'ドミノがデフォルトのヘッダーを送信しないようにします。
Print "Content-type: text/xml"

'出来上がった XML をブラウザーで表示します。
Print source.xml

ブラウザーからアクセスできるエージェントを作成するために、アクション・エントリーをデータベースのアウトラインに追加することができます。これの例をみるには、Notes.net の Iris Sandbox から Acme.nsf and Zippy.nsf(US) データベースをダウンロードして、チェックしてみてください。Acme のデータベースは Parts (サーバー側の ロータス スクリプト) アウトライン・エントリーからこのエージェントを起動しています。

Acme データベースのアウトラインにこのエージェントを追加するには次のようにします。
  1. データベース・アウトラインを開きます。
  2. [エントリーの作成] をクリックします。
  3. エントリーの名前を入力します。
  4. Content Type を Action にします。
  5. @ ボタンを押します。
  6. 次の式を入力します。

    @Command([ToolsRunMacro];"Generate XML")
 
上に戻る
 
XSL スタイル・シートの適用
ここまでで、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 プロセッサーで動作するとは限りません。

<?xml version="1.0"?>

<!--この行は Internet Explorer 用です。-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<!--ルートノード-->
<xsl:template match="/" >

<!--表の境界線を幅3ピクセル、インセット、黒に設定します。-->
<TABLE STYLE="border:3px inset black">

<!--表の最初の行の設定。テキストのフォントを10ポイント、太字、スタイル Verdana、背景色をライトグレーにします。-->
<TR STYLE="font-size:10pt; background-color: lightgrey; font-family:Verdana; font-weight:bold">

<!--表の最初の行の1番目のセルのテキストです。この行のセルはすべて上で定義された属性を持ちます。-->
<TD>Part Name</TD>

<!--最初の行の2番目のセルのテキストです。-->
<TD>Part Number</TD>

<!--最初の行の3番目のセルのテキストです。-->
<TD>Manufacturer</TD>

<!--最初の行の4番目のセルのテキストです。-->
<TD>Stock</TD>

<!--最初の行の5番目のセルのテキストです。-->
<TD>Regular Price</TD>

<!--最初の行の6番目のセルのテキストです。-->
<TD>Sale Price</TD>

<!--最初の行の終わり。-->
</TR>

<!--ルート要素 <partscatalog> と親要素 <part> に囲まれた子要素のデータに、定義したスタイルを適用します。そしてこれらを名前順(order-by)で表の中に置きます。この order-by はフィールド名ではなく、フィールドに関連付けられた XML タグです。-->
<xsl:for-eachselect="partscatalog/part"order-by="partname">

<!--2行目以下の列の設定。テキストのフォントを10ポイント、スタイル Verdana、セル間の間隔を0ピクセル、6ピクセルにします。-->
<TR STYLE="font-family:Verdana; font-size:10pt; padding:0px6px">

<!-- <partname> タグ内のデータを最初の列に入れます。-->
<TD><xsl:value-of select="partname" /></TD>
   
<!-- <partnumber> タグ内のデータを2つめの列に入れます。 -->
<TD><xsl:value-of select="partnumber" /></TD>

<!-- <manufacturer> タグ内のデータを3つめの列に入れます。-->
<TD><xsl:value-of select="manufacturer" /></TD>

<!-- <stock> タグ内のデータを4つめの列に入れます。-->
<TD><xsl:value-of select="stock" /></TD>

<!-- <regprice> タグ内のデータを5つめの列に入れます。5列目にある各セルの価格データの前に$(ドル) がつきます。-->
<TD>$<xsl:value-of select="regprice" /></TD>

<!-- <saleprice> タグ内のデータを6つめの列に入れます。6列目にある各セルの価格データの前に$がつきます。セルの背景色をライトグレーにします。-->
<TD STYLE="background-color:lightgrey">$
<xsl:value-of select="saleprice" /></TD>

<!--各行を終わります。3行目以降はデータがすべて終わるまで作られます。-->
</TR>

</xsl:for-each>

</TABLE>

</xsl:template>

</xsl:stylesheet>

XSL スタイル・シートをドミノのアプリケーションで使う方法は次の通りです。
  1. ページを作成します。
  2. [設計] - [ページのプロパティー] をクリックします。
  3. Nameフィールドに xsl の拡張子を持った、[Acmepartscatalog.xsl] のような名前を入力します。
  4. [Web アクセス:文書の内容をHTMLとして扱う] をチェックします。
  5. 自分で書くか、上に挙げた例をコピーして [XML Exersise] のデータベースにスタイル・シートを作成します。
  6. 作成したページを.xsl の拡張子付きで保存します。
  7. XML にアクセスするロータス スクリプトか JavaScript を作成して、スタイル・シートを適用します。
 
上に戻る
 
JavaScript を使って XML にアクセスする
Acme.nsf データベースの JavaScriptXML ページは、クライアント側の JavaScript を使って GetParts ページ の XML にアクセスし、acmepartscatalog.xsl スタイル・シートを適用します。

クライアント側の JavaScript を使って XML にアクセスするには:
  1. ページを新規作成します。
  2. [設計] - [ページのプロパティー] をクリックします。
  3. Name フィールドに JavaScriptXML という名前を入力します。
  4. [ページ情報] タブで [Web アクセス:文書の内容をHTMLとして扱う] のチェックをはずします。
  5. データを表示したいところに、次の div (division) タグを入力します。

    <div id="HTMLresults"></div>

    メモ:HTMLresults は、下で紹介する JSHeader オブジェクトで使われる属性です。
  6. <div id="HTMLresults"></div> タグをハイライトした状態で、[文字] - [パススルー HTML] を選択します。すると、タグの周りが灰色になり、パススルー HTML になったことを示します。
  7. さらに、HTML ヘッダーの内容を追加しても構いません。
  8. JSHeader をクリックして、スクリプトのところに次の JavaScript を入力、または貼り付けてください。

    var HTMLresults;
    var source
    ;var style;

    //loadXML() を function として定義します。
    function loadXML() {

    //source という名前の ActiveX オブジェクトを作成します。
    //これは Microsoft.XMLDOM パーサーです。
    source = new ActiveXObject("Microsoft.XMLDOM");

    //style という名前の ActiveX オブジェクトを作成します。これは、
    //Internet Explorer 5.5 にインストールされている Microsoft.XMLDOM
    //パーサーです。このオブジェクトは、スタイル・シートを XML に適用
    //するために使われます。
    style = new ActiveXObject("Microsoft.XMLDOM");

    source.async = false;
    style.async = false;

    //validateOnParse プロパティーを false に設定します。
    source.validateOnParse = false;

    //openPage URL コマンドを使って、GetParts ページをパーサーに
    //読み込みます。
    Source.load("http://localhost/Acme.nsf/GetParts?openPage");

    //openPage URL コマンドを使って、acmepartscatalog.xsl スタイル・シー

    //をパーサーに読み込みます。
    Style.load("http://localhost/Acme.nsf/cmepartscatalog.xsl?OpenPage");

    //エラー・ハンドラー。エラーが生じると、showError() function を
    //呼び出します。
    if(source.parseError.errorCode != 0) {
    showError();
    }
    //エラーがなければ、doTransform() function を呼び出します。
    DoTransform();
    }

    //doTransform() を function として定義します。
    function doTransform() {
    //getReadyState() function が true を返せば、スタイル・シートを使って
    //ノードを変え、結果を HTMLresults 属性とともにタグ内に格納します。
    if (getReadyState()){
    resulting = source.transformNode(style);
    document.all.item("HTMLresults").innerHTML = resulting;
    }
    //getReadyState() function が true を返さなければ、refresh をかけ
    //ます。
    Self.refresh;
    }

    //getReadyState function を定義します。
    function getReadyState() {
    alert("ready state: " + source.readyState);
    if (source.readyState == 4) {
    return true;
    }
    setTimeout("getReadyState()", 100);
    }

    //showError() function を定義します。
    function showError() {
    var strError = new String;
    var err = source.parseError;
    strError = 'Error!\n' +
    'file url: '+err.url +' \n'+
    'line no.:'+err.line +'\n'+
    'char: '+ err.linepos + '\n' +
    'source: '+err.srcText+'\n'+
    'code: '+err.errorCode+'\n'+
    'description: '+err.reason+'\n';
    document.all.item("HTMLresults").innerHTML = strError;
    }

  9. OnLoad イベントで、次の JavaScript を入力、または貼り付けます。

    //ブラウザーにページが読み込まれたときに loadXML() function を
    //呼び出します。
    loadXML();

  10. ページを保存します。
  11. [設計] - [Web ブラウザーでのプリビュー] - [Internet Explorer] を選択します。

メモ:nternet Explorer 5.5 ではこのページを直接見ることができますが、これは、GetParts ページの XML に、JavaScript をプログラムしてアクセスしているためです。

preview of the page
 
上に戻る
 
Java エージェントを使って XML をエクスポート、生成する
Java を使えば、XML をノーツ文書からエクスポートしたり、生成したりすることができます。この例では、IBM XML4J パーサーと、LotusXSL プロセッサーが必要になります。

IBM XML4J パーサーと、LotusXSL プロセッサーをインストールする方法は次の通りです。
  1. XML4j パーサーを IBM Alphaworks Web(US) サイトからダウンロードします。
  2. LotusXSL プロセッサーを Lotus Developer Network Web(US) サイトからダウンロードします。
  3. XML4j.jar と LotusXSL.jar のファイルを Path 変数に加えます。
Acme.nsf データベースは、JavaAgent エージェントを使って、Parts ページの XML データを取り出します。

Java エージェントを使ってデータをエクスポートしたり、XML を作成する方法は次の通りです。
  1. エージェントを作成します。
  2. エージェントの実行メニューから、Java を選択します。
  3. 文書を処理して、XML4j パーサーを使って XML を作成する Java コードを記述します。Acme.nsf(US) データベースの JavaAgent というエージェントを参照してみてください。

ブラウザーから Java エージェントにアクセスする方法は次の通りです。
  1. データベースのアウトラインを開きます。
  2. [エントリーの作成] をクリックします。
  3. 作成したエントリーにラベルをつけます。
  4. 内容の種類を URL に設定します。
  5. @ ボタンをクリックします。
  6. 次の URL コマンドを入力します。

    ./agentName?OpenAgent&db=Acme.nsf&unid=documentUNID

    documentUNID が、XML でエクスポートしたり解析したりする文書で共通して使われる ID となり、agentName は今作成した Java エージェントの名前となります。
 
上に戻る
 
他のデータベースの情報へのアクセス
この例では、Acme の提携会社である Zippy Auto が提供するカー用品も自社のデータベースに載せる、と想定します。Zippy は自社サイトに基本的に Acme と同じデザインのカタログを持っていますが、XML タグを使っていないドミノ・データベースに格納されています。ここでは、Zippy のデータベースから情報を引き出して顧客に提示するエージェントを作成する必要があります。

他のデータベースにある情報にアクセスするロータス スクリプト・エージェントを作成する方法は次の通りです。
  1. エージェントを作成します。
  2. エージェントの実行メニューから、ロータス スクリプトを選択します。
  3. 下のロータス スクリプトをコピーして、式を記述する部分に貼り付けるか、自分で記述します。

次のロータス スクリプトのコードでは、どのように情報を取り出して、XML に変換しているかが分かります。ノーツ・クライアントでエージェントが起動していれば、print ステートメントが情報をステータス・バーに書き出します。もしブラウザーでエージェントが起動しているのであれば、フレームセット内のページに書き出します。

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

'ノーツがデフォルトのヘッダーを送ることを防ぎます。
Print "Content-type: text/xml"
'XML宣言
Print "<?xml version='1.0' encoding='UTF-8'?>"
'XSLの処理を指示
Print "<?xml:stylesheet type='text/xsl' href='acmepartscatalog.xsl' ?>"
'ルート要素
Print "<partscatalog>"

'文書オブジェクトが残っている間ループします。
While Not ( doc Is Nothing )

'各 parts 文書に対して、親要素を送ります。
Print "<part>"

   '文書オブジェクトからフィールドの内容を引き出し、
   '適当なマークアップを送ります。
   Print "<partname>"+doc.PartName(0)+"</partname>"
   Print "<partnumber>"+doc.PartNumber(0)+"</partnumber>"
   Print "<manufacturer>"+doc.Manufacturer(0)+"</manufacturer>"
   Print "<stock>"+doc.Stock(0)+"</stock>"
   Print "<regprice>"+doc.RegPrice(0)+"</regprice>"
   Print "<saleprice>"+doc.SalePrice(0)+"</saleprice>"
   'part 要素タグを閉じます。
   Print "</part>"
   'ビューに次の文書を読み込みます。
   Set doc = view.GetNextDocument( doc )

Wend
'ルート要素タグを閉じます。
Print "</partscatalog>"

このエージェントをブラウザーからアクセス可能にするには、データベースのアウトラインにアクション・エントリーを追加します。Acme データベースは Zippy Tools アウトライン・エントリーからこのエージェントを実行しています。

Acme データベース・アウトラインにこのアクションを追加する方法は次の通りです。
  1. データベースのアウトラインを開きます。
  2. [エントリーの作成] をクリックします。
  3. エントリーにラベルをつけます。
  4. 種類をアクションに設定します。
  5. @ ボタンをクリックします。
  6. 次の式を入力します。

    @Command([ToolsRunMacro];"Generate XML")
 
上に戻る
 
結論
ドミノ・デザイナーは、XML とネットワーク上でデータを共有するドミノ・アプリケーションを確実な方法で統合する機能を備えています。また、XML タグをフォームに追加したりビューを使って、どの文書を XML に解析するか、ということを指定したり、スタイル・シートを使ってデータがどのように表示されるかを決めることができます。エージェントを使えば、ページやフォームの XML にアクセス、そして XML 文書でない文書から XML を生成できるほか、他のドミノ・アプリケーションからデータを取り出すことも可能です。この記事があなたが自分のアプリケーションで XML を使う際に少しでも役に立てば、と思います。



著者について
カイラは現在は IBM のテクニカル・ライターをつとめていますが、以前はドミノ・デザイナー文書チームに2年間所属していました。ロータス時代は、「Application Development with Domino Designer」、「Domino Designer Programming Guide」といったマニュアルを手がけました。フリー・タイムには、洋裁、クロケット、そして飼っている4匹の猫と遊ぶのが趣味だそうです。
 
上に戻る