Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド リリース 1.0.2.1 2001 年 4 月 部品番号:J03646-01 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド, リリース 1.0.2.1 部品番号:J03646-01 原本名:Oracle Portal-to-Go Web Integration Developer User’s Guide, Release 1.0 原本部品番号:A77468-02 Copyright © 2000, Oracle Corporation. All rights reserved. Printed in Japan. 制限付権利の説明 プログラム(ソフトウェアおよびドキュメントを含む)の使用、複製または開示は、オラクル社との契約に記された 制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。 当プログラムのリバース・エンジニアリング等は禁止されております。 このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証し ません。 * オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。 危険な用途への使用について オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として 開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧 客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、 日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いか ねます。当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してくだ さい。この場合次の Notice が適用されます。 Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065. このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別するために のみ使用されており、それぞれの所有者の商標または登録商標です。 目次 概要 .............................................................................................................................................................................. 1 はじめに .................................................................................................................................................................. 1 Web Integration Developer....................................................................................................................................... 3 スタート・ガイド ...................................................................................................................................................... 7 Web Integration Developer の起動 .......................................................................................................................... 7 Web Integration Developer のウィンドウ .............................................................................................................. 8 チュートリアル .................................................................................................................................................... 10 レ ッ ス ン 1 ..................................................................................................................................................... 10 Web ドキュメントからの情報の抽出 ............................................................................................................ 10 レ ッ ス ン 2 ..................................................................................................................................................... 20 Web アプリケーションへの入力の引渡し .................................................................................................... 20 基本的な作業 ............................................................................................................................................................ 31 ドキュメントのオープン、表示および保存..................................................................................................... 31 HTML または XML ドキュメントのオープン .............................................................................................. 31 HTML または XML ドキュメントの表示 ...................................................................................................... 33 WIDL ドキュメントのオープン ..................................................................................................................... 34 WIDL ドキュメントの表示 ............................................................................................................................. 34 WIDL ドキュメントの保存 ............................................................................................................................. 34 ドキュメントのクローズ ................................................................................................................................ 35 XML ドキュメントの処理................................................................................................................................... 36 WIDL サービスの作成 ............................................................................................................................................ 37 Web ドキュメント用の WIDL サービスの作成 ................................................................................................ 37 入力バインドの指定 ............................................................................................................................................ 41 入力バインドの作成 ........................................................................................................................................ 41 入力バインドの削除 ........................................................................................................................................ 42 入力変数の作成 ................................................................................................................................................ 42 入力変数の変更 ................................................................................................................................................ 44 入力変数のコピー ............................................................................................................................................ 47 出力バインドの指定 ............................................................................................................................................ 49 出力バインドの作成 ........................................................................................................................................ 49 出力バインドの削除 ........................................................................................................................................ 50 抽出する情報の検索 ........................................................................................................................................ 51 出力変数の作成 ................................................................................................................................................ 54 i オブジェクト参照の指定 ................................................................................................................................ 59 出力変数の変更 ................................................................................................................................................ 67 出力変数のコピー ............................................................................................................................................ 70 フレームの処理 .................................................................................................................................................... 71 リージョンの処理 ................................................................................................................................................ 73 リージョンの作成 ............................................................................................................................................ 74 リージョン内のオブジェクトの変数の作成................................................................................................. 75 レコードの処理 .................................................................................................................................................... 77 出力バインドへの条件の割当て......................................................................................................................... 80 「Conditions」タブの処理 ............................................................................................................................... 83 ランタイム障害の処理 ........................................................................................................................................ 85 失敗条件の使用 ................................................................................................................................................ 85 再試行条件の使用 ............................................................................................................................................ 87 出力のリバインド ................................................................................................................................................ 89 サービス・チェーンの作成................................................................................................................................. 93 サービス・チェーンを介した変数の引渡し................................................................................................. 93 サービス・チェーンの作成............................................................................................................................. 94 自動ロードとブラウザ・レコーダの処理......................................................................................................... 98 自動ロード機能の使用 .................................................................................................................................... 98 ブラウザ・レコードの使用............................................................................................................................. 98 WIDL サービスのテスト ................................................................................................................................... 100 Web Integration Developer でのサービスのテスト ...................................................................................... 100 ブラウザでのサービスのテスト................................................................................................................... 104 Server Administrator でのサービスのテスト ................................................................................................ 105 インタフェースとサービスの管理....................................................................................................................... 107 インタフェースの管理 ...................................................................................................................................... 107 インタフェースの手動作成........................................................................................................................... 107 インタフェース・パラメータの表示または変更....................................................................................... 108 インタフェースの改名 .................................................................................................................................. 109 2 つのインタフェースのマージ.................................................................................................................... 109 インタフェースの公開 .................................................................................................................................. 110 インタフェースの非公開 .............................................................................................................................. 112 サービスの管理 .................................................................................................................................................. 113 新規サービスの追加 ...................................................................................................................................... 113 サービス・パラメータの表示または変更................................................................................................... 115 サービスの改名 .............................................................................................................................................. 117 インタフェース間でのサービスの移動....................................................................................................... 117 Web Integration Developer の構成 ....................................................................................................................... 119 構成オプションの設定 ...................................................................................................................................... 119 Web Integration Developer でのプロキシ・サーバーの使用 ...................................................................... 120 NULL チェックの無効化/有効化 .................................................................................................................. 121 取消しレベルの設定 ...................................................................................................................................... 121 cookie の処理................................................................................................................................................... 121 ユーザー・エージェントの指定................................................................................................................... 122 ソース・コードの生成 .......................................................................................................................................... 123 ii クライアント・アプリケーション用ソース・コードの作成 ....................................................................... 123 Java クライアント・アプリケーションの作成 ........................................................................................... 124 JavaScript クライアント・アプリケーションの作成 ................................................................................. 126 C/C++クライアント・アプリケーションの作成........................................................................................ 127 Visual Basic クライアント・アプリケーションの作成.............................................................................. 129 Excel 95 クライアント・アプリケーションの作成 .................................................................................... 131 Excel 97 クライアント・アプリケーションの作成 .................................................................................... 132 統合モジュール用ソース・コードの作成....................................................................................................... 134 付録 A: WIDL リファレンス ................................................................................................................................ 135 概要 ...................................................................................................................................................................... 135 WIDL 仕様 ........................................................................................................................................................... 136 WIDL-SPEC DTD............................................................................................................................................ 139 WIDL マッピング ............................................................................................................................................... 139 WIDL-MAPPING DTD ................................................................................................................................... 150 付録 B: WOM リファレンス................................................................................................................................. 153 Web オブジェクト・モデル(WOM) ............................................................................................................ 153 オブジェクト参照 .......................................................................................................................................... 153 オブジェクト・プロパティ........................................................................................................................... 156 プロパティ・マスク ...................................................................................................................................... 157 付録 C: 正規表現 .................................................................................................................................................... 159 正規表現の概要 .................................................................................................................................................. 159 索引 .......................................................................................................................................................................... 165 iii iv 概要 はじめに このマニュアルでは、Web Integration Developer について、および Web Integration Developer を使用して Web Integration サービスを作 成し、Web Integration Server に公開する方法について説明します。 また、Web Integration サービスを起動し実行するための、クライ アント・アプリケーション用のソース・コードおよびアプリケー ションの統合モジュール用のソース・コードを Web Integration Developer で作成する方法も説明します。 このマニュアルの対象読者は、次のとおりです。 • Web Interface Definition Language(WIDL)を使用してプログ ラムを作成する開発者 • Web Integration サービスを起動するプログラムや、Web Integration Server 上で稼働する統合モジュールのソース・ コードを作成する Java、C/C++および Visual Basic の開発者 このマニュアルで使用する表記規則 このマニュアルの表記規則は、次のとおりです。 ユーザー・インタフェース関連の手順: 表記規則 例 手順は、連番付きで記載されていま す。 1. 「Activity」->「File」コマンドを 選択します。 固定幅フォントの文字は、記載どおり 正確に入力してください。 setup と入力して[Enter]キーを押し ます。 概要 1 はじめに 表記規則 例 イタリック体の文字は、特定の状況や 環境に基づいて入力してください。 webintegration¥setup と入力して [Enter]キーを押します。 キーボード・キーは、大カッコで囲ま れています。 [Enter]キーを押してから[Tab]キーを 押します。 複数のキーを同時に押す必要がある場 合は、"+"記号で結ばれています。 [Ctrl]+[Alt]+[M]キーを押します。 ディレクトリのパスは、"¥"ディレクト リ・デリミタで区切られています。た だし、UNIX 固有のパスの場合は、"/" が使用されています。UNIX 環境で作 業している場合は、このマニュアルの 手順に使用されている"¥"を"/"に置き 換えてください。 webintegration¥server¥packages¥Default このシンボルが付いている項目は、手 順を始める前に読む必要のある情報、 または、特定のアクションの結果に関 する警告を示します。 ! まだドキュメント・ブラウ ザを開いていない場合は、 次の手順に進む前に開いて ください。 プログラム・コードの定義: 表記規則 固定幅フォントの文字は、キーワード と値です。記載どおり正確に入力して ください。 イタリック体の文字は、変数値または パラメータです。値またはパラメータ を入力してください。 大カッコ([])で囲まれているキー ワードと値はオプションです。実際の コードには[]記号を入力しないでくだ さい。 例 %CoSymbol% %VarName% %loop LoopVar [null=NullValue]% 関連マニュアル 『Oracle9i Application Server Wireless Edition Web Integration Server ユーザーズ・ガイド』 このマニュアルでは、統合モジュールと呼ばれる他のタイプの Web Integration サービスの作成方法を説明しています。また、 Server Administrator を使用して、ユーザーの追加、サービスのイ ンストール、パフォーマンスのモニターおよび構成設定の調整な どの管理タスクを実行する方法も説明しています。 2 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web Integration Developer Web Integration Developer Web Integration Developer を 使用すると、WIDL サービス を迅速に開発し、Web Integration Server に公開でき ます。 Web Integration Developer は、Web Interface Definition Language (WIDL)で記述された Web Integration サービスを作成し、テストす るための開発環境です。 Web Integration Developer には、次の操作に使用するツールも用意さ れています。 • Web Integration Server への WIDL サービスの公開 • Web Integration サービスを起動するクライアント・アプリケー ションのソース・コードの作成 • 統合モジュール開発用の初期コードの作成 サービス サービスは、Web Integration Server に登録され、クライアント・ アプリケーションから起動できるプログラムです。サービスは、 クライアント・アプリケーションから入力を受け入れて(オプ ション)、そのクライアント・アプリケーションに出力を戻しま す。 次の 2 種類の Web Integration サービスを作成できます。 • WIDL サービス。WIDL で記述されており、HTML ドキュメ ント、XML ドキュメントまたは JDBC 互換のリレーショナ ル・データベースから情報を抽出します。複数の WIDL サービスを連鎖させて、複数のドキュメントから情報を抽出 できます。 • 統合モジュール。C/C++、Java および Visual Basic などの言 語を使用して作成するプラグイン・プログラムです。統合モ ジュール自体を設計して記述するため、このタイプのサービ スでは結果のソート、算術演算の実行、複数レコードを介し たループ、意思決定論理の実行および他の Web Integration サービスの結果の集計など、複雑な処理を実行できます。 Web Integration サービスをクライアント・アプリケーションから 起動するには、そのサービスが Web Integration Server 上に存在し て登録済みであることが必要です。次の図のように、サービスが Web Integration Server にあると、クライアントはそのサービスを 起動して Web から情報を取り出すことができます。 概要 3 Web Integration Developer クライアント 1 クライアントがサービス要求を Web サーバー 発行し、入力を送る Web サーバー 2 RDBMS インターネット Integration Server により、クライアントの入力 に基づき適切な Web リソースに要求が送られる RDBMS Web Integration Server 4 Integration Server により、指定された出力値が 抽出およびフォーマットされ、クライアントに 結果が戻される 3 Web リソースにより、 Integration Server に出力が戻される この図は、ネットワーク上のクライアントが Web Integration サー ビスを起動する場合を示していますが、クライアントが別の Web Integration サービスである場合もあります。複雑なビジネス・ア プリケーションの場合にはそれが一般的です。ほとんどの大型ア プリケーションは、1 つ以上の Web Integration サービスを起動し (ソート、マージ、合計の計算など)、そこで生成されるデータ を処理し、結果をクライアントに戻す統合モジュールからなって います。 サービスをコールできるクライアントのタイプ Web Integration サービスは、事実上どのようなタイプのクライア ント・アプリケーションからでも起動できます。これには、他の Web Integration サービス、C/C++プログラム、Java プログラム、 Visual Basic プログラム、ActiveX オブジェクト(Excel など)また は通常のブラウザなどが含まれます。 WIDL WIDL は、Web 上のドキュメントから情報を抽出するサービスを 記述するための言語であり、Extensible Markup Language(XML) のアプリケーションです。WIDL を使用すると、複雑なプログラ ミング作業なしで強力なデータ抽出アプリケーションを作成でき ます。 Web Integration Developer で WIDL サービスを作成する場合は、次 のような WIDL プログラムを作成します。 4 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web Integration Developer <SERVICE NAME="QuoteYahoo_GetQuote" INPUT="QuoteYahoo_GetQuoteInput" OUTPUT="QuoteYahoo_GetQuoteOutput" METHOD="GET" URL="http://quote.yahoo.com/q" SOURCE="http://quote.yahoo.com/"/> ヘッダー情報 <INPUT-BINDING NAME="QuoteYahoo_GetQuoteInput"> <VALUE NAME="CoSymbol" FORMNAME="s" USAGE="DEFAULT"/> <VALUE NAME="ReportType" FORMNAME="d" CONTENT="CONSTANT" USAGE="DEFAULT" COMMENT="Basic ">v1</VALUE> </INPUT-BINDING> 入力バインド <OUTPUT-BINDING NAME="QuoteYahoo_GetQuoteOutput"> <VALUE NAME="CurrentPrice" USAGE="DEFAULT" VALUEONLY="TRUE"> Doc.table[2].td[1].text</VALUE> </OUTPUT-BINDING> 出力バインド WIDL サービスは手で記述することはありませんが(Web Integration Developer により実行されます)、サービスに含まれる 基本要素と、各要素の用途は理解しておく必要があります。 • ヘッダー情報では、サービス名と使用するバインドを指定し、 情報を抽出する Web ドキュメントの URL を識別します。前述 の例のサービスでは、http://quote.yahoo.com/q の URL で生成さ れるドキュメントから情報が抽出されます。 • 入力バインドでは、サービスの入力要件を定義します。また、 各入力を Web ドキュメントの要件(通常は、name=value のペ ア形式で入力を受け入れる CGI アプリケーション)に対応付 けます。前述の例では、入力バインドで CoSymbol および ReportType という 2 つの入力が定義されています。この 2 つ の入力は、Web ドキュメント内の変数 s および d の値を提供 します。 • 出力バインドでは、サービスにより生成される出力を定義し、 各出力変数を特定のオブジェクト、つまり、Web ドキュメン トの要素内の特定の情報に対応付けます。前述の例では、出 力バインドで単一の出力変数 CurrentPrice が定義され、この変 数に doc.table[2].td[1].text にあるオブジェクトが割り当て られています。この表現は、オブジェクト参照の一例です。 オブジェクト参照では、Web(Integration)オブジェクト・モデ ル(WOM)に基づいて情報の特定部分の位置が識別されます。 出力バインドには、Web ドキュメントのコンテンツやバイン ドの成否に基づいてサービスの実行を命令する条件指示も含 めることができます。 Web Integration Developer を使用すると、選択した HTML または XML ドキュメントと指定したバインド設定に基づいて、これらの 要素が自動的に作成されます。 概要 5 Web Integration Developer WOM Web(Integration)オブジェクト・モデル(WOM)は配列ベースの モデルであり、HTML または XML ドキュメント内の要素のアド レスを簡単に指定して抽出できます。このモデルでは、ドキュメ ントはその HTML または XML 要素を含むゼロベース配列の集合 として表されます。たとえば、すべてのパラグラフは p[]として 参照される配列に収集され、行は配列 li[]に収集され、表は配列 table[]に収集されます。要素の内容を抽出するには、その要素の 配列アドレスを参照するだけですみます。最初のパラグラフの場 合は p[0]、2 行目の場合は li[1]、4 番目の表の場合は table[3] となります。 オブジェクト参照は、次の例のように多様な索引付けテクニック (パターン一致を含む)を使用して構成できます。 参照 戻されるデータの位置 doc.p[ ].text ドキュメントのすべてのパラグラフ doc.p[1-10].text ドキュメントのパラグラフ 1∼10 doc.li[1-end].text ドキュメントの 1 行目からドキュメン トの終わりまで doc.li[1,3,7].text 1、3 および 7 行目 doc.p[1-3,5-7].text パラグラフ 1∼3 および 5∼7 doc.p[2+2].text パラグラフ 2、4、6、8… doc.p['*webintegration*']. text 文字列「webintegration」を含むすべて のパラグラフ WOM を使用してオブジェクト参照を作成する方法の詳細は、59 ページの「オブジェクト参照の指定」および付録 B「WOM リ ファレンス」を参照してください。 6 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド スタート・ガイド Web Integration Developer の起動 Web Integration Developer をインストールしたプラットフォームに応 じて、次の適切な手順を使用して Developer を起動します。 Windows 95 または NT 上で Web Integration Developer を起動する には 1 「プログラム」メニューで Oracle_Home¥Portal-to-Go ディレクト リを検索します。 2 「Web Integration Developer」アイコンをクリックします。 UNIX 上で Web Integration Developer を起動するには 1 Web Integration Developer がインストールされているディレクト リに変更します。 2 bin/developer.sh を編集します。DEVDIR と JDKDIR を、システム 上の適切なパスが反映されるように変更します。 3 bin/developer.sh を実行します。 スタート・ガイド 7 Web Integration Developer のウィンドウ Web Integration Developer のウィンドウ Web Integration Developer のウィンドウには、WIDL サービスの作成と 公開に使用するツールが含まれています。ツールバーは上部にあり、 残りの部分は次のように 2 つのペインに分かれています。 ドキュメント・ ブラウザ 編集ペイン ドキュメント・ブラウザには、Web Integration Developer で開いてい るドキュメントのリストが表示されます。ドキュメントの隣のアイコ ンは、そのドキュメントのタイプを表します。 アイコン 説明 HTML または XML ドキュメント。Web Integration Developer で WIDL ドキュメントを作成するときの入力ドキュメント。 WIDL ドキュメント。これらのドキュメント(WIDL インタ フェースとも呼ばれる)には、1 つ以上の WIDL サービスが 含まれています。 ドキュメント・ブラウザには、編集または操作できる要素を表すノー ドも表示されます。たとえば、WIDL ドキュメントには、サービスと それに含まれるバインドを表すノードがあります。 サービス・ノードとバインド・ノード サービス バインド 8 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web Integration Developer のウィンドウ 特定の要素を処理するには、そのノードをマウスで選択します。選択 した要素の種類に応じて、ドキュメント・ブラウザの編集ペインに適 切な編集コントロールが表示されます。 編集ペインには、選択した要素の処理に使用するコントロールが含ま れています。たとえば、バインドを選択すると、編集ペインには、そ のバインドで定義されている変数のリストと、新規変数の追加や既存 の変数の編集に使用する編集コントロールのセットが表示されます。 変数リスト 編集コントロール スタート・ガイド 9 チュートリアル チュートリアル Web Integration Developer を初めて使用する場合は、次のチュートリ アルを順に進めて、WIDL サービスの開発作業を最初から最後まで体 験することをお薦めします。このチュートリアルは、Web Integration Developer を使用して Web 上のドキュメントから WIDL サービスを自 動的に生成し、そのサービスを編集して情報の特定部分を抽出する方 法を示しています。 このチュートリアルには、次の 2 つのレッスンが含まれています。 • レッスン 1 では、Web 上の HTML ドキュメントから情報を抽出す る WIDL サービスの作成方法について説明します。 • レッスン 2 では、入力値を Web アプリケーションに渡し、戻され た HTML ドキュメントから情報を抽出する WIDL サービスの作成 方法について説明します。 この 2 つのレッスンを順番に実施してください。 レッスン 1 Web ドキュメントからの情報の抽出 このレッスンから、Web からデータを取り出す処理を自動化する作業 が容易であることがわかります。金融情報を含む文書から最新のダウ 平均株価を抽出する WIDL サービスを作成してみます。 はじめる前に Web Integration Developer では、ターゲット・ドキュメントをブラウ ザで開くことは必須ではありませんが、お薦めします。これにより、 情報を抽出するコードを作成する前に、ドキュメントの基本構造を把 握できます。さらに、開発プロセス中にどこを参照すればよいかが一 目でわかります。 この目的に留意してブラウザを起動し、次のページを開きます。 http://quote.yahoo.com コンテンツとレイアウトに目を通してください。 10 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル 1 YAHOO! FINANCE の この情報を取り出すため 2 のサービスを作成します 3 4 5 このページには、次の基本要素が含まれていることがわかります。 1 1 つ以上のイメージとナビゲーション・リンクのセット 2 ダウ平均株価など、このレッスン中に抽出する情報部分で ある各種の金融情報を含む表 3 アニメーション・イメージ 4 フォーム 5 追加の金融ページへのリンクを含む表 この時点で、ドキュメントの HTML を表示し、その構造を把握する こともできます。 次のコード・フラグメントは、前述の 5 つの要素の HTML を示して います。 • 要素 1 は表としてフォーマットされており、ページを表示する だけでは表示されません。 • 要素 2 (情報を抽出する表)は、表中にネストされた一連の表 としてフォーマットされています。 スタート・ガイド 11 チュートリアル <html> <head><title>Yahoo! Finance</title></head><body><center> 1 <table cellpadding=2 cellspacing=0 width="100%"> <tr><td width="1%"><a href="/?u"> <img border=0 height=31 width=281 src="http://us.yimg.com/i/fi/main4.gif" alt="Yahoo! Finance"></a></td> <td valign=bottom align=right nowrap><font face=arial size=-1> <a href="/?u">Home</a> <a href="http://www.yahoo.com/">Yahoo!</a> <A href="http://biz.yahoo.com/f/q.html">Help</A> <a href="http://edit.my.yahoo.com/config/login?.src=quote&.done=http://quote.yahoo.com/?u">Sig n In</a></font> <hr size=1 noshade> </td></tr></table> <p> <small>Mon Sep 28 12:07pm ET - U.S. Markets close in 3 hours 53 minutes. </small> 2 <table border=1 cellpadding=0 cellspacing=0> <tr><td colspan=2> <table border=0 cellpadding=2 cellspacing=0 width="100%"> <tr align=right> <td nowrap align=left><small><a href="/q?s=^DJI&d=t">Dow</a></small></td> <td nowrap><small><b>8133.81</b></small></td> <td nowrap><small>+105.04 (+1.31%)</small></td> </tr> </table></td> <td colspan=2> <table border=0 cellpadding=2 cellspacing=0 width="100%"> <tr align=right> <td nowrap align=left><small><a href="/q?s=^IXIC&d=t">Nasdaq</a></small></td> <td nowrap><small><b>1763.10</b></small></td> <td nowrap><small>+19.51 (+1.12%)</small></td> </tr> </table></td> . . . </table> 3 <p><a href="http://www.yahoo.com/M=16569A.156967.1352999.7037371/D=finance/S=7037371:N/A=96195/?h ttp://homeadvisor.msn.com/offerclosing/offer.asp" target="_top"><img width=468 height=60 src="http://us.yimg.com/a/mi/microsoft/16569/offer468x60.gif" alt="Click here for MS Home Advisor." border=0></a> <p> 4 <form method=get action="/q"><input type=text size=25 name=s><input type=submit value="Get Quotes"><select name=d><option value=v1 selected>Basic <option value=v2>DayWatch <option value=v4>Fundamentals <option value=t>Detailed <option value=b>Chart <option value=r>Research </select> <a href="/l">symbol lookup</a></form> 5 <table border=0 cellpadding=0 cellspacing=0 width="85%"> <tr><td align=center> <b>Portfolios (Track your favorite stocks here) : </b><nobr>[<a href="http://edit.my.yahoo.com/config/login?.src=quote&.done=http://quote.yahoo.com/?u">Reg ister/Sign In</a>]</nobr> </td></tr></table> <p> <table border=0 cellpadding=4 cellspacing=0> <tr><td bgcolor="#6699cc" colspan=2><font face=arial size="+1"><b>Yahoo! Finance</b></font></td></tr> <tr><td colspan=2 align=center><table> <tr valign=top><td nowrap><ul> <li><b>U.S. Markets:</b><small> <a href="/m1?u">Major U.S. Indices</a><br> <a href="/a0?u">Most Actives</a>, <a href="/m0?u">Mkt Digest</a>, <a href="/f0?u">Mutual Funds</a><br><br></small> <li><b>World Markets:</b><small> <a href="/m2?u">Major World Indices</a><br> <a href="/m3?u">Currency Exchange Rates</a> <br>Canada: <a href="/m6?u">Markets</a>, <a href="/c0?u">Most Actives</a>, <a href="/m4?u">Mkt Digest</a><br><br></small> . 前述の Web ページとコード・サンプルの著作権は、次のとおりです。 Copyright © 1998 Yahoo! All Rights Reserved. 12 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル ソース・ページのオープンと初期サービスの生成 WIDL サービスを作成する最初のステップは、データを抽出するペー ジを開き、その初期サービスを生成することです。初期サービスは、 開発の始点として使用するフレームワークとなります。 ソース・ページを開くには 1 Web Integration Developer を起動します。このステップの手順は、 7ページの「Web Integration Developer」を参照してください。 2 「File」->「Open URL」コマンドを選択するか、またはツール バーの 3 をクリックします。 「Open URL」ダイアログ・ボックスで次の URL を入力します。 http://quote.yahoo.com 「OK」をクリックします。 このページが Web Integration Developer により取り出され、解析 されてドキュメント・ブラウザに追加されます。 ドキュメント・ブラウザは Developer で開いた ドキュメントを表示します… また、選択された要素の 適切な編集コントロールを 表示します。 http://quote.yahoo.com の場合、ドキュメント・ブラウザには次の 3 つのアイテムが表示されます。 スタート・ガイド 13 チュートリアル • 最初のアイテム(http://quote.yahoo.com)では、開いたド キュメント、この場合は HTML ドキュメントが識別されま す。 • 第 2 のアイテム(Document ノード)は、HTML ドキュメン トのコンテンツ、つまり、パラグラフ、イメージ、リンク、 リスト、表などを表します。 • 第 3 のアイテム(FirstForm ノード)は、このドキュメント のフォームを表します(フォームを含むページを開くと、ド キュメント内のフォームごとにノードが 1 つずつ表示されま す)。 初期サービスを生成するには 1 ドキュメント・ブラウザで Document ノードを選択します。 2 「Generate」->「WIDL」コマンドを選択するか、またはツール バーの 3 をクリックします。 「New Service」ダイアログ・ボックスに次のように入力します。 フィールド 入力 Interface StockInfo Service QuoteYahoo_GetDow • 「Interface」フィールドでは、このサービスの完全修飾サー ビス名のインタフェース部分を指定し、このサービスを格納 するインタフェースを識別します。 • 「Service」フィールドでは、このサービスの完全修飾サービ ス名のサービス部分を指定し、このサービスを「Stock Info」インタフェース内で識別します。 デフォルトでは、生成元になったページの URL と一致 するインタフェース名とサービス名になっています が、必要な名前を選択して使用できます。アクセスす る XML ドキュメントや HTML ドキュメントの名前と 一致させる(または含める)必要はありません。 4 「OK」をクリックし、「New Service」ダイアログ・ボックスを 閉じます。 ドキュメント・ブラウザに StockInfo というドキュメントが作成 され、そこにサービス QuoteYahoo_GetDow が追加されます。 14 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル 「StockInfo」インタフェース 作成したサービス (QuoteYahoo_GetDow) 初期サービスの編集 デフォルトでは、初期サービスにより、ターゲット HTML ドキュメ ントからのすべてのテキスト情報に対し変数が作成されます。初期 サービスの生成後、必要な情報(この場合はダウ平均株価)のみが抽 出されるようにカスタマイズします。そのためには、サービスの出力 バインドを編集します。 出力バインドにより、変数名が HTML または XML ドキュメント内の 要素に対応付けられます(また、名前を定数値やクライアントから提 供される値に対応付けることもできますが、この機能についてはこの レッスンでは説明しません。この機能の詳細は、66ページの「出力変 数への定数値の割当て」を参照してください)。サービスを起動した クライアントに渡されるのは、出力バインドで定義した変数のみであ ることに注意してください。 このサービスの出力バインドを表示するには、ドキュメント・ブラウ ザで次の手順で操作します。 1 「Bindings」フォルダの左の+記号をクリックします。 2 「QuoteYahoo_GetDowOutput」バインドをクリックします。 スタート・ガイド 15 チュートリアル Developer により作成された 変数が、出力バインドに表示 されます そのバインドが編集ペインに表示されます。このペイン上部の変数リ ストには、このサービスの生成時に自動的に作成された変数割当てが 表示されます。たとえば、title 変数は<TITLE>要素の内容を表し、 doctext 変数はドキュメント内のすべてのテキストを表します。デ フォルトでは、変数リストには、ドキュメントの各主要要素の変数が 含まれます(このサービスをこの時点で実行すると、このページのす べての情報が抽出されます)。 次の手順に従って、このページのダウ平均株価を検索し、この値に変 数を追加し、残りの変数を出力バインドから削除します。 出力バインドを編集するには 16 1 表変数が表示されるまで変数リストをスクロールします(この ページには、ダウ平均株価が表形式で表示されることに注意し てください)。 2 表変数をそれぞれクリックし、その内容を編集ペイン下部の 「Sample」タブで調べます。 3 次のような内容を持つ表変数を検索します(サンプルには最新 のダウ平均株価が含まれるため、実際のデータ値はこの図とは 異なります)。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル このセルからのみ 情報を取り出します この変数は、必要な情報を含め、この表の内容全体(3 つのセ ル)を表しているものです。この変数割当てを使用すると、 サービスからは 3 つの文字列値、つまり、単語「Dow」、現行 値および始め値からの変化が戻されます。次の数ステップでは、 この表の中央のセルのみを抽出する新規変数を作成します。 4 「Sample」タブで、現行のダウ平均株価を含むセルを選択しま す。 5 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Create New Variable From Selection」を選択します。 6 「New Variable」ダイアログ・ボックスに DowAverage と入力し、 「OK」をクリックします。この表セルの新規変数割当てが作成 され、変数リストに追加されます。 7 変数リストの最下部へスクロールし、DowAverage 変数をクリッ クして、そのパラメータを表示します(新規変数を出力バイン ドに追加すると、その変数は変数リストの最下部に表示されま す)。「Sample」タブの「Reference」フィールドに、このペー ジのダウ平均株価の場所を記述するオブジェクト参照が表示さ れます。 Web Integration Developer で変数を作成するときには、ペー ジ先頭の<HTML>要素で始まるフルパスを使用してオブ ジェクトが指定されます。たとえば、作成した変数は次の ようになります。 doc.html[0].body[0].p[1].table[0].tr[0].td[0]. table[0].tr[0].td[1].text ただし、このオブジェクトの参照を手動で記述する場合 は、次のように表現できます。 doc.table[2].td[1].text このページの場合、この 2 つの参照は等価です。 8 次のステップに従って、出力バインドから他の出力変数をすべ て削除します。 1 変数リストの先頭へスクロールし、リスト内の最初の変数を クリックします。 スタート・ガイド 17 チュートリアル 2 カーソルをリスト最下部にある DowAverage 変数のすぐ上の 変数までドラッグします(Dow Average 以外の変数をすべて ハイライトします)。 3 [Del]キーを押します。 作成した WIDL ドキュメントの表示 これまでに実行したステップでは、サービス QuoteYahoo_GetDow を 含む WIDL ドキュメントを作成しました。 このサービスの WIDL コードを表示するには 1 ドキュメント・ブラウザで StockInfo ドキュメントを選択します。 2 「View」 ->「WIDL」コマンドを選択します。 3 WIDL ドキュメントを見終わった後、「Cancel」をクリックして ウィンドウを閉じます。 作成した出力バインド “DowAverage” 変数の定義 WIDL サービスのテスト サービスが正常に機能することを確認するために、Web Integration Developer からテストできます。テストを行うと、Web Integration Developer で URL が開き、出力バインドに指定されたデータが抽出さ れ、結果が編集ペインの「Variables」タブに表示されます。 18 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル WIDL サービスをテストするには 1 ドキュメント・ブラウザで、「Services」フォルダの QuoteYahoo_GetDow ノードをクリックします。 2 「Tools」 ->「Test Service」コマンドを選択するか、またはツー ルバーの をクリックします。 「Submit」をクリックしてサービスを テストします(サービスが入力を要求 する場合、上の入力エリアを使用して 入力します)。 3 「Test Service」ダイアログ・ボックスで「Submit」をクリック します。そのサービスが実行され、結果が「Variables」タブに 表示されます。 サービスを実際のクライアント・アプリケーション(ブラウザ や Java アプリケーションなど)から起動してテストする場合 は、サービスをサーバーに公開し、クライアントから起動する 必要があります。手順は、110ページの「インタフェースの公 開」を参照してください。 レッスンの完了 これで最初の WIDL サービスの作成は完了です。入力を Web アプリ ケーションに渡す WIDL サービスの作成方法を習得するには、この チュートリアルの次のレッスンを実施してください。 スタート・ガイド 19 チュートリアル レッスン 2 Web アプリケーションへの入力の引渡し このレッスンでは、次の WIDL サービスの作成方法を学習します。 • 共通ゲートウェイ・インタフェース(CGI)フォームを使用す る Web アプリケーションの実行を要求する。 • その Web アプリケーションに入力値を渡す。 • アプリケーションにより生成された HTML ドキュメントから、 特定の情報部分を抽出する。 このレッスンでは、実行時にクライアントが指定する会社の現在の株 価を要求するサービスを作成します。 前提条件 このレッスンでは、quote.yahoo.com 上のフォームを使用します。この ドキュメントを現在 Web ブラウザで開いていない場合は、ブラウザ を起動して次のページを開きます。 http://quote.yahoo.com このページのフォームでは、指定した会社の金融情報を取り出す Web アプリケーションが実行されます。 1 2 20 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル このフォームは、次の 2 つの入力値を取ります。 入力 1 2 指定 情報が必要な会社の株式記号。次に示すフォームの HTML コードを検証すると、この変数の名前が s であることがわ かります。 生成する財務レポートのタイプ。この変数の名前は d で す。次に示す HTML コードのように、この変数はデフォル ト値 v1 に自動的に設定されます。この値は、Basic レポー ト・タイプを示します。 quote.yahoo.com form の HTML . . . <form method=get action="/q"> 1 <input type=text size=25 name=s> <input type=submit value="Get Quotes"> 2 <select name=d> <option value=v1 selected>Basic <option value=v2>DayWatch <option value=v4>Fundamentals <option value=t>Detailed <option value=b>Chart <option value=r>Research </select> <a href="/l">symbol lookup</a></form> . . . このフォームで会社の株式記号(AOL や IBM など)を入力し、「Get Quotes」をクリックすると、Web アプリケーションにより次のような ドキュメントが戻されます。 このページのこの部分の情報を 取り出す WIDL のサービスを作 成します スタート・ガイド 21 チュートリアル 先に進む前に、このドキュメントのレイアウトに目を通してください。 抽出する情報(現在の株価)が表形式で表示されていることに留意し てください。 ソース・ページのオープン 入力を Web アプリケーションに渡す WIDL サービスを作成する最初 のステップは、ユーザー入力の収集に使用するフォームを含むドキュ メントを開くことです(つまり、結果を表示するフォームではなく、 Web アプリケーションを起動するドキュメントを開きます)。 ! レッスン 1 でhttp://quote.yahoo.comを開いたままになっている場合は、次 の一連のステップをスキップし、「Generating the Starter Service」の手順 に直接進むことができます。 ソース・ページを開くには 1 Web Integration Developer を起動します。このステップの手順は、 7ページの「Web Integration Developer」を参照してください。 2 「File」->「Open URL」コマンドを選択するか、またはツール バーの をクリックします。 3 URL として http://quote.yahoo.com と入力します。 4 「OK」をクリックします。 初期サービスの生成 入力が必要な Web アプリケーション用の初期サービスを生成する手 順は、通常の HTML ドキュメントの初期サービス生成手順とほとん ど同じです。重要な相違点は、ドキュメント・ブラウザでは、ドキュ メント・ノードではなくフォーム・ノードからサービスを生成する必 要があることです(フォーム・ノードを使用する必要があるのは、 Web アプリケーションに必要な入力変数を定義するためです)。 ! 22 このサービスは、レッスン 1 で作成した QuoteYahoo_GetDow サービス と同じインタフェースに保存されます。まだドキュメント・ブラウザで StockInfo インタフェースを開いていない場合は、次の手順を始める前に 「File」->「Open File」コマンドを使用して開きます。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル 初期サービスを生成するには 1 ドキュメント・ブラウザで FirstForm ノードを選択します。 2 「Generate」->「WIDL」コマンドを選択するか、またはツール をクリックします。 バーの 3 「New Service」ダイアログ・ボックスに次のように入力します。 フィールド 入力 Interface StockInfo Service QuoteYahoo_GetQuote 4 「OK」をクリックします。 5 「Generate New WIDL for Service」ダイアログ・ボックスに、 AOL または IBM などの株式記号を入力します。 変数 s に対して 株式記号を入力 有効な記号であれば、どれを入力してもかまいません。この時 点では、単にこのフォームを送り、生成する HTML ドキュメン トのサンプルを取得するために、入力値を提供します。このダ イアログ・ボックスに入力した記号は記録されず、最終的な WIDL サービスには含まれません。 Web Integration Developer では、変数 s の値を求めるプロン プトのみが表示されます。変数 d にはデフォルトで値 v1 が割り当てられるため、d の値を求めるプロンプトは表示 されません。 6 「Submit」をクリックします。次の WIDL サービスが作成され ます。 QuoteYahoo_GetQuote スタート・ガイド 23 チュートリアル この WIDL サービスは StockInfo ドキュメントの「Services」 フォルダに追加されます。 「StockInfo」インタフェース… レッスン 1 で作成した QuoteYahoo_GetDow に加えて、 QuoteYahoo_GetQuote が 表示されています。 初期サービスの編集 QuoteYahoo_GetDow サービスには出力バインドしかありませんでし たが、このサービスには入力バインドと出力バインドの両方がありま す。 入力バインドの目的は、クライアントから WIDL サービスに渡される 入力変数を定義し、name=value のペアとして渡される入力と変数を Web アプリケーションに対応付けることです。 初期サービスを HTML フォームから生成する場合は、HTML フォー ムで指定された変数ごとに、Web Integration Developer により WIDL 入力変数が 1 つずつ自動的に作成されます。これらの変数の名前は、 デフォルトではフォーム内と同じになりますが、意味がわかりやすく なるように、またはクライアント・アプリケーションで使用される変 数名と一致するように編集できます。 また、入力バインドを編集し、そのバインドに内部変数を追加すること もできます。内部変数は、WIDL サービスにより内部でメンテナンスさ れる変数であり、Web アプリケーションには渡されません。通常は、他 の Web Integration サービスと共有する値を保持するために使用します。 内部変数の作成については、このレッスンでは学習しません。この機能 の詳細は、42ページの「入力変数の作成」を参照してください。 24 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル このサービスの入力バインドを表示するには、ドキュメント・ブラウ ザで次の手順に従って操作します。 1 「Bindings」フォルダの左の+記号をクリックします。 2 QuoteYahoo_GetQuoteInput バインドをクリックします。 QuoteYahoo_GetQuote に対する入力バインド 入力変数 s および d を定義 このバインドが編集ペインに表示されます。このペイン上部の変数リ ストには、このサービスの生成時に自動的に作成された入力変数 s お よび d が表示されます。このリストの「VALUE」列には、各変数に 関連した値が表示されます。s の「VALUE」列が空であることに注意 してください。これは、この変数の値が実行時に指定されることを意 味します。一方、d の値は v1 に明示的に割り当てられています。 次の手順に従って変数名 s および d を、より意味がわかりやすい名前 に変更します。 入力バインドを編集するには 1 変数リストで変数 d をクリックします。この変数の情報が編集 ペインの下半分に表示されます。 2 編集ペインの「Name」フィールドに ReportType と入力し、 [Enter]キーを押します。編集ペイン上部の変数リスト内で、変 数名 d が名前 ReportType に置き換えられることに注意してくだ さい。 スタート・ガイド 25 チュートリアル ! 3 変数リストで変数 s をクリックします。この変数の情報が編集 ペインの下半分に表示されます。 4 編集ペインの「Name」フィールドに CoSymbol と入力し、 [Enter]キーを押します。編集ペイン上部の変数リストで、名前 s が CoSymbol に置き換えられていることに注意してください。 変数リストで「CoSymbol」または「ReportType」を選択すると、これら の変数の元の名前(s と d)が「Form Name」フィールドで指定されてい ることがわかります。これらの名前は変更しないでください。この名前 は、Web アプリケーションで使用する名前と同じである必要がありま す。 出力バインドを編集するには 1 ドキュメント・ブラウザで QuoteYahoo_GetQuoteOutput バイン ドを選択します。 2 表変数が表示されるまで変数リストをスクロールします。 3 各表変数をクリックし、 内容が次のようになっている変数を検 索します。 4 「Sample」タブで、 現在の株価を含むセルを選択します。 5 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Create New Variable From Selection」を選択します。 6 「New Variable」ダイアログ・ボックスに CurrentPrice と入力 し、「OK」をクリックします。 7 次の手順に従って変数リストから他の変数をすべて削除します。 このセルを選択 26 1 変数リストの先頭までスクロールし、リスト内の最初の変数 をクリックします。 2 カーソルをリスト最下部にある CurrentPrice 変数のすぐ上の 変数までドラッグします(CurrentPrice 以外の変数をすべて ハイライトします)。 3 [Del]キーを押します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル このサービスの WIDL コードを表示するには 1 ドキュメント・ブラウザで StockInfo インタフェースを選択しま す。 2 「View」->「WIDL」コマンドを選択します。 3 WIDL ドキュメントを見終わった後、「Cancel」をクリックして ウィンドウを閉じます。 QuoteYahoo_GetQuote の入力 バインドです。 CoSymbol と ReportType の 2 つ の変数が定義されています。 QuoteYahoo_GetQuote の出力 バインドです。 CurrentPrice 変数が定義されて います。 WIDL サービスのテスト 作成したサービスを次の手順に従ってテストします。入力が必要な サービスをテストするときには、必要な入力値を求めるプロンプトが 自動的に表示されます。 スタート・ガイド 27 チュートリアル WIDL サービスをテストするには 1 ドキュメント・ブラウザの「Services」フォルダ内で QuoteYahoo_GetQuote ノードをクリックします。 2 「Tools」->「Test Service」コマンドを選択するか、またはツー ルバーの をクリックします。 有効な株式記号を入力 次に「Submit」をクリック 3 「CoSymbol」フィールドに有効な株式記号を入力し、 「Submit」をクリックします。サービスが実行され、結果が 「Variables」タブに表示されます。 サービスを実際のクライアント・アプリケーション(ブラ ウザや Java アプリケーションなど)から起動してテストす る場合は、そのサービスをサーバーに公開してクライアン トから起動する必要があります。手順は、110ページの 「インタフェースの公開」を参照してください。 WIDL ドキュメントのクローズ WIDL ドキュメントの処理を完了した後は、それをクローズしてド キュメント・ブラウザから削除できます。まだドキュメントを保存し ていなければ、閉じる前に保存するかどうかを確認するプロンプトが 表示されます。 WIDL ドキュメントを閉じるには 28 1 ドキュメント・ブラウザで StockInfo インタフェース(またはそ のインタフェース内の任意のノード)をクリックします。 2 「File」->「Close」コマンドを選択します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド チュートリアル 3 ファイルを保存するかどうかを確認するプロンプトが表示され ます。「OK」をクリックします。 4 「Save」ダイアログ・ボックスで、WIDL ドキュメントを保存 するディレクトリに切り替えます。必要なディレクトリを使用 できますが、WIDL ドキュメントは 1 つのディレクトリにまと めて保存する必要があります。 5 「Save」をクリックします。サービスが WIDL ファイルに保存 されます(WIDL ファイルには、単一インタフェースと、その インタフェースに関連したサービスが含まれています。デフォ ルトでは、ファイル名はそこに含まれるインタフェースの名前 と同じになります)。 レッスンの完了 これで、独自の WIDL アプリケーションを作成するために必要な基本 的スキルは習得できました。この時点で、この 2 つのサービスを Web Integration Developer で編集する作業に進むことができます。たとえば、 一方のサービスの終了時に他方が自動的に起動するように、2 つの サービスを連鎖させることができます。また、条件指示を追加して、 バインドが失敗した場合や、戻されるドキュメントに特定の文字列が 発生する場合の動作を指定することもできます。サービスの編集とテ ストを完了した後は、クライアント・アプリケーションから起動でき るように Web Integration Server に公開します。 情報 参照先 サービス・チェーンの作成 93ページの「サービス・チェーンの作 成」 条件付き実行の指定 80ページの「出力バインドへの条件の割 当て」 サービスの公開 110ページの「インタフェースの公開」 クライアント・アプリケーショ ンからのサービスの起動 123ページの「クライアント・アプリ ケーション用ソース・コードの作成」 スタート・ガイド 29 チュートリアル 30 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 基本的な作業 ドキュメントのオープン、表示および保存 ここでは、Web Integration Developer によるドキュメントのオープン、 表示および保存の手順について説明します。 HTML または XML ドキュメントのオープン 次の手順に従って Web Integration Developer で HTML または XML ド キュメントを開きます。Web(URL を通じて)またはローカル・ファ イル・システムから HTML または XML ドキュメントを開くことがで きます。 Web から HTML または XML ドキュメントを開くには 1 「File」->「Open URL」コマンドを選択します。 2 開く HTML または XML ドキュメントの URL を入力します。 例: 3 http://www.oracle.com 「OK」をクリックします。 要求したドキュメントが取り出され、解析されてドキュメン ト・ブラウザに追加されます。 システムに cookie を発行するドキュメントを開くと、次のメッ セージ・ボックスに警告が自動的に表示されます。 基本的な作業 31 ドキュメントのオープン、表示および保存 cookie は、Web Integration Developer の終了時までメモリーに残っ ています。ディスクには書き込まれません。 cookie を取り出すときにこのメッセージが発行されないようにす る場合は、「Preferences」コマンドで「Cookies」設定をオフにし ます。 ファイル・システムから HTML または XML ドキュメントを開くには 1 「File」->「Open File」コマンドを選択します。 2 開く HTML または XML ドキュメントを選択します。 3 「OK」をクリックします。 要求したドキュメントが取り出され、解析されてドキュメン ト・ブラウザに追加されます。 ヒント 32 Web Integration Developer では、前述の手順以外にも、様々な方法で HTML ドキュメントを自動的に開くことができます。 状況 参照先 リンク・ドキュメント・セッ ト用のサービス・チェーン、 またはフォーム用の一連の サービス・チェーンを作成す る場合 98ページの「自動ロード機能の使用」 JavaScript または複雑なイメー ジ・マップによって開かれる ドキュメント用のサービスを 作成する場合 98ページの「ブラウザ・レコードの使 用」 開いているドキュメントに、フ レームセットまたは開こうとす る他のドキュメントへのリンク が含まれている場合 71ページの「フレームの処理」 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド ドキュメントのオープン、表示および保存 HTML または XML ドキュメントの表示 次の手順に従って、Web Integration Developer で開いた HTML または XML ドキュメントのソース・コードを検証します。 表示するドキュメントをまだ Web Integration Developer で開いていない 場合は、次のステップに進む前に開きます。手順は、31ページの 「HTML または XML ドキュメントのオープン」を参照してください。 HTML または XML ドキュメントを表示するには 1 ドキュメント・ブラウザで、表示する HTML または XML ド キュメントの名前を選択します。 2 「View」->「Source」コマンドを選択します。 そのドキュメントのソース・コードが別のウィンドウに表示さ れます。このウィンドウでは、ソース・コードを検証できます が、編集はできません。 3 ヒント ソース・コードの検証後に、それが含まれているウィンドウを 閉じます。 ドキュメント全体ではなく、特定の要素(特定の表、リストまた はパラグラフなど)のソース・コードの表示を必要とする場合が あります。そのためには、次の図のように、その要素のソース・ プロパティのオブジェクト参照を作成します。 要素のソース・プロパティの オブジェクト参照を作成 要素のソース・コードを表示 基本的な作業 33 ドキュメントのオープン、表示および保存 WIDL ドキュメントのオープン 次の手順に従って、ファイル・システムに保存された WIDL ドキュメ ントを開きます。 WIDL ドキュメントを開くには 1 「File」->「Open File」コマンドを選択します。 2 開く WIDL ドキュメントを選択します。 3 「OK」をクリックします。 WIDL ドキュメントの表示 次の手順に従って WIDL ドキュメントのコンテンツを検証します。 表示するドキュメントをまだ Web Integration Developer で開いていない 場合は、次のステップに進む前に開きます。手順は、31ページの 「HTML または XML ドキュメントのオープン」を参照してください。 WIDL ドキュメントを表示するには 1 ドキュメント・ブラウザで、表示する WIDL ドキュメントの名 前を選択します。 2 「View」->「WIDL」コマンドを選択します。 ドキュメントの WIDL コードが別のウィンドウに表示されます。 WIDL 構文に精通している場合は、編集ウィンドウに表示され たドキュメントを編集できます。「Apply」をクリックすると、 変更内容が Web Integration Developer の編集ペインに自動的に反 映されます。 3 ソース・コードの検証後に、それを含むウィンドウを閉じます。 WIDL ドキュメントの保存 次の手順に従って、Web Integration Developer で作成した WIDL ド キュメントを保存します。 34 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド ドキュメントのオープン、表示および保存 新規の WIDL ドキュメントを保存するには 1 ドキュメント・ブラウザで、保存する WIDL ドキュメントの名 前を選択します。 2 「File」->「Save」コマンドを選択するか、またはツールバーの をクリックします。 3 「Save」ダイアログ・ボックスで、WIDL ドキュメントを保存 するディレクトリに切り替えます。 4 Web Integration Developer により割り当てられるデフォルト名を 使用しない場合は、新規の WIDL ドキュメント名を入力します。 5 「Save」をクリックします。 既存の WIDL ドキュメントを新規ファイルに保存するには 1 ドキュメント・ブラウザで、保存する WIDL ドキュメントの名 前を選択します。 2 「File」->「Save As」コマンドを選択します。 3 「Save」ダイアログ・ボックスで、WIDL ドキュメントを保存 するディレクトリに切り替えます。 4 WIDL ドキュメント名を入力します。 5 「Save」をクリックします。 ドキュメントのクローズ 次の手順に従って、Web Integration Developer で開いた HTML、XML または WIDL ドキュメントを閉じます。 ドキュメントを閉じるには 1 ドキュメント・ブラウザで、閉じるドキュメントの名前を選択 します。 2 「File」->「Close」コマンドを選択します。 基本的な作業 35 XML ドキュメントの処理 XML ドキュメントの処理 XML ドキュメント用の WIDL サービスを作成する手順は、HTML ド キュメントの場合と同じです。Web Integration Developer では、どち らのドキュメントも同じ方法で処理します。ただし、Web Integration Developer には、XML を処理しやすいように、いくつか特殊な機能が 用意されています。 最初に、XML ドキュメントを(ローカル・ファイルまたは Web か ら)開くときに、Web Integration Developer でドキュメント内の要素 に基づいて出力バインドを自動的に作成するか、または空のバインド から始めて変数を手動で作成するかを選択します。 • バインドを自動的に作成できるように選択した場合は、WIDL サービスが自動的に生成され、ドキュメント内の要素について レコードに似た構造を反映するリンク・バインドのセットが作 成されます。 • 出力変数を手動で定義するように選択した場合は、XML ドキュ メントが開き、WIDL サービスと出力バインドを手動で生成し ます。 次に、「View Document」タブは、XML ドキュメントに使用すると特 に役立ちます。このタブは使用しやすいインタフェースとなり、これ によりドキュメントのコンテンツを表示し、その構造を理解し、ポイ ント・アンド・クリックして変数を作成できます。「View Document」タブの使用方法の詳細は、56ページの「「View Document」タブからの出力変数の作成」を参照してください。 最後に、ほとんどの XML ドキュメントには高度に構造化された情報 が含まれているため、Web Integration Developer のレコード機能が特 に役立ちます。この機能に関する追加情報は、77ページの「レコード の処理」を参照してください。 36 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL サービスの作成 Web ドキュメント用の WIDL サービスの作成 次の手順に従って、HTML または XML ドキュメントからデータを抽 出する WIDL サービスを作成します。次のように 2 つの手順がありま す。 • 第 1 の手順では、入力を取らないドキュメントからデータを抽 出するサービス(つまり、データ抽出元の Web ドキュメントを 要求するときに、Web サーバーに入力値を渡さないサービス) の作成方法について説明します。 • 第 2 の手順では、ユーザーからの入力値を必要とするドキュメ ント(通常は CGI アプリケーション)からデータを抽出する サービス(つまり、データ抽出元の Web ドキュメントを要求す るときに、Web サーバーに入力値を送る必要のあるサービス) の作成方法について説明します。 必要に応じて適切な手順を使用してください。 Web ドキュメントに入力を渡さない WIDL サービスを作成するには 1 Web Integration Developer で、情報を抽出する HTML または XML ドキュメントを開きます。この手順は、31ページの 「HTML または XML ドキュメントのオープン」を参照してく ださい。 2 ドキュメント・ブラウザで、この HTML または XML ドキュメ ントのドキュメント・ノードを選択します(フォーム・ノード が表示されていても、ドキュメント・ノードを選択してくださ い)。 WIDL サービスの作成 37 Web ドキュメント用の WIDL サービスの作成 HTML または XML ドキュメントの ドキュメント・ノードを選択した ことを確認します 3 「Generate」->「WIDL」コマンドを選択するか、またはツール バーの 4 をクリックします。 「New Service」ダイアログ・ボックスに次のように入力します。 フィールド 指定 Interface このサービスを保存するインタフェースの名前 Service このサービスの名前 デフォルトでは、生成元となったページの URL と一致するインタ フェース名とサービス名になっています。ただし、必要な名前を 選択して使用できます。アクセスする XML または HTML ドキュメ ントの名前と一致しなくても(または含まなくても)かまいませ ん。 5 「OK」をクリックし、 「New Service」ダイアログ・ボックス を閉じます。 ターゲット・ページのすべての要素を抽出するサービスが作成 されます。このサービスを必要な情報のみが抽出されるように カスタマイズするには、出力バインドを編集します。手順は、 49ページの「出力バインドの指定」を参照してください。 Web ドキュメントに入力を渡す WIDL サービスを作成するには 1 Web Integration Developer で、(情報を含むドキュメントではな く)情報の抽出元ドキュメントをコールするフォームを含む HTML または XML ドキュメントを開きます。手順は、31ペー ジの「HTML または XML ドキュメントのオープン」を参照し てください。 2 ドキュメント・ブラウザで、情報の抽出元ドキュメントを生成 するフォームのノードを選択します。たとえば、ドキュメント が HTML または XML ドキュメント内の第 1 のフォームにより コールされる場合は FirstForm を選択し、第 2 のフォームにより コールされる場合は SecondForm を選択します。 ターゲット・ドキュメントを 生成するフォームのノードを 選択 38 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web ドキュメント用の WIDL サービスの作成 3 このフォームにラジオ・ボタン、チェック・ボックスまたはリ スト・ボックスが含まれている場合は、次の手順に従って各 フィールドに使用する入力値を指定します。 1 フォームのソース・コードを調べて、そこに含まれている 「RADIO」、「CHECKBOX」および「SELECT」の各入力 フィールドを探し出します。 2 これらの各フィールドに割り当てられている名前をメモしま す。 3 各フィールドに関連した有効な値を検証し、使用する値をメ モします。 4 変数リスト内で、最初の「RADIO」、「CHECKBOX」また は「SELECT」入力フィールドを選択します。 5 「Value」フィールドに、その変数に使用する値を入力しま す。 6 フォーム内の「RADIO」、「CHECKBOX」または 「SELECT」入力フィールドごとに、ステップ 4 と 5 を繰り 返します。 変数に新規の値を割り当てるには、 この変数を選択 変数を選択した後、「Value」フィールドに 新規の値を入力 4 「Generate」->「WIDL」コマンドを選択するか、またはツール バーの をクリックします。 WIDL サービスの作成 39 Web ドキュメント用の WIDL サービスの作成 5 「New Service」ダイアログ・ボックスに次のように入力します。 フィールド 指定 Interface このサービスを保存するインタフェースの名前 Service このサービスの名前 デフォルトでは、生成元となったページの URL と一致するインタ フェース名とサービス名が提案されます。ただし、必要な名前を 選択して使用できます。アクセスする XML または HTML ドキュメ ントの名前と一致しなくても(または含まなくても)かまいませ ん。 6 「OK」をクリックします。 7 「Generate New WIDL for Service」ダイアログ・ボックスで、 フォームに有効な入力値のセットを入力します。 有効な値であれば、どんな値でも入力できます。この時点では、 単にフォームを送り、生成される HTML ドキュメントのサンプル を取得するために入力値を提供します。このダイアログ・ボック スに入力した値は記録されず、最終的な WIDL サービスには含ま れません。 8 「Submit」をクリックします。 指定した入力値に基づいてサービスが作成されます。デフォル トで作成されるサービスは、次のとおりです。 • このサービスで定義した入力変数の名前は、HTML フォー ムで指定されている名前と同じになります。ただし、入力 バインドを編集し、クライアント・アプリケーションの命 名要件と一致させたり、より意味のある名前を与えること ができます。手順は、41ページの「入力バインドの指定」 を参照してください。 • このサービスで定義した出力では、Web アプリケーション により戻されるドキュメントからすべての要素が抽出され ます。 クライアント・アプリケーションに渡す特定の情報 のみが抽出されるようにするには、出力バインドを編集す る必要があります。手順は、49ページの「出力バインドの 指定」を参照してください。 「Auto-Load」機能が使用可能で、戻されるドキュメントに 1 つ以 上のフォームが含まれていると、そのドキュメントがドキュメン ト・ブラウザで自動的に開きます。この機能は、別の Web ドキュ メントをコールする Web ドキュメント・セット用のサービス・ チェーンを作成する場合に、特に役立ちます。追加情報について は、98ページの「自動ロード機能の使用」を参照してください。 40 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 入力バインドの指定 入力バインドの指定 WIDL サービスの入力バインドでは、サービスが取る入力変数を定義 し、サービスの起動時に name=value のペアとして Web サーバーに渡 される入力を指定します。 入力バインドの作成 HTML フォームから WIDL サービスを生成すると、そのフォームの 各入力フィールドの変数を定義する入力バインドが自動的に作成され ます(HTML ドキュメントから WIDL サービスを生成する方法の詳 細は、37ページの「Web ドキュメント用の WIDL サービスの作成」 を参照してください)。入力バインドの作成後は、それを編集し、 Web Integration Developer により作成された変数名の変更、定数値の 割当てまたは内部変数の作成ができます。入力バインドの編集方法に ついては、42ページの「入力変数の作成」および44ページの「入力変 数の変更」を参照してください。 WIDL ドキュメントに新規の入力バインドを手動で追加する必要があ る場合は、次の手順で操作します。 WIDL ドキュメントに入力バインドを手動で追加するには 1 入力バインドを追加する WIDL ドキュメントを開きます。手順 は、34ページの「WIDL ドキュメントのオープン」を参照して ください。 2 ドキュメント・ブラウザで、WIDL ドキュメントを選択します。 3 「Edit」->「Add」->「Binding」コマンドを選択します。 4 「Create New Binding」ダイアログ・ボックスに次のように入力 します。 フィールド 5 指定 Binding Name 新規バインドの名前。それを使用するインタ フェース内で一意であれば、どんな名前でも使 用できます。 Binding Type 入力。 「OK」をクリックします。 WIDL サービスの作成 41 入力バインドの指定 6 このバインドのメンバーとなる入力変数を作成します。手順は、 42ページの「入力変数の作成」を参照してください。 WIDL に精通している場合は、テキスト・エディタで WIDL ド キュメントに必要な要素とパラメータを直接入力し、入力バイン ドを手動で作成できます。WIDL に関する説明は、135ページの 「付録 A: WIDL リファレンス」を参照してください。 入力バインドの削除 次の手順に従って WIDL ドキュメントから入力バインドを削除します。 入力バインドを削除するには 1 Web Integration Developer で、削除する入力バインドを含む WIDL ドキュメントを開きます。手順は、34ページの「WIDL ド キュメントのオープン」を参照してください。 2 ドキュメント・ブラウザで、削除する入力バインドを選択しま す。 3 次のいずれかの操作を行います。 • 「Edit」->「Delete」コマンドを選択します。 • 「Edit」->「Cut」コマンドを選択します(この操作では、 バインドがクリップボードにコピーされるため、別の WIDL ドキュメントに貼り付けることができます)。 • [Del]キーを押します。 入力変数の作成 次の手順に従って、入力バインドに入力変数を追加します。 入力バインドに変数を追加するには 42 1 入力変数を追加する WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、入力変数を追加する入力バインド を選択します。 3 編集ペインで をクリックし、新規の変数を作成します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 入力バインドの指定 4 編集ペインで次のフィールドに入力し、この変数のパラメータ を指定します。 フィールド Name 指定 この入力変数の名前。クライアント・アプリ ケーションでこの変数に使用される名前を指定 する必要があります。 パイプラインからの変数を参照する場 合は、その変数の名前をこのフィール ドに入力します。 Type この入力変数のデータ型。 入力変数の場合、有効なデータ型は String のみです。 Value Send Value Only この変数の初期値。 • この値が実行時に指定される場合は、 「Value」フィールドを空にします。 • この変数に定数値を割り当てる場合は、そ の値を入力します。 この変数を name=value のペアとして送信する か、値のみを送信するかを指定します(たとえ ば、ISINDEX では、入力は後者の方法で渡され ます)。ほとんどの場合は、このオプションを オフにします。 例: 変数 CustNo の値が 101 で、かつ、このフィールド が次のように設定されている場合。 「Send Value Only」 の設定 Set Empty CustNo の送信方法 オン http://www.webapp?101 オフ http://www.webapp?CustNo=101 この変数を空の値として送信(たとえば、 name=として送信)するかどうかを指定しま す。このオプションをオンにすると、この変数 に NULL 値が割り当てられます。 例: 変数 CustNo の「Set Empty」をオンにすると、 次のように送られます。 http://www.webpage.app?CustNo=&NextVar… WIDL サービスの作成 43 入力バインドの指定 フィールド Usage 指定 この入力変数をサービスで使用する方法。次の いずれか 1 つを選択します。 「DEFAULT」 - この変数は、「Service」設定で 指定した GET または POST メソッドを使用して Web アプリケーションに渡されます。 「Service」設定の追加情報は、115ページの 「サービス・パラメータの表示または変更」を 参照してください。 「INTERNAL」 - この変数は内部でメンテナン スされます。内部変数は、Web アプリケーショ ンには渡されません。 「HEADER」 - この変数は HTTP ヘッダーの一 部として Web サーバーに渡されます。 5 Form Name Web アプリケーションで使用される入力変数 名。Web アプリケーションでクライアントから name=value のペアを受信するために使用される 名前を指定する必要があります。 Binding 入力バインドには使用しません。 追加する変数ごとにステップ 3 および 4 を繰り返します。 入力変数の変更 ここでは、入力バインドで定義した変数を変更(編集、改名または削 除)する手順について説明します。 入力変数に対して行った変更は、「Edit」->「Undo」コマンドを選択す ると取り消すことができます。 入力変数の編集 次の手順に従って、入力バインドの特定の入力変数に関連したパラ メータを変更します。 入力変数を編集するには 44 1 編集する変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、この変数を含む入力バインドを選 択します。 3 変数リストで、編集する変数を選択します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 入力バインドの指定 4 必要に応じて次のパラメータを編集します。 フィールド Name 指定 この入力変数の名前。クライアント・アプリ ケーションでこの変数に使用される名前を指定 する必要があります。 パイプラインからの変数を参照する場 合は、その変数の名前をこのフィール ドに入力します。 Type この入力変数のデータ型。 入力変数の場合、有効なデータ型は String のみです。 Value Send Value Only この変数の初期値。 • この値が実行時に指定される場合は、 「Value」フィールドを空にします。 • この変数に定数値を割り当てる場合は、そ の値を入力します。 この変数を name=value のペアとして送信する か、値のみを送信するかを指定します(たとえ ば、IXINDEX では入力は後者の方法で渡されま す)。ほとんどの場合は、このオプションをオ フにします。 例: 変数 CustNo の値が 101 で、かつ次の場合。 「Send Value Only 」の設定 Set Empty CustNo の送信方法 オン http://www.webapp?101 オフ http://www.webapp?CustNo=101 この変数を空の値として(たとえば、name=と して)送信するかどうかを指定します。このオ プションをオンにすると、この変数に NULL 値 が割り当てられます。 例: 変数 CustNo の「Set Empty」をオンにすると、 次のように送られます。 http://www.webpage.app?CustNo=&NextVar… WIDL サービスの作成 45 入力バインドの指定 フィールド Usage 指定 この入力変数がサービスで使用される方法。次 のいずれか 1 つを選択します。 「DEFAULT」 - この変数は「Service」設定で指 定した GET または POST メソッドを使用して Web アプリケーションに渡されます。 「INTERNAL」 - この変数は内部でメンテナン スされます。内部変数は、Web アプリケーショ ンには渡されません。 「HEADER」 - この変数は HTTP ヘッダーの一 部として Web サーバーに渡されます。 Form Name Web アプリケーションで使用される入力変数の 名前。Web アプリケーションでクライアントか ら name=value のペアを受信するために使用され る名前と一致する必要があります。 Binding 入力バインドでは使用しません。 入力変数の改名 次の手順に従って、入力バインドの入力変数に新規の名前を割り当て ます。 入力変数を改名するには 1 改名する変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、この変数を含む入力バインドを選 択します。 3 変数リストで、改名する変数を選択します。 4 「Name」フィールドに新規名を入力します。 5 [Enter]キーを押します。 入力変数の削除 次の手順に従って、入力バインドから変数を削除します。 46 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 入力バインドの指定 入力バインドから変数を削除するには 1 入力変数を削除する WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、削除する変数を含む入力バインド を選択します。 3 変数リストで、削除する変数を選択して次のいずれかの操作を 行います。 • 「Edit」->「Delete」コマンドを選択します。 • 「Edit」->「Cut」コマンドを選択します(この操作では、 変数がクリップボードにコピーされるため、必要な場合は 別の WIDL ドキュメントに貼り付けることができます)。 • [Del]キーを押します。 • をクリックします。 この変数の削除を取り消す場合は、「Edit」->「Undo」コマンド を選択します。 入力変数のコピー ここでは、変数をコピーする方法について説明します。入力変数は、 バインド間または同じバインド内でコピーできます(後者の操作は 「クローニング」と呼ばれます)。 別の入力バインドへの入力変数のコピー 次の手順に従って、入力変数を別の入力バインドにコピーします(変 数を同じバインドにコピーする場合は、48ページの「同じバインドへ の入力変数のコピー」を参照してください)。 入力変数を別のバインドにコピーするには 1 コピーする変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、コピーする変数を含む入力バイン ドを選択します。 WIDL サービスの作成 47 入力バインドの指定 3 変数リストで、コピーする変数を選択し、次のどちらかの方法 で変数をクリップボードにコピーします。 • 「Edit」->「Copy」コマンドを選択します。 • マウスの右ボタンをクリックし、ポップアップ・メニュー から「Copy」を選択します。 4 ドキュメント・ブラウザで、この変数のコピー先となる入力バ インドを選択します。 5 変数リスト内をクリックし、次のどちらかの操作を行います。 • 「Edit」->「Paste」コマンドを選択します。 • マウスの右ボタンをクリックし、ポップアップ・メニュー から「Paste」を選択します。 変数が変数リストの一番下に追加されます。 同じバインドへの入力変数のコピー 次の手順に従って、バインド内で入力変数をコピーします(変数を別 のバインドにコピーする手順は、47ページの「入力変数のコピー」を 参照してください)。 この手順は「クローニング」と呼ばれます。この手順では、元の変数と 同じパラメータを持つ変数が新規の名前で作成されます。クローニング という方法は、元の変数のクローンを作成し、必要に応じて変更するだ けで、既存の変数に似た新規変数を手早く作成できる容易な方法です。 入力変数を同じバインドにコピーするには 1 ドキュメント・ブラウザで、コピーする変数を含む入力バイン ドを選択します。 2 変数リストで、コピーする変数を選択します。 3 をクリックします。 元の変数と同じパラメータを持つ新規変数が NewVariable とい う名前で作成されます(この変数は変数リストの一番下に追加 されるため、表示するにはリストを下方へスクロールする必要 があります)。 入力バインドにすでに NewVariable という変数がある場合は、この 変数に使用する新規名の入力を求めるプロンプトが表示されま す。 4 48 次の手順に従って新規変数名を指定します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 1 変数リストで NewVariable を選択します。 2 この変数の新規名を「Name」フィールドに入力します。 3 [Enter]キーを押します。 出力バインドの指定 WIDL サービスの出力バインドでは、サービスにより生成される出力 を定義します。これには、サービスにより HTML または XML ドキュ メントから抽出されるデータ、サービスに割り当てる定数、サービ ス・チェーン内の他のサービスから渡される値などがあります。 出力バインドの作成 WIDL サービスを HTML または XML ドキュメントから生成する場合 は、ドキュメント内の要素タイプごとに変数を定義する出力バインド が自動的に作成されます(WIDL サービスを HTML ドキュメントか ら生成する方法の詳細は、37ページの「Web ドキュメント用の WIDL サービスの作成」を参照してください)。出力バインドの作成後は、 そのバインドを編集し、クライアントに戻す情報のみが抽出されるよ うにするか、定数値を追加するか、他のサービスから入力値や出力値 を取得できます。出力バインドの編集方法の詳細は、42ページの「入 力変数の作成」および44ページの「入力変数の変更」を参照してくだ さい。 出力バインドを WIDL ドキュメントに手動で追加する場合は、次の手 順を使用します。 出力バインドを WIDL ドキュメントに手動で追加するには 1 出力バインドを追加する WIDL ドキュメントを開きます。手順 は、34ページの「WIDL ドキュメントのオープン」を参照して ください。 2 ドキュメント・ブラウザで、WIDL ドキュメントを選択します。 3 「Edit」->「Add」->「Binding」コマンドを選択します。 4 「Create New Binding」ダイアログ・ボックスに次のように入力 します。 WIDL サービスの作成 49 出力バインドの指定 フィールド 指定 Binding Name 新規バインドの名前。そのバインドを使用するイ ンタフェース内で一意であれば、どんな名前でも 使用できます。 Binding Type 出力。 5 「OK」をクリックします。 6 このバインドのメンバーとなる個々の出力変数を作成します。 手順は、49ページの「出力バインドの作成」を参照してくださ い。 WIDL に精通している場合は、テキスト・エディタで必要な要素とパラ メータを WIDL ドキュメントに直接入力し、出力バインドを手動で作成 できます。WIDL に関する説明は、135ページの「付録 A: WIDL リファ レンス」を参照してください。 出力バインドの削除 次の手順を使用して、WIDL ドキュメントから出力バインドを削除し ます。 出力バインドを削除するには 1 Web Integration Developer で、削除する出力バインドを含む WIDL ドキュメントを開きます。手順は、34ページの「WIDL ド キュメントのオープン」を参照してください。 2 ドキュメント・ブラウザで、削除する出力バインドを選択しま す。 3 次のいずれかの操作を行います。 • 「Edit」->「Delete」コマンドを選択します。 • 「Edit」->「Cut」コマンドを選択します(この操作では、 削除するバインドのコピーが作成されるため、別の WIDL ドキュメントに貼り付けることができます)。 • [Del]キーを押します。 50 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 このバインドの削除を取り消す場合は、「Edit」->「Undo」コマ ンドを選択します。 抽出する情報の検索 Web Integration Developer では、WIDL サービスの生成時に、そのド キュメントからすべてのデータを抽出する出力バインドが作成されま す。ほとんどの場合、クライアント(または別の Web Integration サー ビス)には、データの一部のみを渡します。そのためには、抽出する 情報を検索し、その情報のオブジェクト参照を含む変数を作成する必 要があります。 ここでは、Web Integration Developer で開いている HTML または XML ドキュメント内で情報を検索するための複数のテクニックについて説 明します。 変数リストを使用した情報の検索 情報の検索方法の 1 つは、HTML または XML ドキュメントを初めて 開くとき、またはそのドキュメントから WIDL サービスを生成すると きに生成される、変数リストをスクロールすることです。この方法は、 すでにドキュメントの構造をよく理解し、抽出する情報を含む要素の タイプ(表、リスト、パラグラフなど)がわかっている場合に特に効 率的です。 変数リストを使用して情報を検索するには 1 情報を含む要素が見つかるまで変数リストをスクロールします (必要な情報が表に含まれている場合は表変数までスクロール し、パラグラフに含まれている場合はパラグラフ変数までスク ロールします)。 2 変数リストで要素のコンテンツを表示するには、変数をマウス で選択します。コンテンツが「Sample」タブに表示されます。 WIDL サービスの作成 51 出力バインドの指定 変数リストで変数を クリック 「Sample」タブに要素の コンテンツが表示されます 「View Document」タブを使用した情報の検索 「View Document」タブには、XML または HTML ドキュメントの要 素が階層ツリーとして表示されます。ツリーの各ノードは、ドキュメ ント内の要素を表します。 「View Document」タブ をクリック ドキュメント内の要素が表示 されます 52 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 「View Document」タブを使用して情報を検索するには 「View Document」タブで情報を検索するには、編集ペインで「View Document」タブを選択し、要素ツリーをスクロールします。 • ツリーで要素を開くには、その要素をダブルクリックするか、そ の左にある+記号をクリックします。 • 要素のコンテンツを表示するには、その要素をマウスの右ボタン でクリックし、ポップアップ・メニューから次のどちらかを選択 します。 • – その要素のコンテンツを表示する場合は、「Text」を選択し ます。 – ソース・コードを表示する場合は、「Source」を選択します。 特定の文字列または HTML/XML タグを検索するには、「Find」 ツールを使用します。手順は、次の「「Find」ツールを使用した 情報の検索」を参照してください。 「Find」ツールを使用した情報の検索 次の手順に従って、ドキュメント内で特定のテキスト文字列または HTML/XML タグを検索します。 「Find」ツールを使用して情報を検索するには 1 2 をクリックします。 「Find」フィールドに、 検索するテキスト文字列またはタグ名 を入力します。 WIDL サービスの作成 53 出力バインドの指定 3 検索オプションを選択します。 グループ・ボックス 選択するオプション Search Within ドキュメント全体で検索する場合は 「Document」 選択した要素内でのみ検索する場合は 「Selection」 Search For ドキュメントの要素のコンテンツ(要素 に含まれるデータ)内で検索する場合は 「Text」 ドキュメントの要素(<TD>、<TABLE>、 <OL>など)を検索する場合は 「Tag Names」 4 「Find Next」をクリックしてドキュメント内で正方向に検索す るか、 「Find Previous」をクリックして逆方向に検索します。 出力変数の作成 Web ドキュメントから情報を抽出するには、その情報のオブジェクト 参照を含む変数を作成します。また、定数値や他のサービスにより生 成される値を含む出力変数も作成できます。 ここでは、出力変数の作成手順について説明します。オブジェクト変 数を手動で作成する方法のみでなく、「Sample」タブまたは「View Document」タブで選択した情報から変数を自動的に作成する方法に ついても説明します。 「Sample」タブからの出力変数の作成 次の手順に従って、「Sample」タブで選択した要素から出力変数を自 動的に作成します。 「Sample」タブから出力変数を作成するには 54 1 変数に割り当てる情報を検索し、「Sample」タブに表示します。 手順は、51ページの「変数リストを使用した情報の検索」を参 照してください。 2 「Sample」タブで、抽出する情報を含む要素を選択します。 選択対象 実行するステップ 単一の要素 その要素を「Sample」タブでクリックします。 表の 1 行 その行番号を「Sample」タブでクリックします。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 選択対象 実行するステップ 表の 1 列 その列番号を「Sample」タブでクリックします。 表の一部 セルの範囲をマウスでドラッグし、その部分をハ イライトします。 3 マウスの右ボタンをクリックし、ポップアップ・メニューを表 示します。 4 「Create New Variable From Selection」コマンドを選択します。 ステップ 2 で複数の要素を選択した場合は、次のダイアログ・ ボックスが表示されます。 5 6 このダイアログ・ボックスが表示された場合は、次のどちらか をオンにして「OK」をクリックします。 オンに設定 目的 Selected Elements Only 選択した特定の要素セットのオブジェク ト参照を作成します。 All Similar Elements 選択した要素に類似する(親オブジェク ト内の)すべての要素のオブジェクト参 照を作成します。 「New Variable」ダイアログ・ボックスに新規変数の名前を入力 し、「OK」をクリックします。 選択した要素のオブジェクト参照を含む新規変数が作成され、 変数リストの一番下に追加されます(表示するには、リストの 一番下までスクロールします)。 7 この変数のパラメータを編集する場合は、その変数を変数リス トで選択し、その設定を編集ペインで変更します。手順は、67 ページの「出力変数の編集」を参照してください。 WIDL サービスの作成 55 出力バインドの指定 「View Document」タブからの出力変数の作成 次の手順に従って、「View Document」タブで選択した要素から出力 変数を自動的に作成します。 「View Document」タブから出力変数を作成するには 1 「View Document」タブを選択し、変数に割り当てる情報を検索 します。手順は、52ページの「「View Document」タブを使用し た情報の検索」または53ページの「「Find」ツールを使用した 情報の検索」を参照してください。 2 抽出する情報を含む要素を選択します。 選択対象 実行するステップ 単一の要素 そのノードをツリー内でクリックしま す。 ノード内の複数の要素 (表の複数のセルや行な ど) [Ctrl]キーを押しながら、含める各要素 をクリックします。ノードを選択解除 するには、[Ctrl]キーを押しながら、そ のノードを再度クリックします。 3 マウスの右ボタンをクリックし、ポップアップ・メニューを表 示します。 4 「Create New Variable From Selection」コマンドを選択します。 ステップ 2 で複数の要素を選択した場合は、次のダイアログ・ ボックスが表示されます。 5 56 このダイアログ・ボックスが表示された場合は、次のどちらか をオンにして「OK」をクリックします。 オンに設定 目的 Selected Elements Only 選択した特定の要素グループのオブジェ クト参照を作成します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 6 オンに設定 目的 All Similar Elements 選択した要素に類似する(親オブジェク ト内の)すべての要素のオブジェクト参 照を作成します。 「New Variable」ダイアログ・ボックスに新規変数の名前を入力 し、 「OK」をクリックします。 選択した要素のオブジェクト参照を含む新規変数が作成され、 変数リストの一番下に追加されます(表示するには、リストの 一番下までスクロールします)。 7 この変数のパラメータを編集する場合は、その変数を変数リス トで選択し、その設定を編集ペインで変更します。手順は、67 ページの「出力変数の編集」を参照してください。 出力変数の手動作成 次の手順に従って、出力バインドに変数を追加します。 ! このペインのテキスト・フィールドのいずれかにテキストを入力した場 合は、値の入力後に必ず[Enter]キーを押してください。[Enter]キーを押 さないと、値が WIDL ドキュメントに書き込まれないことがあります。 出力バインドに新規変数を作成するには 1 出力変数を追加する WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、変数を追加する出力バインドを選 択します。 3 編集ペインで 4 必要に応じて編集ペインで次のフィールドに入力し、この変数 のパラメータを指定します。 フィールド をクリックし、新規変数を作成します。 指定 Name この出力変数の新規の名前。 Type この出力変数の新規データ型。次の 1 つを選択 します。 文字列値。 WIDL サービスの作成 57 出力バインドの指定 フィールド 指定 文字列値の配列(リスト)。 文字列値の 2 次元の表。 単一のレコード。このデータ型の使用方法 に関する追加情報は、77ページの「レコードの 処理」を参照してください。 レコードの配列。このデータ型の使用方法 に関する追加情報は、77ページの「レコードの 処理」を参照してください。 Reference この変数に割り当てるオブジェクト参照。戻さ れる HTML または XML ドキュメントからの データを変数に割り当てる場合は、その情報を 識別するオブジェクト参照を入力します。オブ ジェクト参照の指定方法は、59ページの「オブ ジェクト参照の指定」を参照してください。 この変数にパイプライン値または定数値を割り 当てる場合は、かわりに「Value」フィールドを 使用します。このフィールドは空白にしてくだ さい。 Value この変数に割り当てる定数値またはパイプライ ン変数。 • 変数に定数値を割り当てるには、その値を 「Value」フィールドに入力します。 • パイプライン値(サービス・チェーン内の 他のサービスにより生成された値)を割り 当てるには、その値の名前を% 記号で囲ん で入力します。 例: %CustNo% Usage この出力変数がサービスで使用される方法。次 のオプションを 1 つ選択します。 「DEFAULT」 - この変数はクライアント・アプ リケーションに戻されます。 「INTERNAL」 - この変数は Web Integration Server 内部でメンテナンスされます。内部変数 は、クライアントには戻されません。 58 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 フィールド 指定 Binding この変数に含まれるレコードの構造を定義する バインドの名前。Record 型または Record Array 型でのみ使用されます。このパラメータの詳細 は、77ページの「レコードの処理」を参照して ください。 Null OK 戻されるドキュメント内で指定のオブジェクト 参照が見つからない場合に、このサービスを失 敗にするかどうかを指定します。この設定をオ ンにしない場合、戻されるドキュメント内に指 定のオブジェクト参照が存在しないと、サービ スは自動的に失敗します。 Set Empty この変数を空の値として設定するかどうかを指 定します。このオプションをオンにすると、こ の変数には NULL 値("")が割り当てられま す。 オブジェクト参照の指定 オブジェクト参照では、Web(Integration)オブジェクト・モデル (WOM)内でデータの位置を指定して、抽出するデータの特定部分 を識別します。このモデルでは、HTML または XML ドキュメントは、 そのドキュメントの要素を含む配列のコレクションとして表されます。 たとえば、ドキュメントのすべてのパラグラフは配列 p[]に、その行 は配列 li[]に、その表は配列 table[]に収集されます。 各配列には、0 から順番に索引番号が付いています。特定の要素を抽 出するには、そのアドレスをメンバーである配列内で指定します。た とえば、次の例は、HTML ドキュメントの最初のパラグラフのオブ ジェクト参照を示しています。 doc.p[0].text オブジェクトのプロパティ オブジェクト参照では、配列内で要素の位置を識別するのみでなく、 その要素から抽出する情報も指定します。前述の例では、.text 接尾 辞で doc.p[0] に含まれるテキストを抽出するように指定しています。 この接尾辞は、プロパティと呼ばれます。後述のように、このプロパ ティは、Web Integration の事前定義のプロパティの 1 つでも、要素の 属性(WIDTH、ALIGN、HREF など)でもかまいません。 Web Integration の事前定義のプロパティ Web(Integration)オブジェクト・モデル(WOM)には、要素から特 定種類の情報を抽出できるように、事前定義のプロパティ・セットが WIDL サービスの作成 59 出力バインドの指定 用意されています。たとえば、次の<A>要素に含まれるテキストを取 得するとします。 <A NAME="home" HREF="http://www.oracle.com"> Return To Home </A> 次のように.text プロパティを使用します。 doc.a[0].text 次の表では、Web(Integration)オブジェクト・モデル(WOM)に用 意されている事前定義のプロパティ・セットについて説明します。各 プロパティに 2 つの名前があることに注意してください。このため、 要素が WOM プロパティと同じ名前の属性を持つ場合は、代替名を使 用できます(2 つの名前が同一であれば、WOM プロパティ名より属 性名が優先されます)。 使用するプロパティ .text .txt 取得される情報 指定した要素に含まれるテキスト。指定した要 素に子要素が含まれている場合は、すべての子 要素のコンテンツも抽出されます。 例: doc.a[0].text 結果: "Return To Home" .value .val 指定した要素に含まれる値。指定した要素に子 要素が含まれている場合は、すべての子要素の 値も抽出されます。 例: doc.a[0].value 結果: "Return To Home" .source .src 指定した要素の XML または HTML ソース・ コード。 例: doc.a[0].source 結果: <A NAME="home" HREF="http://www.oracle.com"> Return To Home </A> .index .idx 指定した要素の索引。 例: doc.a[0].index 結果: 0 60 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 使用するプロパティ .reference .ref 取得される情報 指定したオブジェクトの完全オブジェクト 参照。 例: doc.a[0].reference 結果: Doc.a[0] 要素の属性 Web(Integration)オブジェクト・モデル(WOM)に用意されている 事前定義のプロパティのみでなく、属性名もプロパティとして指定で きます。その場合、オブジェクト参照ではその属性の値が戻されます。 たとえば、次の HTML 要素を考えます。 <A NAME="home" HREF="http://www.oracle.com"> Return To Home </A> 次のオブジェクト参照を使用するとします。 doc.a[0].HREF HREF 属性から次の情報が抽出されます。 "http://www.oracle.com" 複数要素の指定 ドキュメントから単一アイテムを抽出するには、次の例のように、そ の配列の単一メンバーを指定するオブジェクト参照を指定します。 参照 データの抽出元 doc.p[0].text ドキュメントの最初のパラグラフ doc.p[1].text ドキュメントの 2 番目のパラグラフ doc.h1[5].text ドキュメントの 6 番目の見出し オブジェクト配列から複数のメンバーを抽出するには、次の例のよう に、特殊な索引表記を使用して各オブジェクトを指定します。 参照 データの抽出元 doc.p[ ].text ドキュメントのすべてのパラグラフ doc.p[1-10].text ドキュメントのパラグラフ 1∼10 doc.p[1-end] ドキュメントのパラグラフ 1 から終わりまで doc.p[1,3,7] パラグラフ 1、3 および 7 doc.p[1-3,5-7] パラグラフ 1∼3 および 5∼7 WIDL サービスの作成 61 出力バインドの指定 参照 データの抽出元 doc.[2+2] パラグラフ 2、4、6、8… 索引値オプションの詳細は、付録 B の「オブジェクト参照」を参照 してください。 ネストした要素の参照 要素を、それが含まれる任意の要素との相対(親コンテナとの相対) 位置で指定できます。たとえば、次の HTML フラグメント内の 2 つ 目のボールド要素(下線で表示)を考えます。 <p>A paragraph <b>element</b></p> <ul> <li> The <b>first</b> list <b>element</b> <li> The <b>second</b> list <b>element</b> <li> The <b>third</b> list <b>element</b> </ul> このボールド要素を参照するには、次の 3 通りの方法があります。 doc.b[4].text doc.ul[0].b[3].text doc.ul[0].li[1].b[1].text 索引値は、参照に含める親要素に応じて異なります。 オブジェクト参照内の最初のコンテナは常に.doc です。ただし、ド キュメント内のリージョンを定義する場合は、そのリージョンの名前 を最初のコンテナとして指定できます。リージョンの使用方法の詳細 は、73ページの「リージョンの処理」を参照してください。 オブジェクト参照の有効範囲 また、ネストしたオブジェクト参照では、参照の有効範囲も定義しま す。次の例では、それぞれ要素 b[0]を参照していますが、オブジェク ト参照内で各要素をネストして、その参照の有効範囲を限定していま す。 参照 有効範囲 doc.b[0].text ドキュメント全体 doc.ul[0].b[0].text ドキュメント内の最初の順不同リスト doc.ul[0].li[2].b[0].text ドキュメント内の最初の順不同リスト の 3 番目のリスト項目 これらの参照を前述した「ネストした要素の参照」の HTML の例に 適用すると、b[0]の値が場合ごとに異なることがわかります。 62 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 表内のデータの参照 ドキュメント内の表の内容全体を取り出すには、その表の索引値を指 定し、その表の行とセルに[]を使用します。 doc.table[0].tr[].td[].text オブジェクト参照を使用して表を抽出する場合は、その変数のデータ型 が Table に設定されていることを確認してください。 表参照の他に、他のオブジェクト参照で結果として表を作成できます。 たとえば、次の参照では、ドキュメントのすべてのリスト項目から、 ボールドのテキストがすべて取得されます。 doc.ul[0].li[].b[].text その結果には、各リスト項目からボールドの項目が 1 つ以上含まれる ことがあります。この型の出力を保持するには、変数名も Table 型の である必要があります。 3 つ以上の配列の組合せによる参照は、2 次元の表に縮小されます。 索引値としての検索文字列の使用 索引番号のかわりにパターン一致文字列を使用して、要素配列のメン バーを選択できます。このタイプの参照では、.text プロパティが指定 のパターン一致文字列と一致する要素のデータが戻されます。たとえ ば、次のオブジェクト参照があるとします。 doc.p['*webintegration*'].text このオブジェクト参照では、どこかに文字列「webintegration」を含む パラグラフがすべて戻されます。 ワイルド・カード記号 索引値のかわりに使用するパターン一致文字列には、次のワイルド・ カードを使用できます。 ワイルド・カード記号 目的 * 0 文字以上の任意の文字列と一致します。 ? 任意の 1 文字と一致します。 % 1 単語(空白を含まない一連の文字列)と一致し ます。 \ 前述のメタキャラクタをエスケープします。 WIDL サービスの作成 63 出力バインドの指定 一致する文字列には、大/小文字区別があります。 索引値としての正規表現 前述のように Web Integration の標準パターン一致構文を使用するかわ りに、正規表現を使用してパターン一致文字列を指定できます。この 方法を使用する場合は、次の例のように、正規表現をスラッシュ (/)文字で囲みます。 doc.p[/*webintegration*/].text この例では、どこかに文字列「webintegration」を含むパラグラフがす べて戻されます。正規表現の詳細は、159ページの「付録 C: 正規表 現」を参照してください。 属性の一致 デフォルトでは、一致文字列は指定した要素の.text プロパティと比較 されますが、次の例のように他のプロパティと一致文字列を指定する と、そのプロパティと一致させることができます。 doc.a(HREF='*oracle.com*').src この例では、*oracle.com*へのハイパーテキスト・リンクがすべて抽 出されます。 ! 特定のプロパティを検索する場合は、プロパティ割当て文を大カッコで はなく丸カッコで囲む必要があります。 NAME 属性の一致 NAME 属性を含む要素は、名前で直接参照できます。たとえば、名 前 weather を持つすべての要素からテキストを抽出するには、次の参 照を使用します。 doc.weather.text 名前 weather を持つすべての要素から、width 値が 8%のすべての表セ ルのテキストを取得するには、次の参照を使用します。 doc.weather.td(width='8%').text マスクを使用したデータの抽出 オブジェクト参照を指定すると、その参照では指定したプロパティの 内容全体が戻されます。たとえば、次の参照があるとします。 doc.p[1].text 64 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 この参照では、指定したパラグラフからすべてのテキストが戻されま す。戻されるテキストの一部のみを抽出する場合は、.text プロパティ にマスクを適用して不要な情報を除去できます。たとえば、次のオブ ジェクト参照があるとします。 doc.p[1].text['&list*'] この参照では、単語「list」および後続のすべての文字が除去されま す。 次の表は、マスクの構成に使用する記号を示しています。 記号 目的 ? 結果から 1 文字を除去します。 * 任意の文字を含む文字列を除去します。 % 1 単語(空白を含まない一連の文字列)を除去しま す。 $ 1 単語を収集して結果に含めます。 & 任意の文字を含む文字列を収集し、結果に含めます。 \ 前述のメタキャラクタをエスケープします。 マスク・パターンはオブジェクト参照のテキストと照合され、パター ンがなくなると残りの文字が結果に含まれます。 マスクでの正規表現 前述のように Web Integration の標準マスク構文を使用するかわりに、 正規表現を使用してマスクを指定できます。この方法を使用する場合 は、次の例のように正規表現をスラッシュ(/)で囲みます。 doc.p[1].text[/.list*/]?? この例では、単語「list」と後続のすべての文字が結果から除去され ます。正規表現の詳細は、159ページの「付録 C: 正規表現」を参照し てください。 行を使用したデータの選択 要素に<BR>タグが含まれている場合は、line[]配列を使用して、そ の要素の各行のアドレスを個別に指定できます。たとえば、次のパラ グラフの 3 行目を参照するとします。 <p> The current balance for customer account<BR> 1001-233<BR> WIDL サービスの作成 65 出力バインドの指定 is $14,009.50<BR> as of 14:04pm 10/16/98. </P> 次のオブジェクト参照を使用できます。 doc.p[0].line[2].text また、これと同じ方法で<PRE>要素内の複数のテキスト行を参照する こともできます。たとえば、事前フォーマット済みテキストの次のセ グメントの 2 行目を取得するとします。 <PRE> ITEM DESC QTY UPRICE TOTAL 06-5449 1” ITC Casing 250 .43 $ 107.50 010-13 #4 PVC Line 50 23.50 $1175.00 00901R Tak Connector 25 3.50 $ 87.50 </PRE> 次のオブジェクト参照を使用します。 doc.pre[0].line[1].text 他の要素と同様に、行配列の索引として数値範囲またはパターン一致 文字列を使用できます。 文字範囲を使用したデータの抽出 特殊なプロパティ・マスクを使用すると、結果から特定の文字範囲を 戻すことができます。たとえば、次のオブジェクト参照があるとしま す。 doc.p[1].text[0-9] このオブジェクト参照では、2 番目のパラグラフから最初の 10 文字 のみが抽出されます。 文字範囲と行配列を組み合せると、複雑なオブジェクト参照を作成し、 きわめて柔軟にテキスト・オブジェクトから特定のデータを取得でき ます。たとえば、次のオブジェクト参照があるとします。 doc.pre[0].line[*connector*].text[43-50] このオブジェクト参照では、文字列「connector」を含む事前フォー マット済みの最初の要素のうち、すべての行の列 43∼50 からテキス トが取得されます。 出力変数への定数値の割当て 定数値を持つ出力変数を作成するには、57ページの「出力変数の手動 作成」で説明した手順で変数を作成し、「Value」フィールドで定数 66 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 値を指定します(定数値を NULL 値にする場合は、「Set Empty」オ プションをオンにします)。 出力変数の変更 ここでは、出力バインドで定義した変数を変更(編集、改名または削 除)する手順について説明します。 出力変数に加えた変更は、「Edit」->「Undo」コマンドを選択すると取 り消すことができます。 出力変数の編集 次の手順に従って、出力バインドの変数に割り当てたパラメータを変 更します。 ! このペインでいずれかのテキスト・フィールドを変更した場合は、新規 の値の入力後に[Enter]キーを押してください。[Enter]キーを押さない と、新規の値が WIDL ドキュメントに書き込まれないことがあります。 出力変数を編集するには 1 編集する変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、この変数を含む出力バインドを選 択します。 3 変数リストで、編集する変数を選択します。 4 必要に応じて次のパラメータを編集します。 フィールド 指定 Name この出力変数の新規名。 Type この出力変数の新規データ型。次の 1 つを選択 します。 文字列値。 文字列値の配列(リスト)。 文字列値の 2 次元の表。 WIDL サービスの作成 67 出力バインドの指定 フィールド 指定 単一レコード。このデータ型の使用方法に 関する追加情報は、77ページの「レコードの処 理」を参照してください。 レコードの配列。このデータ型の使用方法 に関する追加情報は、77ページの「レコードの 処理」を参照してください。 Reference この変数に割り当てるオブジェクト参照。戻さ れる HTML または XML ドキュメントからの データを変数に割り当てる場合は、その情報を 識別するオブジェクト参照を入力します。オブ ジェクト参照の指定方法は、59ページの「オブ ジェクト参照の指定」を参照してください。 この変数にパイプライン値または定数値を割り 当てる場合は、かわりに「Value」フィールドを 使用します。このフィールドは空白にしてくだ さい。 Value この変数に割り当てる定数値またはパイプライ ン変数。 • 変数に定数値を割り当てるには、その値を 「Value」フィールドに入力します。 • パイプライン値(つまり、サービス・ チェーン内の別のサービスにより生成され た値)を割り当てるには、その値の名前を% 記号で囲んで入力します。 例: Usage %CustNo% この出力変数がサービスにより使用される方 法。次のどちらかのオプションを選択します。 「DEFAULT」 - この変数はクライアント・アプ リケーションに戻されます。 「INTERNAL」 - この変数は Web Integration Server 内部でメンテナンスされます。内部変数 は、クライアントには戻されません。 68 Binding この変数に含まれるレコードの構造を定義する バインドの名前。Record 型または Record Array 型にのみ使用します。このパラメータの詳細 は、77ページの「レコードの処理」を参照して ください。 Null OK 戻されるドキュメント内で指定のオブジェクト 参照が見つからない場合に、このサービスを失 敗にするかどうかを指定します。この設定をオ フにした場合は、指定のオブジェクト参照が戻 されるドキュメント内に存在しないと、サービ Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドの指定 フィールド 指定 スは自動的に失敗します。 Set Empty この変数を空の値として設定するかどうかを指 定します。このオプションをオンにすると、こ の変数に NULL 値("")が割り当てられます。 出力変数の改名 次の手順に従って、出力バインドの変数に新規の名前を割り当てます。 出力変数を改名するには 1 改名する変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、この変数を含む出力バインドを選 択します。 3 変数リストで、改名する変数を選択します。 4 「Name」フィールドに新規の名前を入力します。 5 [Enter]キーを押します。 出力変数の削除 次の手順に従って、出力バインドから変数を削除します。 出力バインドから変数を削除するには 1 出力変数を削除する WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、削除する変数を含む出力バインド を選択します。 3 変数リストで、削除する変数を選択して次のいずれかの操作を 行います。 • 「Edit」->「Delete」コマンドを選択します。 WIDL サービスの作成 69 出力バインドの指定 • 「Edit」->「Cut」コマンドを選択します(この操作では、 変数がクリップボードにコピーされるため、必要に応じて 別の WIDL ドキュメントに貼り付けることができます)。 • [Del]キーを押します。 • をクリックします。 この変数の削除を取り消す場合は、「Edit」->「Undo」コマンド を選択します。 出力変数のコピー ここでは、変数をコピーする手順を説明します。出力変数は、バイン ド間または同一バインド内でコピーできます(後者は「クローニン グ」と呼ばれます)。 別のバインドへの出力変数のコピー 次の手順に従って、出力変数を別の出力バインドにコピーします(同 じバインド内で出力変数のコピーを作成する場合は、71ページの「同 じバインドへの出力変数のコピー」の手順を参照してください)。 出力変数を別のバインドにコピーするには 1 コピーする変数を含む WIDL ドキュメントを開きます。手順は、 34ページの「WIDL ドキュメントのオープン」を参照してくだ さい。 2 ドキュメント・ブラウザで、コピーする変数を含む出力バイン ドを選択します。 3 変数リストで、コピーする変数を選択し、次のどちらかの操作 で変数をクリップボードにコピーします。 • 「Edit」->「Copy」コマンドを選択します。 • マウスの右ボタンをクリックし、ポップアップ・メニュー から「Copy」を選択します。 4 ドキュメント・ブラウザで、この変数のコピー先となる入力バ インドを選択します。 5 変数リスト内のどこかをクリックし、次のどちらかの操作を行 います。 • 「Edit」->「Paste」コマンドを選択します。 70 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド フレームの処理 • マウスの右ボタンをクリックし、ポップアップ・メニュー から「Paste」を選択します。 変数が変数リストの一番下に追加されます。 同じバインドへの出力変数のコピー 次の手順に従って、1 つのバインド内で出力変数のコピーを作成しま す(変数を別のバインドにコピーする場合は、70ページの「別のバイ ンドへの出力変数のコピー」の手順を参照してください)。 この手順は「クローニング」と呼ばれます。この方法では、元の変数と 同じパラメータを持つ変数が新規の名前で作成されます。クローニング という方法は、元の変数のクローンを作成し、必要に応じてコピーを変 更するだけで、既存変数に類似する新規変数を手早く作成できる容易な 方法です。 出力変数を同じバインドにコピーするには 1 ドキュメント・ブラウザで、コピーする変数を含む出力バイン ドを選択します。 2 変数リストで、コピーする変数を選択します。 をクリックします。 3 元の変数と同じパラメータを持つ新規の変数 NewVariable が作 成されます(この変数は変数リストの一番下に追加されるため、 表示するには下方へスクロールする必要があります)。 出力バインドにすでに変数 NewVariable がある場合は、新規名の入 力を求めるプロンプトが表示されます。 4 次の手順に従って、新規変数の名前を指定します。 1 変数リストで NewVariable を選択します。 2 変数の新規名を「Name」フィールドに入力します。 3 [Enter]キーを押します。 フレームの処理 フレームを使用するドキュメントからデータを抽出するには、フレー ムセットを含むドキュメントではなく、フレームに表示されるドキュ WIDL サービスの作成 71 フレームの処理 メントを開く必要があります。たとえば、HTML ドキュメントに次の フレームセットが含まれているとします。 <FRAMESET cols="20%, 80%"> <FRAMESET rows="100, 200"> <FRAME src="http://www.oracle.TOC.html"> <FRAME src="http://www.oracle.ProductInfo.html"> </FRAMESET> 2 番目のフレームから情報を抽出する場合は、次の URL から情報を 直接取得するサービスを作成する必要があります。 http://www.oracle.ProductInfo.html 通常は、フレームのソース・ドキュメントから情報を直接抽出するサー ビスを作成するだけで、フレームセットを含むドキュメント全体をバイ パスできます。ただし、セッション ID を設定するために最初にフレーム セット・ドキュメントを開く構成になっている Web サイトの場合は、2 つのサービスを作成してサービス・チェーンにする必要があります。最 初のサービスでは、フレームセットを含む HTML ドキュメントを開い て、開く必要のあるドキュメントの URL を抽出できます。第 2 のサービ スでは、そのドキュメントを開いて必要な情報を抽出できます。サービ ス・チェーンの作成方法については、93ページの「サービス・チェーン の作成」を参照してください。 Web Integration Developer で HTML ドキュメントを開いたときに、フ レームセットが含まれていることがわかった場合は、次の手順に従っ てフレームの実際のソース・ドキュメントをすばやく開くことができ ます。 フレームのソース・ドキュメントを開くには 72 1 フレームセットを含むドキュメント内で、変数リストからフ レーム変数を選択します。 2 「Sample」タブで、情報の抽出元ドキュメントを含むフレーム 要素を選択します。 3 マウスの右ボタンをクリックし、「Open As URL」を選択しま す。 4 「Open URL」ダイアログ・ボックスで「OK」をクリックしま す。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド リージョンの処理 この手順を使用すると、Web Integration Developer で開いているドキュメ ントで参照されるすべての URL を開くことができます。たとえば、表示 するアンカー変数の.src プロパティと、ドキュメント内のすべてのハイ パーリンクの URL を表示します。次に、「Sample」タブでそのリンクの 1 つを選択し、前述のステップ 3 および 4 に従って開くことができます。 ヒント 「Sample」タブに URL が表示された 場合、ドキュメントをすばやく開く には… …URL を選択し… 次にマウスの右ボタンをクリックし、 「Open As URL」を選択します。 リージョンの処理 リージョンは、コンテンツの変動が大きいドキュメントから情報を確 実に抽出するためのメカニズムです。リージョンを使用すると、ド キュメントの特定セクションを分離し、そのセクション内のオブジェ クトのアドレスを、前後のコンテンツに発生する変化の影響を受けな い方法で指定できます。 たとえば、ドキュメントに 3 つの基本的なセクションが含まれ、それ ぞれに特定の見出しが付いているが、各見出しの下の情報量は毎日変 動する場合は、それぞれのコンテンツのアドレスを独立して指定でき るように、各セクションをリージョンとして定義します。これにより、 上のセクションの要素数にまったく依存しないオブジェクト参照を作 成し、WIDL サービスの信頼性を高めることができます。 リージョンを定義するときには、ドキュメント内の定数(または予測 可能な)オブジェクトに基づく始点と終点を持つ上位レベルのコンテ ナを作成します。これにより、ドキュメントの始点ではなく、その リージョンの先頭への相対位置でオブジェクトを参照できます。 たとえば、次の HTML ドキュメントの製品カタログ・セクション (網掛け部分)から情報を取り出す場合は、PRODUCT CATALOGS 見 出しで始まって TRAINING SCHEDULE 見出しで終わるリージョン ProdCat を作成できます。 <H1>NEW PRODUCT ANNOUNCEMENTS</H1> <P><IMG SRC="Image1.gif" WIDTH=197 HEIGHT=141></P> WIDL サービスの作成 73 リージョンの処理 <P>Test drive Version 2.1!</P> <H1>PRODUCT CATALOGS</H1> <P>To browse our product line, select a catalog below.</p> <TABLE> <TR><TD><A HREF="http://abc.catacct.html"> Accounting Products<A></TD></TR> <TR><TD><A HREF="http://abc.cattsup.html"> Technical Support Catalog<A></TD></TR> </TABLE> <H1>TRAINING SCHEDULES</H1> <TABLE> . . . </TABLE> このリージョンを定義すると、そこに含まれる要素の参照には、 ProdCat の最上位レベルを基準とする索引を使用できます。たとえば、 リージョン ProdCat の最初のパラグラフにアクセスするには、次の参 照を使用できます。 ProdCat.p[0].text リージョン内のオブジェクトを参照するには、オブジェクト参照を リージョン名で始める必要があることに注意してください。 リージョンの作成 ドキュメント内でリージョンを定義するには、そのドキュメントに使 用する出力バインド内でリージョンを作成します。 リージョンを作成するには 1 ドキュメント・ブラウザで、リージョンを作成する出力バイン ドを選択します。 2 編集ペインで「Regions」タブを選択します。 3 74 ボタンをクリックしてリージョンを作成します。 4 「Name」テキスト・フィールドで、名前 NewRegion を削除し、 このリージョンに割り当てる名前を入力します。 5 「View Document」タブを選択し、このリージョンの開始を表す 要素を選択します。「View Document」タブでオブジェクトを検 索する手順は、52ページの「「View Document」タブを使用した Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド リージョンの処理 情報の検索」または53ページの「「Find」ツールを使用した情 報の検索」を参照してください。 6 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Update Start Reference」を選択します。 このオブジェクトのオブジェクト参照が、「Regions」タブの 「Start」テキスト・ボックスに挿入されます。この参照を必要 に応じて編集できます。たとえば、次のようなパターン一致索 引値を使用して、このオブジェクトを定義できます。 doc.h1[Product Catalogs*] ! 「Start」または「End」フィールドでオブジェクト参照を手動で編 集する場合は、その参照の最後にプロパティを追加しないでくだ さい。 7 「View Document」タブで、このリージョンの終了を表す要素を 選択します。 8 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Update End Reference」を選択します。 このオブジェクトのオブジェクト参照が、「Regions」タブの 「End」テキスト・ボックスに挿入されます。ステップ 6 で説明 したように、この参照を編集できます。 リージョンには、Start オブジェクトと End オブジェクトの両方が 組み込まれます。 リージョン内のオブジェクトの変数の作成 リージョンの作成後は、「View Regions」タブを使用してリー ジョンベースのオブジェクト参照(親リージョンを基準として 指定されるオブジェクト参照)を作成できます。 「View Regions」タブから変数を作成するには 1 ドキュメント・ブラウザで、リージョンを含む出力バインドを 選択します。 2 編集ペインで「Regions」タブを選択します。 3 「Region」リストで、抽出する情報を含むリージョンを選択し ます。 WIDL サービスの作成 75 リージョンの処理 4 「View Regions」タブをクリックし、抽出する要素を選択しま す。 5 マウスの右ボタンをクリックし、ポップアップ・メニューを表 示します。 6 「Create New Variable From Region」コマンドを選択します。 7 「New Variable」ダイアログ・ボックスに新規変数の名前を入力 し、「OK」をクリックします。 選択した要素のオブジェクト参照を含む新規変数が作成され、 変数リストの一番下に追加されます(表示するには、リストの 一番下までスクロールします)。この変数のオブジェクト参照 は、作成元になったリージョンを基準にして定義されているこ とに注意してください。 8 76 この変数のパラメータを編集する場合は、変数リストで変数を 選択し、その設定を編集ペインで変更します。手順は、67ペー ジの「出力変数の編集」を参照してください。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド レコードの処理 レコードの処理 発注レコードや患者レコードのように構造化されたデータ・セットを 表すには、Record 型と Record Array 型が使用されます。通常、この 2 つのデータ型は XML ドキュメントのうちレコードに似た構造を表す ために使用されますが、多くの場合は HTML ドキュメントにも使用 されています。たとえば、Record Array 型は、表から特定のセルを抽 出する場合に適したデータ型です。 また、レコードを使用すると、要素内の情報を任意にグループ化でき ます。たとえば、レコードを作成し、アンカー要素内の.text およ び.href プロパティをグループ化できます。このようにレコードを使 用すると、これらのプロパティが直接参照される場合に発生する同期 化エラーがなくなります。たとえば、ドキュメントに次のアンカーが 含まれているとします。 <a HREF="www.oracle.com">Oracle Home Page</a> <a HREF="www.aol.com"><img src="http://aol.com/m4.gif" alt="AOL Home Page"></a> <a HREF="www.ibm.com">IBM Home Page</a> と a[1].href を抽出するバインドでは、次のように一致し ないテキストと URL が戻されます。 a[1].text • • a[1].text には IBM Home Page が含まれます(第 2 のアンカーに はテキスト・プロパティがなく、かわりに IMG 要素が含まれてい るためです)。 a[1].href には www.aol.com が含まれます。 .text と.href のレコードを作成すると、この 2 つのプロパティを a[] 配列の特定のメンバーに関して参照できます。アンカーにこの 2 つの プロパティの 1 つがなければ、そのメンバーのレコードには、その変 数に関して NULL 値のみが含まれます。 WIDL では、レコードは出力バインドとして表されます。バインド内 の変数は、レコードを構成する個々の「フィールド」(XML レコー ド内の要素、HTML 表のセルなど)を表します。レコードにアクセス するには、Record 型または Record Array 型の変数を作成し、 「Binding」パラメータを使用してレコードにリンクします。 WIDL サービスの作成 77 レコードの処理 出力バインドにレコードを 組み込むには、 Record 型または Record Array 型の変数を作成し… レコードのコンテンツを定義する 出力バインドの名前を指定します 表の 1 行を表すレコード変数を作成するには 1 ドキュメント・ブラウザで、表を含む出力バインドを選択しま す。 2 「View Document」タブで、表の 1 行を選択します。 3 マウスの右ボタンをクリックし、「Create Record」を選択しま す。 4 このレコードの名前を入力し、「OK」をクリックします。 指定した名前は、このレコードの参照を含む変数と、そのコンテ ンツを定義する出力バインドの両方に割り当てられます。 78 5 ドキュメント・ブラウザで、新規バインドを選択します。 6 「View Document」タブで、次の手順に従って、このレコードに 組み込むセルごとに変数を作成します。<TD>要素のかわりに <TH>要素のオブジェクト参照が生成されるため、表見出しから のセルは使用しないでください。 1 「View Document」タブでセルを選択します。 2 マウスの右ボタンをクリックし、「Create Variable From Selection」を選択します。 3 変数名を入力して「OK」をクリックします。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド レコードの処理 7 レコードの変数を作成した後に、元の出力バインドを選択しま す。 8 ステップ 4 で作成した変数を選択します(変数リストの最後に あります)。 9 必要な行が抽出されるようにオブジェクト参照を変更します。 例: 抽出対象 要素の設定 すべての行 tr[] 2 行目以降のすべての 行 tr[1-end] 行 1、3 および 5 tr[1,3,5] オブジェクト参照の他の要素は変更しないでください。 tr[]要素の後には、プロパティ(.text、.src、.val など)また は子要素を追加しないでください。 WIDL サービスの作成 79 出力バインドへの条件の割当て 出力バインドへの条件の割当て 条件は、WIDL サービスが、実行時に各種の状況に応じて実行するア クションを指定するためのオプション設定です。たとえば、サービス が正常に実行された場合に、別のサービスを自動的に起動するように 条件を設定できます。また、サービスが失敗するか、特定のデータ値 を受信した場合に、クライアント・アプリケーションにエラー・メッ セージを戻すように条件を設定することもできます。 ! 条件は、特定のサービスではなく出力バインドに割り当てます。した がって、条件の作成時には、そのバインドを使用するすべてのサービス に適用されることに注意してください。 次の表は、割当て可能な条件を示しています。 条件 Chain 目的 このサービスが終了するか、指定した条件が発生 した場合に、別のサービスを自動的に起動しま す。 この条件タイプを使用してサービス・チェーンを 作成します。手順は、93ページの「サービス・ チェーンの作成」を参照してください。 Rebind 指定した条件が発生した場合に、結果に代替バイ ンドを適用します。 この条件は、サービスが受信するドキュメントの コンテンツに基づいて適切なバインドを選択する のに役立ちます。追加情報と手順は、89ページの 「出力のリバインド」を参照してください。 Fail 指定した条件が発生した場合に、クライアント・ アプリケーションにメッセージを戻します。 このタイプの条件を使用すると、出力バインドが 失敗するか(データが戻されないなど)、サービ スが特定のエラー・メッセージを受信した場合 に、クライアント・アプリケーションに通知でき ます。追加情報と手順は、85ページの「失敗条件 の使用」を参照してください。 Retry 指定した条件が発生した場合に、サービスを自動 的に再実行します。 通常、この条件は実行時に発生するタイムアウト 条件に応答するために使用します。追加情報と手 順は、87ページの「再試行条件の使用」を参照し てください。 1 つの出力バインドに 1 つ以上の条件を割り当てることができます。 80 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドへの条件の割当て バインド前条件とバインド後条件 条件は、次のどちらかによりトリガーできます。 • 戻されたドキュメント内の参照要素(特定のオブジェクトまた はデータ値)の有無 または • 出力バインドの成否 特定のオブジェクトまたはデータ値(ドキュメント・タイトルの内容 や、特定の文字列の存在など)に基づく条件は、バインド前条件と呼 ばれます。これらの条件は、「Conditions」タブの「Reference」およ び「Match」フィールドで指定する要素の有無によりトリガーされま す。バインド前条件は、戻されたドキュメントの解析直後に出力バイ ンドが適用される前に評価されます。これらの条件はバインドの成否 には基づいていないため、長時間かかるバインド・プロセスの発生前 に実行できます。 出力バインドの成否に基づく条件は、バインド後条件と呼ばれます。 バインド後条件は、バインド・プロセスの終了直後に評価されます。 評価の順序 1 つの出力バインドに複数の条件を割り当てると、各条件は作成順に バインドに追加されます。 各条件は作成順に 「条件リスト」に 追加される。 実行時には、バインド内の条件は次のように評価されます。 WIDL サービスの作成 81 出力バインドへの条件の割当て 1 最初にバインド前条件が評価されます。出力バインドに複数の バインド前条件が含まれている場合は、「Conditions」タブに表 示される順序で評価されます。 2 最後にバインド後条件が評価されます。出力バインドに複数の バインド後条件が含まれている場合は、「Conditions」タブに表 示される順序で評価されます。 例: バインドに次の条件 A および B が含まれているとします。 A CHAIN if Binding Succeeds (バインド後条件) B CHAIN if Reference is Matched (バインド前条件) 条件 B はバインド前条件なので最初に評価されます。 バインドに次の条件 A、B および C が含まれているとします。 A CHAIN if Binding Succeeds (バインド後条件) B CHAIN if Reference in Matched (バインド前条件) C REBIND if Reference is Matched (バインド前条件) 条件 B が最初に評価され、その次に条件 C、最後に A の順に評価さ れます。 「Conditions」タブで複数のバインド前条件またはバインド後条件を 指定している場合は、表示の順序が実行時に評価される順序になって いることを確認してください。条件の順序を調整する必要がある場合 は、83ページの「条件リストの順序の変更」を参照してください。 82 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力バインドへの条件の割当て 「Conditions」タブの処理 ここでは、「Conditions」タブの処理に使用する基本的なテクニック について説明します。 条件リストの順序の変更 出力バインド内の条件の順序は、次の手順で簡単に変更できます。 条件リスト内で条件を移動するには 1 まだ一番手前に表示されていない場合は、「Conditions」タブを クリックします。 2 条件リストで、位置を移動する条件を選択します。 3 マウスの右ボタンをクリックし、「Move Up」または「Move Down」コマンドを選択します。 「Conditions」タブからのサービスのテスト Web Integration Developer には、「Variables」タブで現在の結果セット を置き換えなくてもサービスをテストできるように、「Conditions」 タブに特殊なテスト機能が用意されています。この機能は、特殊ケー スの入力(無効な値、選択されたデータ範囲など)によって生成され た結果の検証や、その結果に対応するための条件の作成などに役立ち ます。 「Conditions」タブからサービスをテストするには 1 ドキュメント・ブラウザで、テストする出力バインドを選択し ます。 2 まだ一番手前に表示されていない場合は、「Conditions」タブを クリックします。 3 をクリックします(ツールバーのボタ 「Conditions」タブで ンをクリックしないでください)。 4 サービスに入力が必要な場合は、このテストに使用する値を入 力して「Submit」をクリックします。 WIDL サービスの作成 83 出力バインドへの条件の割当て 5 「View Document」タブをクリックし、このテストの結果を表示 します。 この「View Document」タブには、このテストに固有のドキュメ ントが表示されます(テストでは、「Variables」タブに表示さ れるドキュメントは置き換えられないため注意してください)。 「Conditions」タブにドキュメントが表示された後、それを使用 して参照要素とパターン一致文字列を簡単に検索し、指定でき ます。 「View Document」タブからの参照要素の指定 次の手順に従って、「View Document」タブで選択した要素からの 「Reference」および「Match」フィールドの内容を指定します(この 2 つのフィールドで参照要素を指定します)。 「View Document」タブを使用して参照要素を指定するには 1 条件リストで、「Reference」および「Match」フィールドを指 定する条件を選択します(「Action」リストで「If Reference…」 アクションを選択していることを確認してください。このアク ションを選択しないと、「Reference」および「Match」フィール ドは使用できません)。 2 「View Document」タブで、この条件の参照要素として使用する 要素を選択します。 ヒント 3 84 通常、HEAD 要素の TITLE オブジェクトは、FAIL および RETRY 条件への使用に適した参照要素です。 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Update Reference」コマンドを選択します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド ランタイム障害の処理 選択したオブジェクトの位置と内容に基づいて「Reference」お よび「Match」フィールドの内容が更新されます。これらの値は 必要に応じて変更できます。 ランタイム障害の処理 出力バインドが実行時に失敗すると、サービスからクライアント・ア プリケーションに標準エラー・メッセージが戻されます。ただし、 WIDL 条件を使用すると、障害の発生時やサービスがリモート Web サイトから特定のエラー・メッセージを受信した場合に、代替アク ションを実行できます。 失敗条件の使用 失敗条件を使用して、特定の条件が発生した場合にサービスを終了し、 クライアント・アプリケーションにエラー・メッセージを戻します。 たとえば、Web アプリケーションが無効な入力の受信時にエラー・ メッセージを戻す場合は、そのエラー・メッセージをサービスで検出 し、そのメッセージ全体または一部をクライアントに戻す必要があり ます。 失敗条件をトリガーするには、次の 2 通りの方法があります。 • 戻されたドキュメント内の参照要素の有無に基づいてトリガーで きます。たとえば、障害の基礎として、戻されるドキュメントの 特定要素に文字列「Invalid Account Number」が表示されるかどう かを使用できます。 • 出力バインドの成否に基づいてトリガーできます(出力バインド の障害は、必要な値のうち 1 つ以上が NULL のときに発生しま す)。 どちらのトリガーを使用する場合も、クライアント・アプリケーショ ンに戻すエラー・メッセージには、「Conditions」タブで指定する標 準メッセージ、または戻されるドキュメントからのオブジェクトを使 用できます。 失敗条件を作成するには 1 ドキュメント・ブラウザで、失敗条件を割り当てる出力バイン ドを選択します。 WIDL サービスの作成 85 ランタイム障害の処理 2 3 編集ペインで「Conditions」タブを選択します。 をクリックし、新規の条件を作成します。 4 「Fail」オプションをオンにします。 5 次のどちらかの方法で、エラーの発生時にクライアントに戻す エラー・メッセージのテキストを指定します。 戻す内容 戻されるドキュメントか らのオブジェクト 手順 1. 「Is Reference」オプションをオンにし ます。 2. 「Reason」フィールドにオブジェクト 参照を入力します。 または 「View Document」タブでオブジェクト を選択し、マウスの右ボタンをクリッ クして「Update Reason」を選択しま す。 特定のメッセージ 6 「Action」リストで、この失敗条件をトリガーする条件を選択 します。 アクション 7 86 1. 「Is Text」オプションをオンにします。 2. 「Reason」フィールドにメッセージを 入力します。 目的 Fail if Binding Fails このバインドが失敗したときに、クライ アントにエラーを戻します。 Fail if Binding Succeeds このバインドが成功したときに、クライ アントにエラーを戻します。 Fail if Reference Is Matched 戻されるドキュメントに指定の参照要素 が含まれている場合に、クライアントに エラーを戻します。 Fail if Reference is not Matched 戻されるドキュメントに指定の参照要素 が含まれていない場合に、クライアント にエラーを戻します。 ステップ 6 で「Fail if Reference…」オプションのどちらかを選 択した場合は、サービスを終了させてエラーを戻させるために 有無がチェックされる参照要素を指定します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド ランタイム障害の処理 フィールド Reference 指定 オブジェクト参照形式による参照要素。 たとえば、参照要素が 3 番目のパラグラフのテキ ストにある場合は、次のように指定します。 doc.p[2].text Match 参照要素が特定の値を含む必要がある場合のパ ターン一致文字列(一致文字列を指定しなけれ ば、その値に関係なく、参照要素の存在のみに基 づいてリバインドされます)。 たとえば、参照要素に単語「Business Account」 を含む必要がある場合は、次の一致文字列を指定 します。 *Business Account* 一致文字列を指定するときには、次のワイルド・ カード記号を使用できます。 記号 ヒント 8 説明 * 0 文字以上の任意の文字列と一致 します。 ? 任意の 1 文字と一致します。 % 1 単語(空白を含まない一連の文 字列)と一致します。 \ 前述のメタキャラクタをエスケー プします。 「View Document」タブで参照要素を選択する と、「Reference」と「Match」の値を自動的に 設定できます。手順は、84ページの「「View Document」タブからの参照要素の指定」を参 照してください。 新規の条件の位置を変更する場合は、次の手順で操作します。 1 その条件を条件リストで選択します。 2 マウスの右ボタンをクリックします。 3 ポップアップ・メニューで「Move Up」または「Move Down」を選択します。 再試行条件の使用 再試行条件を使用して、バインドが失敗した場合にリモート Web サーバーに対して要求を自動的に再送します。この条件を出力バイン WIDL サービスの作成 87 ランタイム障害の処理 ドに割り当てる場合は、要求の再送回数と再送までのサーバーの待機 時間を指定できます。この条件の最も一般的な用途は、タイムアウ ト・エラーによるサービスの失敗を防止することです。 バインドの失敗が最大回数に達すると、障害が発生してクライアント にエラーが戻されます。 再試行条件を作成するには 1 ドキュメント・ブラウザで、再試行条件を割り当てる出力バイ ンドを選択します。 2 編集ペインで「Conditions」タブを選択します。 3 をクリックし、新規の条件を作成します。 4 「Retry」オプションをオンにします。 5 「Action」リストで、再試行をトリガーする条件を選択します。 アクション 6 目的 Retry if Binding Fails バインドが失敗した場合に、このサービスを 再実行します。 Retry if Reference is not Matched 戻されるドキュメントに指定の参照要素が含 まれていない場合に、このサービスを再実行 します。 ステップ 5 で「Retry if Reference…」オプションを選択した場合 は、ドキュメント内に存在しない場合に再試行がトリガーされ る参照要素を指定します。 フィールド Reference 指定 オブジェクト参照形式による参照要素。 たとえば、参照要素が 3 番目のパラグラ フのテキストにある場合は、次のように 指定します。 doc.p[2].text 88 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力のリバインド フィールド Match 指定 参照要素が特定の値を含む必要がある場 合のパターン一致文字列(一致文字列を 指定しなければ、その値に関係なく、参 照要素の存在のみに基づいてリバインド されます)。 たとえば、参照要素が単語「Business Account」を含む必要がある場合は、次 の一致文字列を指定します。 *Business Account* 一致文字列を指定する場合は、次のワイ ルド・カード記号を使用できます。 記号 ヒント 7 説明 * 0 文字以上の任意の文字 列と一致します。 ? 任意の 1 文字と一致しま す。 % 1 単語(空白を含まない 一連の文字列)と一致し ます。 \ 前述のメタキャラクタを エスケープします。 「View Document」タブで参照要素を選択し、「Reference」と 「Match」の値を自動的に設定することもできます。84ページの 「「View Document」タブからの参照要素の指定」を参照してく ださい。 新規の条件の位置を変更する場合は、次の手順で操作します。 1 その条件を条件リストで選択します。 2 マウスの右ボタンをクリックします。 3 ポップアップ・メニューで「Move Up」または「Move Down」を選択します。 出力のリバインド リバインド条件を使用して、サービスが受信する HTML または XML ドキュメントに代替バインドを適用します。この条件は、サービスか ら渡された入力に基づいて根本的に異なる HTML 構造を生成する Web アプリケーションを処理する場合に役立ちます。 WIDL サービスの作成 89 出力のリバインド たとえば、一部の Web アプリケーションでは、入力値が特定の範囲 内にあるかどうかや、特定の基準と一致しているかどうかに応じて、 まったく異なるページが戻されます。その一例がバンキング・アプリ ケーションで、送信する口座番号が個人口座用か法人口座用かに応じ て、まったく異なる 2 つのページが戻されます。 2 つのページの構造が大幅に異なっていると、2 つの結果に 1 つの出 力バインドを使用できない場合があります。この場合は、リバインド 条件を使用して、サービスが受信するドキュメントに基づいた適切な バインドを適用できます。 代替バインドを適用するには、次の 2 通りの方法があります。 • 初期バインドの成否に基づいて、代替バインドを適用できます (バインド・エラーは、その必須値のうち 1 つ以上が NULL のと きに発生します)。たとえば、あるバインドでサービスを起動し、 そのバインドが失敗した場合は別のバインドを自動的に適用し、 それも失敗した場合はさらに別のバインドを適用できます。この テクニックを使用すると、機能するバインドが見つかるまで、 サービスはリンクされたバインドのセットを 1 つずつ失敗させて いくことになります。このテクニックのデメリットは時間がかか ることで、使用に適しているかどうかを判断するには、各バイン ドを実行する必要があります。 • 戻されるドキュメント内の参照要素の有無に基づいて、代替バイ ンドを適用できます。たとえば、前述のバンキング・サービスで は、戻されるドキュメントの特定の要素に単語「Business Account」が表示されるかどうかに基づいて、代替バインドを割り 当てることができます。 次の手順では、出力バインドにリバインド条件を割り当てる方法につ いて説明します。最初の手順は、このバインドが失敗したときに単に 代替バインドを割り当てる場合に使用できるショートカット方法です。 第 2 の手順では、戻されるドキュメント内のオブジェクトやデータ値 の有無など、他の状況に基づくリバインド条件の作成方法について説 明します。 失敗時リバインド条件の作成(ショートカット) 前提条件: Web Integration Developer に代替バインド(リバインドする バインド)が存在し、開いている必要があります。存在しない場合は、 手順を開始する前に作成します。開いている WIDL ドキュメント内に 代替バインドがない場合は、それを含む WIDL ドキュメントを開きま す。 90 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 出力のリバインド 1 ドキュメント・ブラウザで、リバインド条件を割り当てる出力 バインドを選択します。 2 編集ペインで、まだ表示されていない場合は「Variables」タブ を選択します。 3 をクリックします。 4 「Rebind」ダイアログ・ボックスで、このバインドが実行時に 失敗した場合に適用する出力バインドを選択します。 5 「OK」をクリックします。 作成したリバインド条件を表示する場合は、「Conditions」タブ をクリックします。 リバインド条件を作成するには 前提条件: 代替バインド(リバインドするバインド)が Web Integration Developer に存在し、開いている必要があります。存在しな い場合は、手順を開始する前に作成します。開いている WIDL ドキュ メント内に代替バインドがない場合は、それを含む WIDL ドキュメン トを開きます。 1 ドキュメント・ブラウザで、リバインド条件を割り当てる出力 バインドを選択します。 2 編集ペインで「Conditions」タブを選択します。 3 をクリックし、新規の条件を作成します。 4 「Rebind」オプションをオンにします。 5 「Interface」リストから、代替バインドを含むインタフェースを 選択します。 6 「Binding」リストから、代替バインドを選択します。 7 「Action」リストで、リバインドをトリガーする条件を選択し ます。 WIDL サービスの作成 91 出力のリバインド アクション 8 目的 Rebind if Binding Fails このバインドが失敗したときに、代替バ インドを適用します。 Rebind if Binding Succeeds このバインドが成功したときに、代替バ インドを適用します。 Rebind if Reference Is Matched 戻されるドキュメントに指定の参照要素 が含まれている場合に、代替バインドを 適用します。 Rebind if Reference is not Matched 戻されるドキュメントに指定の参照要素 が含まれていない場合に、代替バインド を適用します。 前述のステップで「Rebind if Reference…」オプションのどちら かを選択した場合は、リバインドをトリガーするために有無が チェックされる参照要素を指定します。 フィールド Reference 指定 オブジェクト参照形式による参照要素。 たとえば、参照要素が 3 番目のパラグラフのテキ ストにある場合は、次のように指定します。 doc.p[2].text Match 参照要素が特定の値を含む必要がある場合のパ ターン一致文字列(一致文字列を指定しなけれ ば、その値に関係なく、参照要素の存在のみに基 づいてリバインドされます)。 たとえば、参照要素が単語「Business Account」 を含む必要がある場合は、次の一致文字列を指定 します。 *Business Account* 一致文字列を指定する場合は、次のワイルド・ カード記号を使用できます。 記号 92 説明 * 0 文字以上の任意の文字列と一致 します。 ? 任意の 1 文字と一致します。 % 1 単語(空白を含まない一連の文 字列)と一致します。 \ 前述のメタキャラクタをエスケー プします。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービス・チェーンの作成 ヒント 9 「View Document」タブで参照要素を選択し、「Reference」と 「Match」の値を自動的に設定することもできます。84ページの 「「View Document」タブからの参照要素の指定」を参照してく ださい。 新規の条件の位置を変更する場合は、次の手順で操作します。 1 その条件を条件リストで選択します。 2 マウスの右ボタンをクリックします。 3 ポップアップ・メニューで「Move Up」または「Move Down」を選択します。 サービス・チェーンの作成 サービス・チェーンを使用して、複数のサービスを順番に実行します。 たとえば、サービス・チェーンにより、複数の HTML または XML ド キュメントにアクセスし、各ドキュメントから情報を収集し、結果 セット全体をクライアントに戻すことができます。また、必要な情報 を取得するために一連の特定ドキュメントにナビゲートする必要のあ る Web サイトを処理することも可能です。 サービス・チェーンを介した変数の引渡し サービス・チェーンの実行時には、各サービスが順番に実行されます。 チェーンにより生成された変数はパイプライン内でメンテナンスされ ます。これは、チェーン内のサービスが実行されると、その変数は同 じチェーン内の後続のサービスに使用可能になることを意味します。 サービス・チェーンにより、あるサービスからの入力値と出力値を別 のサービスの入力または出力として使用するアプリケーションを作成 できます。 たとえば、一般的に、サービス・チェーンを使用するのは、複数の サービスの結果を集計し、それをクライアントに渡すためです。また、 あるサービスで URL を抽出し、その URL を次のサービスで開くとい う用途もあります。 ! パイプラインでは、String 型、Array of Strings 型および Table of Strings 型 の変数を使用できます。Record 型は使用できません。 チェーン内の先行サービスにより生成された変数(つまり、すでにパ イプライン内にある変数)を使用するには、その変数を次のいずれか の方法で参照します。 WIDL サービスの作成 93 サービス・チェーンの作成 パイプラインからの変数の 使用箇所 実行するステップ 入力バインド その変数を入力バインドの変数リストに追加し ます。すでにパイプラインにある変数と同じ名 前であることを確認してください。 出力バインド 出力バインドに新規の変数を作成します。その 変数の「Value」フィールドには、パイプライ ン変数名を%記号で囲んで入力します。 例 サービス・パラメータ パイプライン変数名を%記号で囲んで入力しま す。 例 サービス・チェーンを介してデータを渡す場合の注意事項は、次のと おりです。 • 複数のサービスの結果を集計してクライアントに戻す場合は、 チェーンの最後のサービスの出力バインドに、戻す変数すべて の定義を含める必要があります。 • チェーンの最初のサービスでは、チェーン全体がクライアント から必要とする入力値をすべて獲得する必要があります。最初 のサービスで使用しない変数は、そのサービスの入力バインド で INTERNAL 変数として宣言する必要があります。 • サービスの URL パラメータで変数名を指定すると、その変数を 使用してサービスの URL を設定できます。変数を使用して URL を指定する方法の追加情報は、115ページの「サービス・ パラメータの表示または変更」を参照してください。 サービス・チェーンの作成 サービス・チェーンを作成するには、チェーン内の最後のサービスを 除く各サービスの出力バインドにサービス・チェーン条件を割り当て ます。最初のサービスの起動時に、その出力バインドによりチェーン 内の 2 番目のサービスが指定され、そのサービスの出力バインドによ りチェーン内の 3 番目のサービスが指定されます。 出力バインド内でサービス・チェーンを割り当てるときに、そのサー ビスの実行条件として次の状況を指定できます。 • 94 戻されるドキュメント内の参照要素の有無。たとえば、戻され るドキュメントの最後のパラグラフ要素に文字列“More…”が含 まれる場合にのみ、特定のサービスを起動するようにできます。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービス・チェーンの作成 • サービスを起動する出力バインドの成否。通常は、直前のサー ビスが成功しないときは、チェーン内の次のサービスを起動し ないようにする必要があります。そのためには、サービス・ チェーン条件を出力バインドの成功に依存するように設定しま す。 以降は、サービス・チェーンの作成方法について説明します。最初の 手順は、単に出力バインドの成功に基づいて別のサービスに連鎖させ る場合に使用できるショートカット方法です。第 2 の手順は、参照要 素の有無など、他の状況に基づいて別のサービスに連鎖させる方法を 説明します。 バインドの成功に基づいてサービス・チェーンを作成するには (ショートカット) 前提条件: 連鎖させるサービスが Web Integration Developer に存在し、 開いている必要があります。存在しない場合は、手順を開始する前に 作成します。開いている WIDL ドキュメント内に連鎖させるサービス がない場合は、それを含む WIDL ドキュメントを開きます。 1 ドキュメント・ブラウザで、サービス・チェーン条件を割り当 てる出力バインドを選択します。 2 編集ペインで、まだ表示されていない場合は「Variables」タブ を選択します。 をクリックします。 3 4 「Create Service Chain」ダイアログ・ボックスで、この出力バイ ンドが実行時に成功した場合に自動的に起動するサービスを選 択します。 5 「OK」をクリックします。 作成したサービス・チェーン条件を確認する場合は、 「Conditions」タブをクリックします。 6 別のサービスをチェーンに追加する場合は、次の手順で操作し ます。 1 ドキュメント・ブラウザで、ステップ 4 で指定したサービス の出力バインドを選択します。 2 ステップ 3∼5 を繰り返します。 WIDL サービスの作成 95 サービス・チェーンの作成 サービス・チェーンを作成するには 前提条件: 連鎖させるサービスが Web Integration Developer に存在し、 開いている必要があります。存在しない場合は、手順を開始する前に 作成します。開いている WIDL ドキュメント内に連鎖させるサービス がない場合は、それを含む WIDL ドキュメントを開きます。 1 ドキュメント・ブラウザで、サービス・チェーン条件を割り当 てる出力バインドを選択します。 2 編集ペインで「Conditions」タブを選択します。 3 をクリックし、新規の条件を作成します。 4 「Chain」オプションをオンにします。 5 「Interface」リストから、連鎖させるサービスを含むインタ フェースを選択します。 6 「Service」リストから、サービスを選択します。 7 「Action」リストで、このサービスの起動をトリガーする条件 を選択します。 目的 アクション 8 Chain if Binding Fails このバインドが失敗した場合に、サービ スを起動します。 Chain if Binding Succeeds このバインドが成功した場合に、サービ スを起動します。 Chain if Reference Is Matched 戻されるドキュメントに指定の参照要素 が含まれている場合に、サービスを起動 します。 Chain if Reference is not Matched 戻されるドキュメントに指定の参照要素 が含まれていない場合に、サービスを起 動します。 前述のステップで「Chain if Reference…」オプションのどちらか を選択した場合は、次のサービスの起動をトリガーするために 有無がチェックされる参照要素を指定します。 フィールド Reference 指定 オブジェクト参照形式による参照要素。 たとえば、参照要素が 3 番目のパラグラフの 96 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービス・チェーンの作成 フィールド 指定 テキストにある場合は、次のように指定しま す。 doc.p[2].text Match 参照要素が特定の値を含む必要がある場合の パターン一致文字列(一致文字列を指定しな ければ、その値に関係なく、参照要素の存在 のみに基づいて、次のサービスが起動しま す)。 たとえば、参照要素が単語「Business Account」を含む必要がある場合は、次の一致 文字列を指定します。 *Business Account* 一致文字列を指定する場合は、次のワイル ド・カード記号を使用できます。 記号 ヒント 9 説明 * 0 文字以上の任意の文字列と一致 します。 ? 任意の 1 文字と一致します。 % 1 単語(空白を含まない一連の文 字列)と一致します。 \ 前述のメタキャラクタをエスケー プします。 「View Document」タブで参照要素を選択し、「Reference」と 「Match」の値を自動的に設定することもできます。84ページの 「「View Document」タブからの参照要素の指定」を参照してく ださい。 新規の条件の位置を変更する場合は、次の手順で操作します。 1 その条件を条件リストで選択します。 2 マウスの右ボタンをクリックします。 3 ポップアップ・メニューで「Move Up」または「Move Down」を選択します。 WIDL サービスの作成 97 自動ロードとブラウザ・レコーダの処理 自動ロードとブラウザ・レコーダの処理 自動ロードとブラウザ・レコーダは、長時間かかるサービス・チェー ンや複雑な Web サイト用のサービスを開発するためのツールです。 自動ロード機能の使用 自動ロード機能は、一連のリンク・ドキュメント用のサービス・ チェーンを作成する場合に役立つツールです。このツールが使用可能 になっている場合は、出力の一部としてフォームを戻すドキュメント が Auto-Loader により自動的に開きます。これにより、複数のフォー ムを送る必要のあるサービス・チェーンの開発所要時間が短縮されま す。 自動ロード機能を使用可能にするには 1 Web Integration Developer で、ツールバーの 自動ロード機能を使用可能にします。 をクリックし、 2 Web Integration Developer で WIDL サービスを作成します。 フォームを戻すドキュメント用の WIDL サービスを作成すると きは常に、そのドキュメントが Web Integration Developer で自動 的に開きます。 3 作成後に、ツールバーの にします。 をクリックして自動ロードをオフ ブラウザ・レコードの使用 ブラウザ・レコーダを使用すると、Web ページ、フレームおよび フォームをブラウザでナビゲートし、Web ドキュメントを開き、 WIDL サービスを作成できます。ブラウザ・レコーダを使用可能にす ると、Web Integration Developer によりブラウザとリモート Web サイ ト間の対話がモニターされ、要求したドキュメントが自動的に開きま す。HTML フォームを介してドキュメントを要求すると、そのトラン ザクション用の WIDL サービスが自動的に作成されます。 ブラウザ・レコーダは、JavaScript で生成されているか、イメージ・ マップから導出されるために、URL を直接取得するのが困難なド キュメントを開く場合に役立ちます。 ! 98 ブラウザ・レコーダは、SSL を使用する Web サイトには使用できませ ん。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 自動ロードとブラウザ・レコーダの処理 ブラウザのアクションを記録するには 1 Web Integration Developer で、ツールバーの をクリックして 記録を開始します。これにより、Web Integration Developer の一 部として動作する HTTP プロキシのローカル・インスタンスが 起動します。 2 ブラウザを起動します。 3 ブラウザでプロキシ設定を検索し、次の値に設定します。 プロキシ: ポート: localhost 4000 4 ブラウザを使用して、Web Integration Developer で獲得するペー ジへナビゲートします。アクセスするすべてのドキュメントが 自動的に開きます。フォームを介してドキュメントにアクセス すると、そのトランザクション用の WIDL サービスが自動的に 作成されます。 5 記録を終了した後で、Web Integration Developer ツールバーの をクリックし、ブラウザ・レコーダをオフにします。 WIDL サービスの作成 99 WIDL サービスのテスト WIDL サービスのテスト Web Integration Developer には、個々のサービスとサービス・チェー ンをテストしてデバッグできるように、包括的な環境が用意されてい ます。作成したサービスが正常に動作することを確認した後は、それ を Web Integration Server に公開し、ブラウザまたは Server Administrator からテストして、クライアントからコールした場合に正 常に動作するかどうかを検証できます。最後に、独自のクライアン ト・アプリケーションからコールした場合に機能するかどうかを確認 する必要があります。 ここでは、Web Integration Developer から実行するテストと、サービ スを公開した後にブラウザまたは Server Administrator から実行するテ ストについて説明します。 Web Integration Developer でのサービスのテスト Web Integration Developer には包括的なテスト環境が用意されている ため、作成したサービスを Web Integration Server に公開する前に、あ らゆる面からテストできます。 Web Integration Developer からサービスをテストするには 1 ドキュメント・ブラウザで、テストするサービスの名前を選択 します。 2 「Tools」->「Test Service」コマンドを選択するか、またはツー ルバーの 3 100 をクリックします。 サービスに入力値が必要な場合は、次のダイアログ・ボックス にその値を入力するように求めるプロンプトが表示されます。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL サービスのテスト このテストに使用する値を入力し、「Submit」をクリックしま す。 4 サービスに入力値が不要な場合(または、サービスで使用する 入力値がハード・コード化された定数値の場合)は、次のダイ アログ・ボックスが表示された後「Submit」をクリックします。 指定したドキュメントが取り出されます。 そのドキュメントに正常にバインドできる(つまり、出力バイ ンドのすべての必須変数が、ドキュメントからの値で正常に埋 められる)場合は、結果が変数リストに表示されます。 テスト中の障害の処理 サービスが受信したドキュメントの必須値(つまり、定義で NULL 値が許されていない変数)の 1 つが欠落していると、エラーが発生し ます。この異常事態に応答する条件(失敗またはリバインド条件な ど)が出力バインドに設定されていない場合は、問題を警告するため に次のダイアログ・ボックスが表示されます。 WIDL サービスの作成 101 WIDL サービスのテスト この問題をサービス内で解決するために、次のアクションを 1 つ選択 します。 アクション 目的 Create a Condition to Handle the Failure 「Conditions」タブを表示してサービスに対する 失敗条件を作成します。 このオプションを選択すると、出力バインドに 失敗条件が自動的に追加されます。この条件 は、必要に応じてカスタマイズできます。たと えば、カスタム・エラー・メッセージを発行し たり、戻されたドキュメントからの要素を表示 できます。また、失敗条件を削除し、かわりに リバインド条件を使用することも可能です。 サービスに条件を添付する方法の詳細は、80 ページの「出力バインドへの条件の割当て」を 参照してください。 Correct the Failed Output Binding 修正できるように、エラーの原因となった変数 を表示します。 このオプションを選択すると、変数リストが自 動的に表示され、NULL 値によりエラーとなった 変数が選択されます。この時点で、オブジェク ト参照が間違っている場合は修正できます。ま た、「Null OK」オプションをオンにして、今後 はこの変数の NULL 値によりエラーが発生しな いようにすることも可能です。 Create a New Output Binding 戻されるドキュメントのコンテンツに基づく新 規バインドを作成します。 このオプションを選択すると、新規バインド名 の入力を求めるプロンプトが表示され、受信し た出力に基づいて新規バインドが作成されま す。このバインドは、必要に応じて変更できま す。修正後に、そのバインドを何らかの方法で サービスに添付する必要があります。たとえ ば、サービスの初期バインドにする場合は、そ のサービスの出力パラメータに割り当てる必要 があります。このサービスの代替バインドにす る場合は、元のバインドにリバインド条件を追 加し、そこから新規バインドを参照する必要が あります。 102 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL サービスのテスト Web Integration Developer でのサービス・チェーンのテスト サービス・チェーン内のサービスをテストすると、次の両方を満たす 場合にそのサービス・チェーン内の後続のサービスが自動的に起動し ます。 • ツールバーのサービス・チェーン・ボタン なっている場合 • チェーンにより起動されるすべてのサービスを Web Integration Developer で開いている場合 が使用可能に Web Integration Developer でサービス・チェーンをテストすると、そ のチェーン内のサービスにより割り当てられるすべての変数は、実行 時と同様にパイプライン内でメンテナンスされます。 出力バインドで指定されている後続のサービスを起動せずに、チェー ン内のサービスを個別にテストまたはデバッグする場合は、ツール バーのサービス・チェーン・ボタンを使用してサービス・チェーン機 能を使用禁止にすることができます。このボタンは、単一サービスを 実行する場合と、チェーン内の後続のサービスをすべて実行する場合 を制御できるように用意されています。 目的 アイコンの設定モード サービス・チェーンのテスト 機能を使用可能にする サービス・チェーンのテスト 機能を使用禁止にする サービス・チェーン内のサービスを個別にテストするには 1 ドキュメント・ブラウザで、テストするサービスを選択します。 2 ボタンをクリックし、サービス・チェーン機能を使用禁止 にします。 3 「Tools」->「Test Service」コマンドを選択するか、またはツー ルバーの 4 をクリックします。 サービスに入力値が必要な場合は、入力を求めるプロンプトが 表示されます。 WIDL サービスの作成 103 WIDL サービスのテスト ブラウザでのサービスのテスト ブラウザでのサービスのテストは、サービスが Web Integration Server で正常に実行されるかどうかと、正しい値を戻すかどうかを迅速に判 断できる方法です。 この方法でサービスをテストする前に、そのサービスを Web Integration Server に公開する必要があります。手順は、110ページの 「インタフェースの公開」を参照してください。 ブラウザでサービスをテストするには ブラウザを開き、アドレス・フィールドに次の URL を入力してサー ビスを起動します。 http://Server:Port/invoke/IntName/SvcName[?name=val[&name=val &name=val…]] 項目 意味 Server サービスが公開されるサーバーの名前 Port Web Integration Server によりサービス要求がリスニングさ れるポート番号 IntName テストするサービスの公開に使用されるインタフェース (サブインタフェースを含む)の完全名 SvcName テストするサービスの名前 name このサービスに渡す入力変数の名前 val 入力変数に割り当てる値 例 次の URL により、Osprey という Web Integration Server 上の StockInfo インタフェース内で QuoteYahoo_GetDow サービスが起動します。こ のサービスには、1 つの変数 CoSymbol が渡されます。この変数の値 は aol です。 http://Osprey:5555/invoke/StockInfo/QuoteYahoo_GetDow? CoSymbol=aol サービスが正常に実行されると、出力バインド内の各変数の名前と、 各変数に割り当てられた値を含む、HTML ドキュメントが戻されます。 また、この HTML ドキュメントには、サーバーにより発行される 2 つの内部変数も含まれています。一方の$binding には、この出力を 生成したバインドの名前が含まれ、他方の$interface には、このバ インドの実行元になったインタフェースの名前が含まれています。 104 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL サービスのテスト サービスにより作成され た変数 Integration Server により 作成された内部変数 サービスが正常に実行されなければ、エラーの説明を含む HTML ド キュメントが戻されます。次の例は、出力バインドに NULL 値が検 出されたときに戻される標準エラー・メッセージを示しています。出 力バインドに失敗条件が含まれていると、HTML ドキュメントでは、 その失敗条件で指定されたエラー・メッセージが戻されます。 エラー発生時にサーバーにより 戻された変数 Server Administrator でのサービスのテスト Server Administrator を使用して、Web Integration Server に登録されて いるサービスの操作をテストします。この方法では、サービスの操作 の検証と特殊ケースの入力値のテストを手早く簡単に実行できます。 この方法によるサービスのテストについては、『Oracle9i Application Server Wireless Edition Web Integration Server ユーザーズ・ガイド』の 「Services ページ」を参照してください。 WIDL サービスの作成 105 WIDL サービスのテスト 106 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド インタフェースとサービスの管理 インタフェースの管理 インタフェースは、WIDL 仕様(統合モジュールのデータ要件の定 義)または WIDL マッピング(Web Integration Server で実行できる WIDL サービスを含むマッピング)を含む WIDL ドキュメントです。 ここでは、Web Integration Developer で WIDL インタフェースを作成 および変更する手順について説明します。 インタフェースの手動作成 次の手順に従って、Web Integration Developer で新規の WIDL インタ フェースを作成します。 インタフェースの手動作成が必要になることはまれです。通常は、Web Integration Developer により自動的に作成されます。たとえば、「WIDL」 コマンドを使用して WIDL サービスを生成する場合に、サービス名とと もに新規インタフェースの名前を指定すると、新規のインタフェースが 自動的に作成されます。ただし、新規インタフェースを明示的に作成す る必要がある場合は、次の手順で操作してください。 新規インタフェースを作成するには 1 「Edit」->「Add」->「Interface」を選択します。 2 「Select Interface Name」ダイアログ・ボックスで次の情報を指 定します。 フィールド 操作 Interface Name 新規インタフェースの名前を入力します。こ の名前が、Web Integration Server に公開される すべてのインタフェース間で一意であること インタフェースとサービスの管理 107 インタフェースの管理 フィールド 操作 を確認してください。 Interface Type このインタフェースのコンテンツを指定しま す。 • 「Specification」 - このインタフェースで Web Integration Module のデータ要件を定義する場合に選 択します。 • 「Mapping」 - このインタフェースに WIDL サービ スを含める場合に選択します。 3 「OK」をクリックします。 4 ベース URL を指定するか、このインタフェースに説明コメント を追加する場合は、次の手順を参照してください。 インタフェース・パラメータの表示または変更 次の手順に従って、WIDL インタフェースに関連したパラメータの表 示、割当てまたは変更を行います。これらのパラメータでは、WIDL ドキュメントの WIDL-MAPPING または WIDL-SPEC 要素に関連した属 性を設定します。 インタフェース・パラメータを表示または変更するには 1 ドキュメント・ブラウザで、表示または変更するインタフェー ス・パラメータの名前を選択します。 2 編集ペインで、必要に応じて次の値の検証または変更、あるい はその両方を行います。 フィールド 説明 Name このインタフェースの名前を指定します。この フィールドに新規の名前を入力すると、インタ フェースを改名できます。 Type このインタフェースに含まれる WIDL 要素の タイプが表示されます。このフィールドには、 次の一方が表示されます。 • 「Specification」 - このインタフェースに、Web Integration Module のデータ要件の定義に使用される WIDL 仕様が含まれる場合 • 「Mapping」 - このインタフェースに、WIDL サービ スとバインドを定義する WIDL マッピング要素が含 まれる場合 この設定は変更できません。 Base URL 108 オプションのルート URL を指定します。ベー ス URL を指定すると、このインタフェースで Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド インタフェースの管理 フィールド 説明 サービスにより指定された URL はベース URL に従属すると見なされます。 Comment オプションの説明コメントを指定します。この フィールドを使用して任意の情報を伝えること ができますが、通常はインタフェースの内容と 用途の概要を提供するために使用します。 インタフェースの改名 次の手順に従ってインタフェースを改名します。 インタフェースを改名すると、Web Integration Developer により、その名 前のすべての参照がインタフェース全体で自動的に更新されます。 インタフェースを改名するには 1 ドキュメント・ブラウザで、改名するインタフェースの名前を 選択します。 2 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Rename Interface」を選択します。 3 インタフェースの新規の名前を入力します。 4 「OK」をクリックします。 2 つのインタフェースのマージ 次の手順に従って、あるインタフェースから別のインタフェースにす べての要素(サービスとバインド)を移動します。 ! 手順を開始する前に、ソース・インタフェース(移動する要素を含むイ ンタフェース)と、ターゲット・インタフェース(要素の移動先インタ フェース)の両方を、Web Integration Developer で開いていることを確認 してください。また、コンテンツをターゲット・インタフェースに移動 すると、ソース・インタフェースが削除されるため注意してください。 インタフェースのコピーを保持する場合は、この手順を開始する前に保 存します。 インタフェースとサービスの管理 109 インタフェースの管理 2 つのインタフェースのコンテンツをマージするには 1 ドキュメント・ブラウザで、ソース・インタフェースの名前を 選択します。 2 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Merge Interfaces」を選択します(このコマンドを使用できる のは、Web Integration Developer で 2 つ以上のインタフェースを 開いている場合のみです)。 3 「Select Interface to Merge」ダイアログ・ボックスでターゲッ ト・インタフェースを選択します。 4 「OK」をクリックします。 サービスとバインドがソース・インタフェースからターゲッ ト・インタフェースに移動し、ソース・インタフェースが削除 されます。 ソース・インタフェースに、ターゲット・インタフェース内と同 じ名前を持つサービスやバインドが含まれている場合は、移動の 前に、重複するサービスまたはバインド、あるいはその両方の新 規名の指定を求めるプロンプトが表示されます。 インタフェースの公開 次の手順に従って、WIDL ドキュメントのコンテンツを Web Integration Server に公開します。WIDL マッピングを公開すると、そ のマッピング内のサービスをユーザーが実行できるようになります。 WIDL 仕様を公開すると、その仕様に含まれるデータ定義が統合モ ジュールに使用可能になります。 この手順を実行するには、Web Integration Server に対する管理者権限 が必要です。 ! インタフェースを公開すると、そのインタフェース内のサービスは、 Web Integration Server 上の既存のサービスに追加されます。追加する サービスと同じ名前を持つサービスがサーバーにすでに含まれている場 合は、新規のサービスで置換されます。 また、Web Integration Developer では、同じ名前を持つサービスがサー バー上の別のパッケージに存在すると、サービスを公開できないため注 意してください。 110 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド インタフェースの管理 インタフェースを公開するには 前提条件: このサービスを置くパッケージは、Web Integration Server にすでに存在している必要があります。存在しない場合は、手順を開 始する前に Server Administrator を使用して作成してください。 1 ドキュメント・ブラウザで、公開するインタフェースの名前を 選択します。 2 「File」->「Publishing」->「Publishing Interfaces」コマンドを選 択します。 3 「Publish Interface」ダイアログ・ボックスの「Specify Server」 フィールドに、このインタフェースを公開する Web Integration Server の名前を入力します。サーバー名は、次のように ServerName:PortNumber 形式で指定してください。 Marketing:5555 4 「Update Packages」をクリックし、選択したサーバーから更新 されたパッケージ・リストを取得します。 5 「Select Package」リストから、このインタフェースを公開する パッケージの名前を選択します。 6 「OK」をクリックします。 7 「User Name and Password」ダイアログ・ボックスに、選択した サーバー用のユーザー名とパスワードを入力します。このユー ザーには管理者権限が必要です。 8 「OK」をクリックします。 Web Integration Server 上の選択したパッケージにインタフェース がコピーされ、正常に公開されたことを示すメッセージが表示 されます。パッケージが使用可能になっていれば、このインタ フェース内のサービスは即座に実行できます。 インタフェースとサービスの管理 111 インタフェースの管理 インタフェースの非公開 次の手順に従って、Web Integration Server 上に公開したインタフェー スを削除します。 ! この手順では、Web Integration Server 上の WIDL ドキュメントが物理的 に削除されます。このドキュメントのコピーを保つ場合は、手順を開始 する前にコピーを作成してください。 この手順を実行するには、Web Integration Server の管理者権限が必要 です。 インタフェースを非公開にするには 1 「File」->「Publishing」->「Unpublish Interface」コマンドを選択 します。 2 「Open Web Server」ダイアログ・ボックスで、インタフェース を削除する Web Integration Server の名前を入力します。サー バー名は、次のように ServerName:PortNumber 形式で指定して ください。 Marketing:5555 Web Integration Developer がこのサーバーに接続し、そこに存在 するインタフェースの名前が表示されます。 3 このサーバーから削除するインタフェースの名前を選択します。 4 「Unpublish」をクリックします。 Web Integration Server からインタフェースが削除され、正常に非 公開にされたことを示すメッセージが表示されます。 112 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービスの管理 サービスの管理 ここでは、WIDL インタフェース内でサービスを作成する方法と変更 する方法について説明します。 新規サービスの追加 次の手順に従って、Web Integration Developer で開いている WIDL イ ンタフェースにサービスを手動で追加します。 インタフェースに新規サービスを追加するには 1 ドキュメント・ブラウザで、新規サービスを追加する 「Services」フォルダを選択します。 2 「Edit」->「Add」->「Service」コマンドを選択するか、または マウスの右ボタンをクリックしてポップアップ・メニューから 「Add New Service」を選択します。 3 「Name For New Service」ダイアログ・ボックスでサービス名を 入力します。 4 「OK」をクリックします。 5 編集ペインで、次の新規サービス情報を指定します。 フィールド 指定 Name このサービスの名前。このフィールドに新規の 名前を入力すると、サービスを改名できます。 URL このサービスで取り出される HTML または XML ドキュメントの URL。URL、または実行時に適 切な URL が含まれる変数(つまり、サービス・ チェーン内の他のサービスからの入力変数または 出力変数)の名前を入力します。変数を使用して URL 全体または一部を指定する場合は、その変 数を%記号で囲みます。 例: %CurrentLink% 例: http://market.com/%Page% ! 変数名を使用して URL 全体または一部を 指定する場合に、サービスに入力バインド が含まれているときには、使用する変数を そのバインドの変数リストに追加する必要 があります。この変数がリストに含まれて いないと、サービスでは実行時に URL を インタフェースとサービスの管理 113 サービスの管理 フィールド 指定 正しく解決できません。 この変数が必要なのは、サービスに入力バ インドが含まれている場合のみであること に注意してください。入力バインドが含ま れていなければ、特別なステップを実行し なくても URL に変数を使用できます。 Source HTTP REFERER ヘッダー変数に割り当てる値。 この設定はオプションです。一部の Web サイト では、この変数がチェックされ、クライアントが 特定のページから開始していることが確認されま す。 また、REFERER 変数をサービスの入力バ インドに追加して設定することもできま す。この方法を使用する場合は、変数名が REFERER に設定されていることと、その 使用方法が HEADER に設定されているこ とを確認してください。「Source」設定に 関する追加情報は、139ページ以降の 「WIDL マッピング」の要素の説明を参照 してください。 Method このサービスで、その入力値を Web サイトに送 るために使用される HTTP メソッド。 • 「Get」を選択すると、入力は Web ドキュメントま たはアプリケーションの URL に追加される name=value のペアとして送られます。 • 「Post」を選択すると、入力は別のメッセージでリ モート Web サイトに送られます。 114 Input このサービス用の入力バインドの名前。サービス に入力バインドを割り当てるには、そのバインド の名前をリストから選択します(バインドは、 サービスと同じインタフェース内に存在する必要 があります)。このサービスで入力バインドを使 用しない場合は、「No Binding」を選択します。 Output このサービス用の出力バインドの名前。サービス に出力バインドを割り当てるには、そのバインド の名前をリストから選択します(バインドは、 サービスと同じインタフェース内に存在する必要 があります)。 Authuser このサービスにより HTTP 認証のために送られる ユーザー名。このパラメータはオプションです。 このサービスを認証が必要な Web サイトで使用 する場合は、リモート Web サイトに送るユー ザー名を入力します(このオプションを使用する 場合は、「Authpass」フィールドでこのユーザー 名のパスワードを指定する必要があります)。 Authpass このサービスにより HTTP 認証のために送られる パスワード。このパラメータはオプションです。 このサービスを認証が必要な Web サイトで使用 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービスの管理 フィールド 指定 する場合は、リモート Web サイトに送るパス ワードを入力します。 「Show Value/Hide Value」ボタンを使用すると、 編集ペインにパスワードをクリア・テキストまた は*記号として表示できます。 Comment オプションの説明コメント。このパラメータを使 用して任意の情報を伝えることができますが、通 常はサービスのコンテンツと用途の概要を提供す るために使用します。 サービス・パラメータの表示または変更 次の手順に従って、WIDL サービスに関連したパラメータを表示、割 当てまたは変更します。これらのパラメータでは、WIDL ドキュメン トの SERVICE 要素に関連した属性を設定します。 サービス・パラメータを表示または変更するには 1 ドキュメント・ブラウザで、パラメータの表示または変更、あ るいはその両方の対象となるサービスを選択します。 2 編集ペインで、必要に応じて次の値の検証または変更、あるい はその両方を行います。 フィールド 指定 Name このサービスの名前。このフィールドに新規の 名前を入力すると、サービスを改名できます。 URL このサービスで取り出す HTML または XML ド キュメントの URL。URL、または実行時に適切 な URL が含まれる変数(つまり、サービス・ チェーン内の別のサービスからの入力変数または 出力変数)の名前を入力します。変数を使用して URL 全体または一部を指定する場合は、その変 数の名前を%記号で囲みます。 例: %CurrentLink% 例: http://market.com/%Page% ! 変数名を使用して URL 全体または一部を 指定する場合に、サービスに入力バインド があるときには、使用する変数をそのバイ ンドの変数リストに追加する必要がありま す。この変数がリストに含まれていなけれ ば、サービスでは実行時に URL が正しく 解決されません。 インタフェースとサービスの管理 115 サービスの管理 フィールド 指定 この変数が必要なのは、サービスに入力バ インドがある場合のみであることに注意し てください。入力バインドがない場合は、 特別なステップを実行しなくても変数を URL に使用できます。 Source HTTP REFERER ヘッダー変数に割り当てる値。 この設定はオプションです。一部の Web サイト では、この変数がチェックされ、クライアントが 特定のページから開始することが確認されます。 また、REFERER 変数をサービスの入力バ インドに追加して設定することもできま す。この方法を使用する場合は、変数名が REFERER に設定されていることと、その 使用方法が HEADER に設定されているこ とを確認してください。「Source」設定に 関する追加情報は、139ページ以降の 「WIDL マッピング」の要素の説明を参照 してください。 Method このサービスで、その入力値を Web サイトに送 るために使用する HTTP メソッド。 • 「Get」を選択すると、入力は Web ドキュメン トまたはアプリケーションの URL に追加される name=value のペアとして送られます。 • 「Post」を選択すると、入力は別のメッセージ でリモート Web サイトに送られます。 116 Input このサービス用の入力バインドの名前。サービス に入力バインドを割り当てるには、そのバインド の名前をリストから選択します(バインドは、 サービスと同じインタフェース内に存在する必要 があります)。このサービスで入力バインドを使 用しない場合は、「No Binding」を選択します。 Output このサービス用の出力バインドの名前。サービス に出力バインドを割り当てるには、そのバインド の名前をリストから選択します(バインドは、 サービスと同じインタフェース内に存在する必要 があります)。 Authuser このサービスで HTTP 認証のために送るユーザー 名。このパラメータはオプションです。このサー ビスを認証が必要な Web サイトで使用する場合 は、リモート Web サイトに送るユーザー名を入 力します(このオプションを使用する場合は、 「Authpass」フィールドでこのユーザーのパス ワードを指定する必要があります)。 Authpass このサービスで HTTP 認証のために送るパス ワード。このパラメータはオプションです。こ のサービスを認証が必要な Web サイトで使用す る場合は、リモート Web サイトに送るパスワー Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド サービスの管理 フィールド 指定 ドを入力します。 「Show Value/Hide Value」ボタンを使用する と、編集ペインにパスワードをクリア・テキス トまたは*記号として表示できます。 Comment オプションの説明コメント。このパラメータ を使用して任意の情報を伝えることができま すが、通常はサービスのコンテンツと目的の 概要を提供するために使用します。 サービスの改名 次の手順に従って、Web Integration Developer で開いている WIDL イ ンタフェース内のサービスを改名します。 サービスを改名すると、その名前のすべての参照がインタフェース全体 で自動的に更新されます。 サービスを改名するには 1 ドキュメント・ブラウザで、改名するサービスの名前を選択し ます。 2 マウスの右ボタンをクリックし、ポップアップ・メニューから 「Rename Service」を選択します。 3 インタフェースの新規の名前を入力します。 4 「OK」をクリックします。 インタフェース間でのサービスの移動 次の手順に従って、あるインタフェースから別のインタフェースに サービスを移動またはコピーします。 手順を開始する前に、両方のインタフェースを Web Integration Developer で開いていることを確認してください。 サービスを移動またはコピーするには 1 ドキュメント・ブラウザで、移動またはコピーするサービスを 選択します。 インタフェースとサービスの管理 117 サービスの管理 2 「Edit」メニューから、このサービスを別のインタフェースにコ ピーする場合は「Copy」コマンド、移動する場合は「Cut」コマ ンドを選択します。 3 ドキュメント・ブラウザで、サービスのコピー先または移動先 となるインタフェースを選択します。 4 「Edit」->「Paste」コマンドを選択します。 5 このサービスとともに元のバインドを組み込むかどうかを確認 するプロンプトが表示されます。 選択 目的 Yes 入力バインドと出力バインドをターゲット・ インタフェースにコピーします。 No サービスのみをターゲット・インタフェース にコピーします(コピーされたサービスのバ インド・パラメータは「No Binding」に設定さ れます)。 コピーする対象と同じ名前を持つサービスやバインドがター ゲット・インタフェースに含まれている場合は、コピー後の要 素用に新規の名前の入力を求めるプロンプトが表示されます。 118 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web Integration Developer の構成 構成オプションの設定 Web Integration Developer は、デフォルトの構成値セットとともにイ ンストールされます。これらの構成値は、ワークステーションでの Web Integration Developer の動作に影響します。ほとんどの場合、標 準的な開発ワークステーションには、これらのデフォルト値が適して います。ただし、プロキシ・サーバーを介してインターネットに接続 する場合や、Web Integration Developer の動作を他の点で変更する場 合は、これらの設定を調整する必要があります。 構成オプションを設定するには 1 「Edit」->「Edit」->「Preferences」コマンドを選択するか、ま たはツールバーの をクリックします。 Web Integration Developer の構成 119 構成オプションの設定 2 「Configuration Preferences」ダイアログ・ボックスで必要な情報 を指定します。各グループ・ボックスに必要な情報に関する追 加情報は、後述の該当するトピックを参照してください。 3 「OK」をクリックします。 Web Integration Developer でのプロキシ・サーバー の使用 Web Integration Developer を使用して WIDL サービスを開発しテスト するときには、インターネットからドキュメントを取り出します。イ ンターネット接続にプロキシ・サーバーを使用する場合は、そのサー バーを介して要求をルーティングするように、Web Integration Developer を構成する必要があります。 「Configuration Preferences」ダイアログ・ボックスには 2 つのタブが あります。一方のタブでは標準 HTTP 要求(非保護要求)用のプロキ シ・サーバーを指定し、他方のタブでは HTTPS 要求(SSL を使用す る要求)用のプロキシ・サーバーを指定します。 プロキシ・サーバーを指定するには 1 「Enabled」チェック・ボックスをオンにします。 このチェッ ク・ボックスでは、指定したプロキシ・サーバーを使用するよ うに Web Integration Developer に対して指示します。プロキシ・ サーバーを一時的にバイパスする必要が生じた場合は、この チェック・ボックスをオフにするだけですみます。 2 次の情報を入力します。一方の要求タイプにのみプロキシ・ サーバーを使用する場合は、そのタブにのみ情報を入力し、他 方は空白にします。 フィールド 操作 Host:Port プロキシ・サーバーと、HTTP 要求または HTTPS 要求、あるいはその両方のリスニング・ポートを 入力します。 例: myproxy:8080 120 User 必要な場合は、このプロキシ・サーバーへのアク セスに使用する必要のあるユーザー名を入力しま す。 Password 必要な場合は、このプロキシ・サーバーへのアク セスに使用するパスワードを入力します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 構成オプションの設定 NULL チェックの無効化/有効化 デフォルトでは、Web Integration Developer の NULL チェックは有効 になっています。これは、必須値(つまり、定義により NULL 値が 許されない変数)を1つでも受信しないバインドは失敗することを意 味します。この動作は、実行時のサービスの実際の動作を模倣したも のです。ただし、デバッグ段階では、NULL 値を無視すると役立つ場 合があります。たとえば、結果を検査して NULL 値を受信した変数 を判断できるように、Web Integration Developer でサービス全体を実 行する場合です。このような場合は、NULL チェックを無効にできま す。 ! 特殊なデバッグ要件にあわせて NULL チェックを無効にする場合は、デ バッグ後に再度有効にすることを忘れないでください。有効にしない と、後続のテスト結果には実行時の動作が反映されなくなります。 取消しレベルの設定 Web Integration Developer では、直前に行った編集アクション 20 件ま でを取り消せるように自動的に設定されています。この数値は、 「Undo」ボックスで調整して増やすことができます。この値を大き くすると、Web Integration Developer のメモリー使用量が増えるため 注意してください。使用可能メモリーが重要な場合は、「Undo」 ボックスの設定をデフォルト値のままにします。 cookie の処理 次の設定を使用して、cookie を受信または要求された場合の Web Integration Developer の応答を指定します。 オプション 説明 Notify when a cookie is received この設定により、cookie の受信時にメッセー ジを表示するかどうかを指定します。 オンにすると、Web Integration Developer で cookie を受信するたびに、次のようなメッ セージが表示されます。 Web Integration Developer の構成 121 構成オプションの設定 オプション 説明 このオプションをオフにすると、cookie を受 信してもメッセージは表示されません。 このオプションの設定に関係なく、い つでも「View」->「Cookies」コマンド を使用して、起動後に Web Integration Developer で受信した cookie のリスト を検証できます。 Send Cookies この設定では、HTTP サーバーから要求され た cookie を戻すかどうかを指定します。 cookie が存在していても、存在しないかのよ うに Web Integration Developer を動作させる場 合は、このオプションをオフにします。通 常、この設定が必要になるのは、テスト中や デバッグ中に Web サイトへの初回アクセスを シミュレーションする場合です。 ユーザー・エージェントの指定 「Default User Agent」の設定により、Web に要求を発行するときに、 要求ヘッダーの「User-Agent」フィールドに割り当てられる値が決定 されます。 入力バインドに User-Agent HEADER 変数を含めると、そのバインドを Web Integration Developer で実行するときに、「Default User Agent」が オーバーライドされます。 122 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド ソース・コードの生成 クライアント・アプリケーション用ソース・コードの作成 WIDL サービスの作成後に、Web Integration Developer を使用して、次 のような簡単なクライアント・プログラムを生成できます。 • 入力値を求めるプロンプトを表示する(サービスが入力を取る 場合)。 • 入力を入力レコードに入れる(サービスが入力を取る場合)。 • Web Integration Server に接続する。 • サービスを起動する。 • サービスから出力を受信する。 • Web Integration Server から切断する。 • 出力を表示する。 このプログラムのコードを、クライアント・アプリケーション開発の 起点として使用できます。 クライアント・プログラムの作成には、次のどの言語でも使用できま す。手順は、次の該当する項を参照してください。 使用言語 手順の参照先 Java 124ページの「Java クライアント・アプリケー ションの作成」 JavaScript 126ページの「JavaScript クライアント・アプリ ケーションの作成」 C/C++ 127ページの「C/C++クライアント・アプリ ケーションの作成」 ソース・コードの生成 123 クライアント・アプリケーション用ソース・コードの作成 使用言語 手順の参照先 Visual Basic または他の ActiveX ベースのアプリ ケーション 129ページの「Visual Basic クライアント・アプ リケーションの作成」 131ページの「Excel 95 クライアント・アプリ ケーションの作成」 132ページの「Excel 97 クライアント・アプリ ケーションの作成」 ここでは、WIDL サービス用クライアント・コードの作成手順について 説明します。統合モジュール用のクライアント・コードを作成する必要 がある場合は、『Oracle9i Application Server Wireless Edition Web Integration Server ユーザーズ・ガイド』を参照してください。 Java クライアント・アプリケーションの作成 次の手順に従って、特定の WIDL サービス用のクライアント・コード を作成します。 WIDL サービス用の Java クライアント・コードを生成するには 124 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 3 「Generate」->「Clients」->「Java」コマンドを選択します。 4 「Generate Java」ダイアログ・ボックスで「OK」をクリックし ます。 5 「Generate Java」ダイアログ・ボックスで次のように指定しま す。 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド クライアント・アプリケーション用ソース・コードの作成 6 フィールド 指定 Server クライアント・プログラムによるサービスの起動 元となるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 7 ファイル 説明 ClientMain.java Java main()メソッドが含まれていま す。 ClientServices.java ServiceInput.java ServiceOutput.java サービス・クラス。 ServiceApplet.java アプレット・コードが含まれていま す。アプレットには、InterfaceName ディレクトリにあるクラスを使用し て Web のデータとサービスを取り出 す基本的なユーザー・インタフェー スが含まれています。 InterfaceNameServiceName.html アプレットが埋め込まれた HTML が 含まれています。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 Java コードを作成した後は、そのコードをコンパイルしてワークス テーションからテストできます。 プログラムをテストする前に必要な作業は、次のとおりです。 • WIDL サービスが前述のステップ 5 で指定した Web Integration Server 上に存在することを確認します。このサービスをまだ Web Integration Server に公開していない場合は、110ページの 「インタフェースの公開」を参照してください。 • サービスの公開先 Web Integration Server が稼働していることを 確認します。 Java クライアント・アプリケーションの配布に関する追加情報は、 Java ソース・ファイルを含むディレクトリにある README ファイル を参照してください。 ソース・コードの生成 125 クライアント・アプリケーション用ソース・コードの作成 JavaScript クライアント・アプリケーションの作成 次の手順に従って、特定の WIDL サービス用の JavaScript クライアン トを作成します。JavaScript クライアントは HTML ドキュメントとし て配布され、JavaScript をサポートする Web ブラウザで実行できます。 WIDL サービス用 JavaScript クライアント・コードを生成するには 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 3 「Generate」->「Clients」->「Javascript」コマンドを選択します。 4 「Generate Javascript」ダイアログ・ボックスで「OK」をクリッ クします。 5 「Generate Javascript」ダイアログ・ボックスで次のように指定 します。 6 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Server クライアント・プログラムでサービスの起動元と なるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 126 ファイル 説明 InterfaceService.java サービス・クラス。 InterfaceService JavascriptApplet.java JavaScript で使用されるアプレット・コー ド。 InterfaceService Javascript.html フォームベースのインタフェースと埋込み Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド クライアント・アプリケーション用ソース・コードの作成 ファイル Javascript.html 7 説明 JavaScript を含む HTML ドキュメント。 JavaScript コードでは、 InterfaceServiceJavascriptApplet.java 内のクラ スを使用して、Web データとサービスが HTML フォームに取り出されます。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 Java コードを作成した後に、そのコードをコンパイルしてワークス テーションからテストできます。 プログラムをテストする前に必要な作業は、次のとおりです。 • このプログラムにより起動するサービスが、前述のステップ 5 で指定した Web Integration Server 上に存在することを確認しま す。まだサービスをその Web Integration Server に公開していな い場合は、110ページの「インタフェースの公開」を参照してく ださい。 • サービスの公開先 Web Integration Server が稼働していることを 確認します。 JavaScript クライアント・アプリケーションの配布に関する追加情報 は、JavaScript ソース・ファイルを含むディレクトリにある README ファイルを参照してください。 C/C++クライアント・アプリケーションの作成 次の手順に従って、特定の WIDL サービス用の C/C++クライアントを 作成します。Web Integration Developer では、クライアント API を使 用して Web Integration Server 上のメソッドを起動する、システム固有 の C/C++プログラムが生成されます。このクライアント・プログラム は、共有ライブラリまたは DLL として配布するように設計されてお り、C/C++アプリケーションから Web データおよびサービスへのアク セスを提供します。 WIDL サービス用の C/C++クライアント・コードを生成するには 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 ソース・コードの生成 127 クライアント・アプリケーション用ソース・コードの作成 3 「Generate」->「Clients」->「C/C++」コマンドを選択します。 4 「Generate C/C++」ダイアログ・ボックスで次のように指定しま す。 5 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Server クライアント・プログラムでサービスの起動元と なるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 6 ファイル 説明 Makefile.win Makefile.sol Makefile.lnx クライアント・プログラムのコンパイルに使用す る Make ファイル。Windows、Solaris または Linux など、プラットフォーム用の適切なファイ ルを使用してください。 ClientServices.h サービス・ファンクションの宣言。 ClientServices.c インタフェース用のサービス・ファンクションの 定義。このファイルに独自のプログラム・コード を挿入できます。 ClientMain.c メイン・プログラム・ファイル。コンパイル後は 実行可能ファイルとなり、ClientServices.h に定義 されているサービス・ファンクションをコールし ます。このファイルを参考にして、サービス・ ファンクションを独自のクライアント・アプリ ケーションに統合します。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 C/C++コードを作成した後に、そのコードをコンパイルしてワークス テーションからテストできます。 プログラムをテストする前に必要な作業は、次のとおりです。 128 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド クライアント・アプリケーション用ソース・コードの作成 • このプログラムにより起動するサービスが、前述のステップ 4 で指定した Web Integration Server 上に存在することを確認しま す。まだサービスをその Web Integration Server に公開していな い場合は、110ページの「インタフェースの公開」を参照してく ださい。 • サービスの公開先 Web Integration Server が稼働していることを 確認します。 C/C++クライアント・アプリケーションの配布に関する追加情報は、 C/C++ソース・ファイルを含むディレクトリにある README ファイ ルを参照してください。 Visual Basic クライアント・アプリケーションの作成 次の手順に従って、特定の WIDL サービス用の Visual Basic クライア ントを作成します。Web Integration Developer では、ActiveX コント ロールを使用して Web Integration Server 上のメソッドを起動する Visual Basic プログラムが生成されます。このクライアント・プログ ラムは、Visual Basic または Microsoft Office プロジェクト内のクラス またはモジュールとして配布されるように設計されています。 ! Windows NT を実行中は、CLASSPATH システム環境変数に client.zip ファイルへのパスが含まれていることを確認してください。この変数が 設定されていないと、クライアント・プログラムの実行時にエラー 「ActiveX: オブジェクトを作成できません」が発生します。この変数の 設定手順は、133ページの「CLASSPATH の設定」を参照してくださ い。 WIDL サービス用の Visual Basic クライアント・コードを生成する には 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 3 「Generate」->「Clients」->「Visual Basic」->「Visual Basic 5.0」コマンドを選択します。 4 「Generate Visual Basic」ダイアログ・ボックスで次のように指 定します。 ソース・コードの生成 129 クライアント・アプリケーション用ソース・コードの作成 5 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Server クライアント・プログラムでサービスの起動元と なるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 6 ファイル 説明 InterfaceService.bas アプリケーション内でのサービス・クラスの使 用方法を示すサンプル・ファイル。このモ ジュールは、Web Integration で提供されるプロ ジェクト・テンプレート内のオブジェクトに依 存します。カスタム・アプリケーションにその まま使用することは意図されていません。 InterfaceService.cls サービス・オブジェクト。このオブジェクトを 独自プロジェクトに組み込みます。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 Visual Basic クライアント・アプリケーションの配布に関する追加情 報は、Visual Basic ソース・ファイルを含むディレクトリにある README ファイルを参照してください。 130 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド クライアント・アプリケーション用ソース・コードの作成 Excel 95 クライアント・アプリケーションの作成 次の手順に従って、Excel 95 スプレッドシートからの WIDL サービス の起動に使用できる ActiveX オブジェクトを作成します。この ActiveX オブジェクトは、Excel ワークブック内のクラスまたはモ ジュールとして配布するように設計されています。 ! Windows NT の実行中は、CLASSPATH システム環境変数に client.zip ファイルへのパスが含まれていることを確認してください。この変数が 設定されていないと、クライアント・プログラムの実行時にエラー 「ActiveX: オブジェクトを作成できません」が発生します。この変数の 設定手順は、133ページの「CLASSPATH の設定」を参照してくださ い。 WIDL サービス用の Excel 95 クライアント・コードを生成するには 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 3 「Generate」->「Clients」->「Visual Basic」->「Excel 95」コマ ンドを選択します。 4 「Generate Excel 95」ダイアログ・ボックスで次のように指定し ます。 5 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Server クライアント・プログラムでサービスの起動元と なるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 ソース・コードの生成 131 クライアント・アプリケーション用ソース・コードの作成 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 6 ファイル 説明 InterfaceService_H.txt ワークシートでのサービス・クラスの使用方 法を示すサンプル・ファイル。このモジュー ルは、Web Integration で提供されるプロジェ クト・テンプレート内のオブジェクトに依存 します。カスタム・アプリケーションにその まま使用することは意図していません。 InterfaceService_S.txt サービス・オブジェクト。このオブジェクト を独自プロジェクトに組み込みます。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 スプレッドシートによるクライアント・アプリケーションの配布に関 する追加情報は、Excel 95 ソース・ファイルを含むディレクトリにあ る README ファイルを参照してください。 Excel 97 クライアント・アプリケーションの作成 次の手順に従って、Excel 97 スプレッドシートからの WIDL サービス の起動に使用できる ActiveX オブジェクトを作成します。この ActiveX オブジェクトは、Excel ワークブック内のクラスまたはモ ジュールとして配布するように設計されています。 ! Windows NT の実行中は、CLASSPATH システム環境変数に client.zip ファイルへのパスが含まれていることを確認してください。この変数が 設定されていないと、クライアント・プログラムの実行時にエラー 「ActiveX: オブジェクトを作成できません」が発生します。この変数の 設定手順は、133ページの「CLASSPATH の設定」を参照してくださ い。 WIDL サービス用の Excel 97 クライアント・コードを生成するには 132 1 クライアント・コードの作成対象となるサービスを含む WIDL ファイルを開きます。 2 ドキュメント・ブラウザで、クライアント・コードの作成対象 となるサービスを含むインタフェースの名前を選択します。 3 「Generate」->「Clients」->「Visual Basic」->「Excel 97」コマ ンドを選択します。 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド クライアント・アプリケーション用ソース・コードの作成 4 5 「Generate Excel 97」ダイアログ・ボックスで次のように指定し ます。 フィールド 指定 Interface Name Web Integration Server 上でサービスが存在するイ ンタフェースの名前。 Service クライアント・コードの作成対象となるサービ ス。サービス名を選択するか、「All Services」を 選択して現行のインタフェース内のすべてのサー ビスのクライアント・コードを作成します。 Directory Web Integration Developer でクライアント・ソー ス・コードを書き込むディレクトリの名前。 Server クライアント・プログラムによるサービスの起動 元となるサーバーの名前。サーバーは ServerName:PortNumber 形式で指定します。 「OK」をクリックします。 Web Integration Developer により次のファイルが生成され、指定 したディレクトリに書き込まれます。 6 ファイル 説明 InterfaceService.bas ワークシートでのサービス・クラスの使用方法 を示すサンプル・ファイル。このモジュール は、Web Integration で提供されるプロジェク ト・テンプレート内のオブジェクトに依存しま す。カスタム・アプリケーションにそのまま使 用することは意図されていません。 InterfaceService.cls サービス・オブジェクト。このオブジェクトを 独自プロジェクトに組み込みます。 「OK」をクリックし、「Files Generated」ダイアログ・ボック スを閉じます。 スプレッドシートでのクライアント・アプリケーションの配布に関す る追加情報は、Excel 97 ソース・ファイルを含むディレクトリにある README ファイルを参照してください。 CLASSPATH の設定 次の手順に従って、Windows NT システム上の CLASSPATH 変数に client.zip ファイルへのパスを追加します。Web Integration Server に対 して ActiveX クライアント・プログラムを実行するには、この変数を 設定する必要があります。 ソース・コードの生成 133 統合モジュール用ソース・コードの作成 CLASSPATH 環境変数を設定するには 1 「スタート」->「設定」->「コントロール パネル」->「システ ム」を選択します。 2 「Environment」タブを選択します。 3 CLASSPATH 変数を検索します。この変数が存在しない場合は、 作成します。 4 client.zip ファイルへのフルパスを追加します。 統合モジュール用ソース・コードの作成 Web Integration Developer を使用すると、Web Integration アプリケー ションを起動するクライアント・コードのみでなく、統合モジュール 用の初期コード・セットを作成できます。手順は、『Oracle9i Application Server Wireless Edition Web Integration Server ユーザーズ・ ガイド』を参照してください。 134 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 付録 A: WIDL リファレンス 概要 Web Interface Definition Language(WIDL)は、World Wide Web のド キュメントベースのリソース上にサービスベースのアーキテクチャを 実装するメタ言語です。HTTP を介してアプリケーションを統合する ためのテクノロジであり、XML または HTML ドキュメントをアプリ ケーション間メッセージとして解析し、アプリケーション相互で通信 できるようにします。 WIDL は、Extensible Markup Language(XML)のアプリケーションで す。WIDL では、WIDL 仕様および WIDL マッピングという 2 種類の XML ドキュメントが定義されます。これらのドキュメントは異なる XML Document Type Declaration(DTD)に準拠しており、機能も異な りますが、相互に補完的な役割を果たします。 • WIDL 仕様は、アプリケーション・インタフェースの抽象記述を 提供する XML ドキュメントです。この仕様によりインタフェー ス名を指定し、そのインタフェースに関連したサービスを記述し ます。同じ仕様をアプリケーションごとに異なる方法で実装でき ます。WIDL により、同じ仕様に準拠する 2 つのアプリケーショ ンが交換可能になるため、クライアントではアプリケーションの インタフェースの詳細を認識する必要がありません。 クライアントは、Java アプリケーション、C アプリケーション、 XML ベースのアプリケーションのみでなく、HTML ページを介 して公開されるアプリケーションとも無差別に通信できます。 Web Integration Developer では、他の多数のプログラミング言語も サポートされます。仕様により、コードの生成に必要な情報がす べて提供されます。 • WIDL マッピングは、HTML または XML ページと WIDL 仕様間 のマッピングを記述する XML ドキュメントです。このマッピン 付録 A: WIDL リファレンス 135 WIDL 仕様 グにより、Web サイトや XML ベースのアプリケーションがサー ビス・セットとして公開されます。クライアント・アプリケー ションは、WIDL マッピングを介して、プログラムのファンク ションやプロシージャとして実装されているかのように Web サー ビスを起動し、Web と対話できます。また、アプリケーションで は、HTML、XML またはネットワーク・プロトコルを認識しなく ても、Web と対話できます。 WIDL 仕様 <WIDL-SPEC> <WIDL-SPEC>は、WIDL インタフェース仕様の親要素です。インタフェー ス仕様は、アプリケーションまたは Web サイトが提供するサービスの抽象 記述です。<WIDL-SPEC>要素には、必要な数の<RECORD>要素と <METHOD>要素を含めることができます。<WIDL-SPEC>要素の属性は、次 のとおりです。 NAME 必須属性。インタフェース名を設定します。インタフェース名は、 サービス名とともにネーミング・サービスやディレクトリ・サービス に使用されます。インタフェース名には大/小文字区別があります。イ ンタフェース名にピリオドを使用すると、インタフェースを関連イン タフェースの階層形式で編成できます。この場合、ピリオドで階層レ ベルを区切ります。次に仕様名の例を示します。 com.webintegration.products.search com.webintegration.products.purchase com.webintegration.personnel.address_book VERSION 必須属性。この属性の値は"3.2"にする必要があります。これは、仕様 が WIDL 3.2 に準拠することを示します。 COMMENT オプション属性。この要素に関する説明的な情報。 <METHOD/> <METHOD>要素は、クライアントがサーバーに対して実行を要求できる操 作を表します。どのメソッドにも名前があり、オプションで入力パラメータ と出力パラメータのセットを持ちます。この要素の属性は、次のとおりです。 NAME 必須属性。メソッド名を設定します。特定のインタフェース仕様内で 2 つのメソッドに同じ名前を使用することはできません。 136 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL 仕様 INPUT オプション属性。この属性では、メソッドの入力引数を指定するレ コードの名前を指定します。入力引数は、レコードに含まれるフィー ルドです。この属性がない場合は、メソッドに入力引数がないことを 示します。 OUTPUT オプション属性。この属性では、メソッドの出力引数を指定するレ コードの名前を指定します。出力引数は、レコードに含まれるフィー ルドです。この属性がない場合は、メソッドに出力引数がないことを 示します。 COMMENT オプション属性。この要素に関する説明的な情報。 <RECORD> <RECORD>要素では、フィールドのコレクションをグループ化して名前を指 定します。C の構造や状態変数を持つがメソッドを持たない Java と C++のク ラスに似ています。<RECORD>には、1 つ以上の<VALUE>要素と <RECORDREF>要素が含まれ、それぞれがレコードのフィールドとして認識 されます。<RECORD>要素の属性は、次のとおりです。 NAME 必須属性。レコード名を設定します。単一のインタフェース仕様の有 効範囲内で、2 つのレコードに同じ名前を使用することはできません。 COMMENT オプション属性。この要素に関する説明的な情報。 <VALUE> <VALUE>要素は、ネストされたレコードではないレコードのフィールドを 表します。値は、数値、テキスト、XML、日付などを表し、ほとんどのプ ログラミング言語における基本型に似ています。また、値はこれらの基本型 の配列も表します。<VALUE>は<RECORD>の構成要素ですが、<VALUE> 要素自体は空です。<VALUE>要素の属性は、次のとおりです。 NAME 必須属性。フィールド名を設定します。特定の<RECORD>内で 2 つの フィールドに同じ名前を使用することはできません。 TYPE オプション属性。この属性では、フィールドの字句タイプを識別しま す。字句タイプには、整数、浮動小数点数および文字列があります。 このリリースの WIDL でサポートされるのは文字列のみのため、 TYPE 属性が存在する場合、その値は"STRING"である必要があります。 付録 A: WIDL リファレンス 137 WIDL 仕様 TYPE 属性が存在しない場合は、値"STRING"が推定されます。すべて の字句タイプは文字列として表現できます。 DIM オプション属性。この属性では、フィールドの次元を定義します。次 元"1"は、そのフィールドが文字列の 1 次元配列であることを示し、次 元"2"は文字列の 2 次元配列であることを示します。次元"0"は、その フィールドが配列ではなく、単純文字列であることを示します。DIM 属性がなければ、属性値"0'が推定されます。他の次元はサポートされ ません。 COMMENT オプション属性。この要素に関する説明的な情報。 <RECORDREF> <RECORDREF>要素は、他のレコード内にネストされているレコードを表し ます。これは<RECORD>の構成要素ですが、この要素自体は空です。 <RECORD>要素は、常に<WIDL-SPEC>の直接の子です。レコードを別のレ コード内にネストするには、一方に<RECORDREF>要素を使用します。 <RECORDREF>要素の属性は、次のとおりです。 NAME 必須属性。フィールド名を設定します。特定の<RECORD>内で 2 つの フィールドに同じ名前を使用することはできません。 DIM オプション属性。この属性では、フィールドの次元を定義します。次 元"1"は、そのフィールドがレコードの 1 次元配列であることを示し、 次元"2"はレコードの 2 次元配列であることを示します。次元"0"は、 そのフィールドが配列ではなく単純レコードであることを示します。 DIM 属性がなければ、属性値"0"が推定されます。他の次元はサポート されません。 RECORD 必須属性。この属性では、親<RECORD>要素内にネストするレコード の名前を指定します。 COMMENT オプション属性。この要素に関する説明的な情報。 138 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング WIDL-SPEC DTD <!ELEMENT WIDL-SPEC (METHOD | RECORD)+ <!ATTLIST WIDL-SPEC NAME CDATA #REQUIRED VERSION CDATA #FIXED "3.2" COMMENT CDATA #IMPLIED <!ELEMENT METHOD EMPTY <!ATTLIST METHOD NAME CDATA #REQUIRED INPUT CDATA #IMPLIED OUTPUT CDATA #IMPLIED COMMENT CDATA #IMPLIED <!ELEMENT RECORD (VALUE | RECORDREF)+ <!ATTLIST RECORD NAME CDATA #REQUIRED COMMENT CDATA #IMPLIED <!ELEMENT VALUE EMPTY <!ATTLIST VALUE NAME CDATA #REQUIRED DIM (0 | 1 | 2) "0" TYPE CDATA "STRING" COMMENT CDATA #IMPLIED <!ELEMENT RECORDREF EMPTY <!ATTLIST RECORDREF NAME CDATA #REQUIRED DIM (0 | 1 | 2) "0" RECORD CDATA #REQUIRED COMMENT CDATA #IMPLIED WIDL マッピング <WIDL-MAPPING> <WIDL-MAPPING>は WIDL マッピングの親要素で、WIDL マッピングは特 定の Web サイト向けの WIDL 仕様の実装です。マッピングにより、Web サ イトは HTML および XML ドキュメントではなくプログラミング言語のファ ンクションに似たものとしてプログラムに公開されます。これらのファンク ションは、WIDL マッピング・ドキュメントの<SERVICE/>要素です。 <WIDL-MAPPING>要素には、<SERVICE/>、<INPUT-BINDING>および 付録 A: WIDL リファレンス 139 WIDL マッピング <OUTPUT-BINDING>の各要素を必要な数だけ含めることができます。 <WIDL-MAPPING>要素の属性は、次のとおりです。 NAME 必須属性。インタフェース名を設定します。このインタフェース名は、 サービス名とともにネーミング・サービスまたはディレクトリ・サー ビスに使用されます。 VERSION 必須属性。マッピングが準拠する WIDL のバージョンを識別します。 このドキュメントでは、WIDL 3.2 マッピングについて説明しています。 BASEURL オプション属性。BASEURL は、HTML の<BASE HREF="">文に似て います。特定のマッピング内の一部のサービスを同じベース URL から ホストできます。BASEURL が定義されている場合は、各種サービス の URL を BASEURL との相対アドレスとして定義できます。この機能 は、各サービスの URL を使用するのではなく、BASEURL のみを変更 すればアドレスを指定できるレプリケート・サイトに役立ちます。 DEFAULT-CONTENT オプション属性。<VALUE>要素と<BINDINGREF>要素のデフォルト の内容型を指定します。この種の要素に CONTENT 属性がなければ、 その要素の CONTENT 属性の値は DEFAULT-CONTENT に割り当てら れた値と同じであると見なされます。DEFAULT-CONTENT 属性がな ければ、その値は"WOM"であると見なされます。WIDL 3.2 では、こ の属性に許される他の値は"CONSTANT"のみです。詳細は、 <VALUE>および<BINDINGREF>の CONTENT 属性を参照してくださ い。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <SERVICE/> <SERVICE/>要素では、CGI スクリプトに対する要求や、NSAPI、ISAPI また は他のバックエンド Web サーバー製品を介して統合されたアプリケーショ ンに対する要求など、HTTP 要求を定義します。Web サーバーは、入力パラ メータのセットを取り、何らかの処理を実行し、生成された HTML、XML またはテキスト・ドキュメントを動的に戻します。WIDL サービスにより、 HTTP 要求はその入力および出力に対応付けられます。HTTP 要求を実行す るのみでなく、サービスをファイル・システム上のファイルや、ドキュメン トの一部にダイレクトすることもできます。 <SERVICE/>要素の属性では、抽象サービス名を実際の URL にマップし、 Web サーバーへのアクセスに使用する HTTP メソッドを指定し、入力パラ メータと出力パラメータのバインドを指定します。<SERVICE/>要素の属性 は、次のとおりです。 140 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング NAME 必須属性。サービス名を設定します。サービス名はマッピング名とと もに使用され、サービスが一意に識別されます。特定の WIDL マッピ ング内で 2 つのサービスに同じ名前を使用することはできません。 URL 必須属性。ターゲット・ドキュメントの URL を指定します。サービス の URL は、完全修飾 URL、または<WIDL-MAPPING>要素の属性とし て提供される BASEURL に相対的な部分 URL として指定できます。 METHOD 必須属性。サービスへのアクセスに使用する HTTP メソッドを指定し ます。有効な値は、"GET"および"POST"です。 INPUT オプション属性。サービスをコールするプログラムの入力パラメータ 定義に使用する<INPUT-BINDING>を指定します。この値は、同じ マッピングに含まれる<INPUT-BINDING>の名前です。また、書式 "mapping-name:binding-name"を使用して指定することもできます。こ の場合、mapping-name は別のマッピングの名前で、binding-name はそ のマッピング内の<INPUT-BINDING>の名前です。この書式を使用す ると、複数のマッピングで同じ入力パラメータ定義を共有できます。 INPUT 属性がなければ、サービスには入力パラメータはありません。 OUTPUT オプション属性。サービスをコールするプログラムの出力パラメータ 定義に使用する<OUTPUT-BINDING>を指定します。この値は、同じ マッピングに含まれる<OUTPUT-BINDING>の名前です。また、書式 "mapping-name:binding-name"を使用して指定することもできます。こ の場合、mapping-name は別のマッピングの名前で、binding-name はそ のマッピング内の<OUTPUT-BINDING>の名前です。この書式を使用 すると、複数のマッピングで同じ出力パラメータ定義を共有できます。 OUTPUT 属性がなければ、サービスには出力パラメータはありません。 AUTHUSER オプション属性。HTTP 認証用のユーザー名を設定します。 AUTHPASS オプション属性。HTTP 認証用のパスワードを設定します。 TIMEOUT オプション属性。サービスがタイムアウトになるまでの秒数を指定し ます。 付録 A: WIDL リファレンス 141 WIDL マッピング RETRIES オプション属性。サービスが失敗になるまでの再試行回数を指定しま す。 SOURCE オプション属性。HTTP REFERER ヘッダー変数の設定値を指定します。 一部のサイトでは、この変数がチェックされ、クライアントが特定の ページから開始したことが確認されます。また、マッピングにより、 サービスの入力バインド内で<VALUE>パラメータを定義し、 REFERER 変数を設定することもできます。この場合、パラメータ名 は"REFERER"で、USAGE 属性は"HEADER"に設定します。サービス の SOURCE 属性が存在する場合は、常にこのパラメータがオーバーラ イドされます。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <INPUT-BINDING> <INPUT-BINDING>要素では、サービスの入力パラメータを定義します。こ の要素には 1 つ以上の<VALUE>要素が含まれ、それぞれサービスの入力パ ラメータに対応します。 入力バインドでは、HTTP 要求で送られるデータが記述され、HTML フォー ムの入力フィールドに似ています。静的 HTML ドキュメントの場合、入力 フィールドは不要です。 NAME 必須属性。<SERVICE/>要素による参照のバインドを識別します。特 定の WIDL マッピング内で 2 つのバインドに同じ名前を使用すること はできません。入力バインドと出力バインドには、同じ名前空間が使 用されます。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <OUTPUT-BINDING> <OUTPUT-BINDING>要素では、出力パラメータのグループを定義します。 サービスでは、その OUTPUT 属性を出力バインド名に設定し、出力パラ メータを指定できます。出力バインドには、それ自体が他の出力バインドで あるパラメータを含めることができるため、そのバインドを他のバインド内 でネストして複雑な出力構造を形成できます。 出力バインドで、HTML または XML ドキュメント、あるいはその一部から 情報が抽出され、パラメータ値が設定されます。パラメータを割り当てるた めにドキュメントから情報を抽出する処理は、バインドと呼ばれます。 142 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング サービスの OUTPUT 属性でバインド名を指定すると、各パラメータはド キュメント全体に対してバインドされます。<BINDINGREF>要素の BINDING 属性でバインド名を指定すると、各パラメータはドキュメントの うち<BINDINGREF>要素で識別される部分に対してバインドされます。出力 バインドに<BINDINGREF>パラメータを含めると、ネストしたレコード構造 を作成できます。この場合、各レコードはドキュメントの任意の部分に任意 の出力バインドを適用した結果であり、特定のバインドをドキュメントの複 数部分に対して複数回適用できます。 <OUTPUT-BINDING>は、<REGION>、<CONDITION>、<VALUE>および <BINDINGREF>の各子要素のメンバーで構成されます。<VALUE>要素と <BINDINGREF>要素では、出力バインドのパラメータを定義します。 <OUTPUT-BINDING>の属性は、次のとおりです。 NAME 必須属性。<SERVICE/>要素と<BINDINGREF>要素による参照のバイ ンドを識別します。特定の WIDL マッピング内で 2 つのバインドに同 じ名前を使用することはできません。<INPUT-BINDING>と<OUTPUTBINDING>の名前は、同じ名前空間に属します。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <REGION> <REGION>要素は、出力バインド内でドキュメントのターゲット・サブリー ジョンを定義するために使用します。 リージョンは、情報の変数配列をページの既知の要素間に配置できる構造で 戻すサービスに役立ちます。 リージョンは、設計が不十分であるために、必要なデータ要素(新規ページ 上の情報リンクなど)と検索条件を満たす要素を他の方法では区別できない HTML ドキュメントに不可欠です。 <REGION>要素の属性は、次のとおりです。 NAME 必須属性。リージョン名を指定します。この名前は、オブジェクト参 照のルートとして使用できます。たとえば、foo.p[0].text のよう に、オブジェクト参照にリージョン名「foo」を使用できます。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <REGION>要素には、次の子要素も含めることができます。 付録 A: WIDL リファレンス 143 WIDL マッピング <START> オプション属性。この要素の内容がリージョンの開始を決定するオブ ジェクト参照となるように指定します。この要素がなければ、ドキュ メントの開始と見なされます。 <END> オプション属性。この要素の内容がリージョンの終わりを決定するオ ブジェクト参照となるように指定します。この要素がなければ、ド キュメントの終わりと見なされます。 これらの子要素には、それぞれ次の属性を指定できます。 INCLUDE オプション属性。"TRUE"に設定すると、オブジェクト参照で識 別される要素がリージョンに含まれます。"FALSE"に設定する と、要素はリージョンから除外されます。この属性がなければ、 値"TRUE"と見なされます。 <CONDITION> <CONDITION>要素は、出力バインド内でコール側プログラムに戻される データの抽出に関して成否条件を指定するために使用されます。 条件により、サービス定義内で分岐ロジックが使用可能になります。初期バ インドが失敗したときに代替バインドを試行し、サービス・チェーンを開始 するために使用されます。これにより、あるサービスからの出力変数が、第 2 のサービスの入力バインドに渡されます。また、条件により、サービスの 失敗時にコール側プログラムに戻されるエラー・メッセージも定義します。 NULL 値を戻す出力バインド・パラメータが 1 つでもあると、そのパラメー タの NULLOK 属性が"TRUE"に設定されていない限り、バインド全体が失敗 します。 条件により、特定のオブジェクト参照またはバインド全体の成功または失敗 を捕捉できます。条件によりサービス・チェーンが開始される場合は、すべ てのパラメータが適切にバインドされることが重要です。 TYPE 必須属性。条件によりバインド試行の'SUCCESS'をチェックするか、 'FAILURE'をチェックするかを指定します。<CONDITION>要素の他の 属性で、この条件下で実行する操作を指定します。また、TYPE では、 サーバービジーの兆候に対する応答を示す値'RETRY'を推定すること もできます。この場合は、条件により特定のタイムアウトに基づいて 多数の再試行が実行されます。 MATCH オプション属性。<REFERENCE>子要素で参照されるオブジェクト・ プロパティと比較するテキスト・パターンを指定します。 144 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング REBIND オプション属性。代替出力バインドを指定します。通常、失敗条件は、 戻されるドキュメントを正常にバインドできないことを示します。 REBIND により、バインド試行は別の出力バインドにリダイレクトさ れます。リバインドは、サービスから戻されるドキュメントが、送ら れた入力条件に依存する状況に役立ちます。たとえば、小売業の Web サイトでは、要求された品目がシャツ、ネクタイ、ズボンのどれであ るかに応じて、SKU に関する異なるドキュメント構造を戻す場合があ ります。REBIND を使用すると、条件に基づいて必要なデータの抽出 に適したバインドを決定できます。 SERVICE オプション属性。出力バインドの結果を使用して起動し、サービス・ チェーンを実装するサービスを指定します。値は、同じマッピングに 含まれる<SERVICE>の名前です。また、この値は書式"mappingname:service-name"で指定することもできます。この場合、mappingname は別のマッピングの名前で、service-name はそのマッピング内の <SERVICE>の名前です。これにより、複数のマッピングのサービスを 連鎖させることができます。サービスを連鎖させることにより、クラ イアント・プログラム用にカプセル化可能なタスクをさらに自動化で きるという明らかな利点だけでなく、 様々な場合に、複数の Web ページへのアクセスに成功した場合にのみターゲット・ドキュメント を取り出せるようにすることができます。たとえば、HTML フォーム と対話する前にアクセスする必要のあるエントリ・ページにより cookie が発行される場合や、特定のユーザー個別情報に関してデータ ベースから URL が動的に生成される場合があります。 REASONTEXT オプション属性。サービスが失敗した場合にエラー・メッセージとし て戻されるテキストを指定します。条件に REASONTEXT 属性値と <REASONREF>子要素の両方を含めることはできません。 MASK オプション属性。<REASONREF>で戻されるテキストの一部を指定し ます。この部分は、エラー・メッセージとして戻されるテキストとな ります。マスクの構文は、オブジェクト参照でマスクに定義される構 文と同じです。オプション<REASONREF>の子要素に含まれる WOM 表現によりマスク処理を実行できるため、この属性を使用する必要は ありません。 WAIT オプション属性。サーバーが'service busy'エラーを戻してから、ドキュ メントの取出しを再試行するまでの待機秒数を指定します。RETRY 型 の条件にのみ適用されます。 付録 A: WIDL リファレンス 145 WIDL マッピング RETRIES オプション属性。失敗となるまでのサービスの再試行回数を指定しま す。RETRY 型の条件にのみ適用されます。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 <CONDITION>要素には、次の子要素を含めることができます。 <REFERENCE> オプション属性。サービスの起動結果として戻される HTML または XML ドキュメントからデータを抽出するオブジェクト参照を指定しま す。条件の REFERENCE 属性は、<VALUE>および <BINDINGREF>要 素の内容と等価です。 <REASONREF> オプション属性。サービスが失敗したときにエラー・メッセージとし て戻される値を識別するオブジェクト参照を指定します。 <CONDITION>要素に REASONTEXT 属性と<REASONREF>子要素の 両方を含めることはできません。 <VALUE> <VALUE>要素は、入力バインドまたは出力バインドの文字列パラメータを 表します。入力パラメータの場合は、Web サーバーに送られる入力変数の値 を定義します。出力パラメータの場合は、サーバーにより戻されるドキュメ ントからパラメータ値を抽出する方法を定義します。 <VALUE>には子要素は含まれていませんが、<VALUE>開始タグと </VALUE>終了タグで囲まれる内容には順序があります。入力パラメータの 場合、この 2 つのタグの間に内容は不要で、その場合は空の開始タグ (<VALUE NAME="N1"/>など)を指定するだけですみます。これにより、 サービスをコールするプログラムがパラメータ値を提供するように指定しま す。入力パラメータに内容がなければ、その内容はサーバーに入力変数の値 として送られる文字列定数を表します。この場合、プログラムは値を提供し ません。 出力パラメータの場合は、開始タグと終了タグの間に内容が必要です。その 内容は、定数またはオブジェクト参照を表します。定数を表す場合、パラ メータはその値として常に内容を戻します。定数ではパラメータ置換に%% 表記法を使用できるため(USAGE 属性を参照)、パラメータ値は定数文字 列と動的に割り当てられるパラメータ値を連結したものになります。内容が オブジェクト参照を表す場合、オブジェクト参照ではサーバーにより戻され る HTML または XML ページから情報が抽出され、その情報がパラメータの 値となります。 次の属性は、入力パラメータと出力パラメータに共通です。 146 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング NAME 必須属性。コール側プログラムへのパラメータを識別します。特定の バインド内で 2 つのパラメータに同じ名前を指定することはできませ ん。<VALUE>と<BINDINGREF>の名前は、同じ名前空間に属します。 TYPE オプション属性。パラメータのデータ型を指定します。この属性が存 在する場合、パラメータは値"STRING"を取る必要があります。 DIM オプション属性。パラメータの次元を指定します。値"1"はパラメータ が文字列配列を表すことを示し、値"2"は文字列の 2 次元配列または表 を表すことを示します。値"0"は、パラメータが文字列を表すことを示 します。この属性がなければ、値"0"と見なされます。他の値は無効で す。 USAGE オプション属性。変数のデフォルトの使用方法として入力パラメータ と出力パラメータの仕様を指定します。また、各パラメータを WIDL 内部で使用したり、HTTP 要求でヘッダー情報(USER-AGENT や REFERER など)を渡すこともできます。USAGE の有効値は、 "DEFAULT"、"HEADER"および"INTERNAL"です。構文 "%<parameter>%"を使用すると、属性内や要素の内容から内部パラ メータを参照できます。これにより、文字列パラメータの場合は文字 列が置換され、他の場合はパラメータ値が割り当てられます(この構 文は、内部パラメータ以外にも使用できます)。 CONTENT オプション属性。要素の内容に含まれる表現のタイプを識別します。 この場合、内容は<VALUE>開始タグと</VALUE>終了タグの間にある 文字列で、有効な値は"WOM"と"CONSTANT"です。WOM は、オブ ジェクト参照を定義する Web(Integration)オブジェクト・モデル (Web Integration Object Model)の省略形です。CONTENT 属性がなけ れば、属性の値は<WIDL-MAPPING>要素の DEFAULT-CONTENT 属 性の値となります。入力パラメータには、内容タイプ"WOM"は不要で す。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 入力パラメータは、前述の属性に加えて次の属性を持つ必要がありま す。 FORMNAME 必須属性。HTTP の GET または POST メソッドを介して送る変数名を 付録 A: WIDL リファレンス 147 WIDL マッピング 指定します。変数に割り当てる値はコール側プログラムにより提供さ れますが、CONTENT 属性が"CONSTANT"に設定されている場合は、 要素の内容が値として送られます。FORMNAME 属性を使用すると、 曖昧なフォーム名変数に意味のある名前を割り当てることができます。 FORMNAME を空の文字列("")に設定すると、一部の Web サービス で要求されるように、変数名も渡すのではなく入力変数の値のみを渡 すことができます。 出力パラメータは、共通属性に加えて次の属性を持つことができます。 NULLOK オプション属性。パラメータのオブジェクト参照によるバインドの失 敗を受け入れるかどうかを指定します。値"TRUE"または"FALSE"が含 まれます。"FALSE"に設定されている場合、オブジェクト参照ではバ インドされず、バインド全体が失敗します。その場合は、 <CONDITION>要素を使用して、失敗したバインドを処理できます。 この属性がなければ、その値は"FALSE"と見なされます。したがって、 デフォルトでは、パラメータを 1 つでもバインドできなければ、バイ ンド全体が失敗します。 <BINDINGREF> <BINDINGREF>要素は、出力バインドの構造化レコード・パラメータを表し ます。この要素は別のバインドの参照として機能します。各 <BINDINGREF>は、パラメータ名と、そのパラメータが表す出力バインドの 名前を提供します。この要素は、バインド内でバインドをネストするための メカニズムを提供します。<BINDINGREF>は、<VALUE>と同様にバイン ド・パラメータです。 各<BINDINGREF>では、<BINDINGREF>開始タグと</BINDINGREF>終了タ グの間にオブジェクト参照が含まれています。オブジェクト参照では、 HTML または XML ドキュメントの 1 つ以上の部分を識別します。バインド 参照の DIM 属性が"0"であるか存在しなければ、バインド参照は別のバイン ドの単一インスタンスを表し、オブジェクト参照ではドキュメントの単一の 要素またはリージョンが識別されます。DIM 属性が"1"であれば、バインド 参照はバインド配列を表し、オブジェクト参照はドキュメントの要素の配列 を表します。 オブジェクト参照が複数の場合、その数は<BINDINGREF>の次元と一致する 必要があります。また、<BINDINGREF>のオブジェクト参照では、オブジェ クト・プロパティは指定されません。かわりに、常に、それを含む <OUTPUT-BINDING>のオブジェクト参照との相対位置で表されます。 たと えば、TR[]、TR[].TD[0]および product[]はすべて有効な<BINDINGREF> オブジェクト参照ですが、doc.TR[]、TR[].TD[0].source および doc.product[].source はいずれもバインド参照では無効です。ただし、 “doc”は役立つバインド参照であり、参照先バインドは、参照元バインドの バインド先ドキュメントの要素にバインドされます。 148 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング <BINDINGREF>要素の属性は、次のとおりです。 NAME 必須属性。コール側プログラムのパラメータを識別します。ネストし たバインド内でパラメータにアクセスするには、プログラムはそのパ ラメータをバインド参照名に相対で参照する必要があります。特定の バインド内で 2 つのパラメータに同じ名前を使用することはできませ ん。<VALUE>と<BINDINGREF>の名前は、同じ名前空間に属します。 DIM オプション属性。パラメータの次元を指定します。値"1"はそのパラ メータがバインドの配列であることを示し、値"0"は単一のバインドを 表すことを示します。この属性がなければ、値"0"と見なされます。他 の値は無効です。 RECORD 必須属性。バインド参照がその親出力バインド内でネストする出力バ インドを識別します。値は、同じマッピングに含まれる<OUTPUTBINDING>の名前です。 USAGE オプション属性。変数のデフォルトの使用方法として、入力パラメー タと出力パラメータの仕様を指定します。また、変数を WIDL の内部 で使用したり、HTTP 要求でヘッダー情報(USER-AGENT または REFERER など)を渡すために使用することもできます。USAGE の有 効値は、"DEFAULT"、"HEADER"および"INTERNAL"です。 CONTENT オプション属性。要素の内容に含まれる表現のタイプを識別します。 この場合、内容は、<BINDINGREF>開始タグと</BINDINGREF>終了 タグの間にある文字列です。この属性がある場合、その値は"WOM"に する必要があります。WOM は、オブジェクト参照を定義するWeb (Integration)オブジェクト・モデル(Web Integration Object Model) の省略形です。CONTENT 属性がなければ、この属性の値は<WIDLMAPPING>要素の DEFAULT-CONTENT 属性の値と見なされます。 COMMENT オプション属性。この要素に関する説明的な情報を指定します。 NULLOK オプション属性。パラメータのオブジェクト参照によるバインドの失 敗を許容できるかどうかを指定します。値"TRUE"または"FALSE"が含 まれます。"FALSE"の場合に、オブジェクト参照によりバインドされ なければ、バインド全体が失敗します。その場合は、<CONDITION> 要素を使用して、失敗したバインドを処理できます。この属性がなけ 付録 A: WIDL リファレンス 149 WIDL マッピング れば、その値は"FALSE"と見なされます。したがって、デフォルトで は、バインドできないパラメータが 1 つでもあると、バインド全体が 失敗します。 WIDL-MAPPING DTD <!ELEMENT WIDL-MAPPING (SERVICE | INPUT-BINDING | OUTPUT-BINDING)+ > <!ATTLIST WIDL-MAPPING NAME CDATA #REQUIRED VERSION CDATA #FIXED "3.2" BASEURL CDATA #IMPLIED DEFAULT-CONTENT (WOM | CONSTANT) "WOM" COMMENT CDATA #IMPLIED > <!ELEMENT SERVICE EMPTY > <!ATTLIST SERVICE NAME CDATA #REQUIRED INPUT CDATA #IMPLIED OUTPUT CDATA #IMPLIED URL CDATA #REQUIRED METHOD (GET | POST) "GET" AUTHUSER CDATA #IMPLIED AUTHPASS CDATA #IMPLIED SOURCE CDATA #IMPLIED TIMEOUT CDATA #IMPLIED RETRIES CDATA #IMPLIED COMMENT CDATA #IMPLIED > <!ELEMENT INPUT-BINDING (VALUE)+ > <!ATTLIST INPUT-BINDING NAME CDATA #REQUIRED COMMENT CDATA #IMPLIED > <!ELEMENT OUTPUT-BINDING (CONDITION | REGION | VALUE | BINDINGREF)+ > <!ATTLIST OUTPUT-BINDING NAME CDATA #REQUIRED COMMENT CDATA #IMPLIED > <!ELEMENT VALUE (#PCDATA) > <!ATTLIST VALUE NAME CDATA #REQUIRED DIM (0 | 1 | 2) "0" TYPE CDATA "STRING" CONTENT (WOM | CONSTANT) #IMPLIED 150 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド WIDL マッピング FORMNAME CDATA #IMPLIED USAGE (DEFAULT | HEADER | INTERNAL) "DEFAULT" NULLOK (TRUE | FALSE) "FALSE" COMMENT CDATA #IMPLIED > <!ELEMENT BINDINGREF (#PCDATA) > <!ATTLIST BINDINGREF NAME CDATA #REQUIRED DIM (0 | 1 | 2) "0" BINDING CDATA #REQUIRED CONTENT (WOM) #IMPLIED FORMNAME CDATA #IMPLIED USAGE (DEFAULT | HEADER | INTERNAL) "DEFAULT" NULLOK (TRUE | FALSE) "FALSE" COMMENT CDATA #IMPLIED > <!ELEMENT CONDITION (REFERENCE?, REASONREF?) > <!ATTLIST CONDITION TYPE (SUCCESS | FAILURE | RETRY) "SUCCESS" MATCH CDATA #IMPLIED WAIT CDATA #IMPLIED MASK CDATA #IMPLIED REBIND CDATA #IMPLIED SERVICE CDATA #IMPLIED REASONTEXT CDATA #IMPLIED RETRIES CDATA #IMPLIED COMMENT CDATA #IMPLIED > <!ELEMENT REGION (START?, END?) > <!ATTLIST REGION NAME CDATA #REQUIRED START CDATA #REQUIRED END CDATA #REQUIRED NULLOK CDATA #IMPLIED COMMENT CDATA #IMPLIED > <!ELEMENT REFERENCE (#PCDATA) > <!ATTLIST REFERENCE CONTENT (WOM) "WOM" > <!ELEMENT REASONREF (#PCDATA) > <!ATTLIST REASONREF CONTENT (WOM) "WOM" > 付録 A: WIDL リファレンス 151 WIDL マッピング <!ELEMENT START (#PCDATA) > <!ATTLIST START INCLUDE (TRUE | FALSE) "TRUE" CONTENT (WOM) "WOM" > <!ELEMENT END (#PCDATA) > <!ATTLIST END INCLUDE (TRUE | FALSE) "TRUE" CONTENT (WOM) "WOM" > 152 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 付録 B: WOM リファレンス Web オブジェクト・モデル(WOM) Web(Integration)オブジェクト・モデル(WOM)は、Web ドキュメ ントからのデータをマッピングするための基本的なメカニズムを提供 します。Web Integration により Web ドキュメントが読み込まれると、 そのドキュメント内の XML または HTML マークアップを使用してド キュメントのコンテンツがオブジェクト・モデルへと解析されます。 XML と HTML のマークアップは、どちらも山カッコ< > で囲まれた タグ要素からなっています。解析処理中に、タグ要素がドキュメン ト・オブジェクトの配列に変換され、タグ要素の属性がオブジェク ト・プロパティとなります。また、XML と HTML のマークアップで は、どちらの場合も内容を含んでいる要素と空の要素が実装されます。 内容を含んでいる要素には、開始タグと終了タグが付いています。空 の要素の場合、タグは 1 つのみです。 Web ドキュメントの解析時には、内容を含んでいる要素内のテキスト は、対応するドキュメント・オブジェクトのテキスト・プロパティと なります。 Web ドキュメントから解析されたデータへのアクセスには、1 つ以上 の索引付き要素配列と 1 つのオブジェクト・プロパティからなるオブ ジェクト参照が使用されます。 オブジェクト参照 次のオブジェクト参照では、x と y は数値索引を表します。 doc.element[x].property 絶対参照では、要素配列の数値索引が使用されます。 付録 B: WOM リファレンス 153 Web オブジェクト・モデル(WOM) doc.element[x].element[x].property ネストした要素配列では、子要素のオブジェクト参照の有効範囲が設 定されます。 doc.element[x].line[x].property 行配列は、ドキュメント・オブジェクトのテキスト・プロパティに改 行が含まれている場合に組み立てられます。 doc.element[x].^.property 要素の親は^で参照されます。 doc.element[x].?[x].property ?は、任意のタイプの要素配列と一致します。 doc.element[].property 空の大カッコは、要素配列のすべてのメンバーが戻されるように指定 します。 doc.element|element[].property |は、論理'OR'の指定に使用します。複数の要素配列の内容を戻すこ とができます。 doc.element[x-y].property 配列から要素の範囲を戻します。 doc.element[x-end].property end は、配列の最後の要素を戻す予約語です。 doc.element[x,y,z].property 項目 x、y および z を戻します。x、y および z は、要素配列の数値 索引を表します。 doc.element[x+y].property 要素 x と後続のすべての y 要素を戻します。 doc.element['match'].property match 文字列と一致するテキスト・プロパティを持つ要素配列を戻 します。match 文字列には、ワイルド・カードを使用できます。 doc.element[/RegularExpression/].property 指定した正規表現と一致するテキスト・プロパティを持つ要素配列を 戻します。正規表現の構成方法の詳細は、159ページの「付録 C: 正規 表現」を参照してください。 154 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web オブジェクト・モデル(WOM) doc.element(property='match').property 特定の要素のプロパティ値と一致します。 兄弟演算子 WOM には、指定された要素の兄弟を参照する次の演算子セットが用 意されています。後述の説明で示す例では、次の HTML 構造を参照 しています。 TABLE TR TD B I B B Bold 0 Italic 0 Bold 1 Bold 2 兄弟(同じ親に属す要素) TD B Bold 3 I Italic 1 B Bold 4 I Italic 2 兄弟演算子は、現行の親による制約を受けます。演算子が現行の親の 境界を超えると、その参照については NULL 値が生成されます。 doc.element[x][email protected] タイプに関係なく element[x]の後の n 番目の兄弟を参照します。後述 の doc.element[x].+n.property と比較してください。 例 結果 doc.td[0].b[0][email protected] Italic 0 doc.td[0].i[0][email protected] Bold 1 doc.td[0].b[0][email protected] Null doc.element[x][email protected] タイプに関係なく element[x]の前の n 番目の兄弟を参照します。後述 の doc.element[x].+n.property と比較してください。 付録 B: WOM リファレンス 155 Web オブジェクト・モデル(WOM) 例 結果 doc.td[1].b[end][email protected] Bold 3 doc.td[1].i[end][email protected] Bold 4 doc.td[1].b[end][email protected] Null doc.element[x].+n.property element[x]と同じタイプで、element[x]の後の n 番目の兄弟を参照しま す。前述の doc.element[x][email protected] と比較してください。 例 結果 doc.td[0].b[0].+1.text Bold 1 doc.td[0].i[0].+1.text Null doc.td[0].b[0].+3.text Null doc.element[x].-n.property element[x]と同じタイプで、element[x]の前の n 番目の兄弟を参照しま す。前述の doc.element[x][email protected] と比較してください。 例 結果 doc.td[1].b[end].-2.text Null doc.td[1].i[end].-1.text Italic 1 doc.td[1].b[end].-3.text Null オブジェクト・プロパティ 解析された XML または HTML のタグ要素の属性から導出されるプロ パティに加えて、次のプロパティはすべてのオブジェクトに使用可能 です。 .text/.txt オブジェクトのテキストを戻します。 .value/.val オブジェクトの値を戻します(要素に VALUE 属性がない場合は、オ ブジェクトのテキストと等価です)。 .source/.src オブジェクトの XML または HTML ソースを戻します。 .index/.idx オブジェクトの数値索引を戻します。 156 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド Web オブジェクト・モデル(WOM) .reference/.ref 完全オブジェクト参照を戻します。 プロパティ・マスク プロパティ・マスクを使用すると、オブジェクト・プロパティの値か ら不要なテキストを削除できます。 doc.element[x].property[x-y] 位置 x∼y の範囲にある文字を戻します。 doc.element[x].property['mask'] ワイルド・カードの一致とトークンの収集を使用して、オブジェク ト・プロパティの値から必要なデータを抽出します。 doc.element[x].property[/RegularExpression/] 正規表現を使用して、オブジェクト・プロパティの値から必要なデー タを抽出します。正規表現の構成方法の詳細は、159ページの「付録 C: 正規表現」を参照してください。 付録 B: WOM リファレンス 157 Web オブジェクト・モデル(WOM) 158 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 付録 C: 正規表現 正規表現の概要 正規表現は、UNIX 環境で広範囲に使用されているパターン一致テク ニックです。WIDL では、正規表現を使用して索引やマスクを指定で きます。 正規表現を索引として使用すると、/webintegration/のように単純なパ ターンにより、文字列「webintegration」を含むすべての要素が抽出さ れます。たとえば、オブジェクト参照 doc.p[/webintegration/]では、 次のパラグラフがすべて選択されます。 <p>webintegration</p> <p>You use Web Integration Server to execute services</p> <p>Exchanging data with XML is easy using Web Integration<p> <p>Web Integration Server</p> 正規表現をマスクとして使用する場合は、カッコを使用して収集する 文字数を指定します。たとえば、オブジェクト参照 doc.p[].text[(.{30}).*]では、各パラグラフの最初の 30 文字が保持 され、残りの文字は破棄されます。 この付録では、正規表現の Web Integration 実装でサポートされる文字 について説明します。 ! 正規表現には、大/小文字区別があります。 付録 C: 正規表現 159 正規表現の概要 使用する記号 . 目的 改行以外の任意の 1 文字と一致します。 例: doc.p[/web.ntegration/].text この例では、文字列‘web’の後に任意の 1 文字および文字列‘ntegration’を含むパラグラフ がすべて戻されます。‘webIntegration’および‘webintegration’は一致となります。 ^ 文字列または行の先頭と一致します。 例: doc.p[/^webintegration/].text この例では、要素の先頭またはその任意の行の先頭に文字列‘webintegration’を含むパラ グラフがすべて戻されます。 $ 文字列または行の終わりと一致します。 例: doc.p[/webintegration$/].text この例では、パラグラフの要素の終わりまたはその任意の行の終わりに文字列 ‘webintegration’を含むパラグラフがすべて戻されます。 * 直前の項目と 0 回以上一致します。 例: doc.p[/part *555-A/].text この例では、文字列‘part’の後に 0 個以上の空白および文字‘555-A’を含むパラグラフがす べて戻されます。 + 直前の項目と 1 回以上一致します。 例: doc.p[/part number +555-A/].text この例では、文字列‘part number’の後に 1 個以上の空白および文字‘555-A’を含むパラグ ラフがすべて戻されます。 ? 直前の項目と 0 回または 1 回一致します。 例: doc.p[/part ?555-A/].text この例では、文字列‘part’の後に 0 個または 1 個の空白および文字‘555-A’を含むパラグラ フがすべて戻されます。 ( ) 索引に使用する場合は、これらの文字により正規表現内で項目をグループ化します。 例: doc.p[/part(,0)May+/].text この例では、文字列‘part’の後に文字‘,0’の 1 度以上の繰返しおよび文字‘May’を含むパ ラグラフがすべて戻されます。 160 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 正規表現の概要 使用する記号 目的 マスクに使用する場合は、保持する文字数を指定します。 例: doc.p[].text[(^.{25}).*] この例では、各パラグラフの最初の 25 文字が保持され、残りは破棄されます。 {n } 直前の項目と正確に n 回一致します。 例: doc.p[/^.{24}webintegration/].text この例では、25 番目の文字位置から単語‘webintegration’が始まるパラグラフがすべて戻 されます。 {n ,} 直前の項目と n 回以上一致します。 例: doc.p[/^.{10,}webintegration/].text この例では、10 番目以降の任意の文字位置に単語‘webintegration’を含むパラグラフがす べて戻されます。 {,m } 直前の項目と一致しないか、または最大 m 回一致します。 例: doc.p[/^.{,4}webintegration/].text この例では、最初の 5 番目の文字位置までに単語‘webintegration’が始まるパラグラフが すべて戻されます。 {n ,m } 直前の項目と n 回以上 m 回以内で一致します。 例: doc.p[/^.{1,4}webintegration/].text この例では、2∼5 番目の文字位置で単語‘webintegration’が始まるパラグラフがすべて戻 されます。 | この文字の前または後にある表現と一致します。 例: doc.p[/webintegration|webIntegration/].text この例では、‘webintegration’または‘webIntegration’を含むパラグラフがすべて戻されま す。 \b 単語境界と一致します。 例: doc.p[/\bport\b/].text この例では、単語‘port’を含むパラグラフのうち、‘import’、‘support’、‘ports’または 付録 C: 正規表現 161 正規表現の概要 使用する記号 目的 ‘ported’のように、単語の一部にこれらの文字が含まれていないパラグラフがすべて戻さ れます。 \B 単語境界でない境界と一致します。 例: doc.p[/\B555-A/].text この例では、文字‘555-A’単独ではなく、AZ555-A または Dept555-A のように単語の一部 に含まれているパラグラフがすべて戻されます。 \A 文字列の先頭でのみ一致します(^と等価)。 例: doc.p[/\Awebintegration/].text この例では、要素の先頭またはその任意の行の先頭に文字列‘webintegration’を含むパラ グラフがすべて戻されます。 \Z 文字列の終わり(または行末)でのみ一致します。 例: doc.p[/webintegration\Z/].text この例では、パラグラフ要素の終わりまたはその任意の行の終わりに文字列 ‘webintegration’を含むパラグラフがすべて戻されます。 \n 改行と一致します。 例: doc.p[/webintegration\n/].text この例では、文字列‘webintegration’と、その後の改行文字を含むパラグラフがすべて戻 されます。 \r キャリッジ・リターンと一致します。 例: doc.p[/webintegration\r/].text この例では、文字列‘webintegration’と、その後のキャリッジ・リターンを含むパラグラ フがすべて戻されます。 \t タブ文字と一致します。 例: doc.p[/\twebintegration/].text この例では、タブ文字と、その後の文字列‘webintegration’を含むパラグラフがすべて戻 されます。 \f 改ページ文字と一致します。 例: 162 doc.p[/webintegration\f/].text Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 正規表現の概要 使用する記号 目的 この例では、文字列‘webintegration’と、その後の改ページ文字を含むパラグラフがすべ て戻されます。 \d 任意の数字と一致します。[0-9]と同じです。 例: doc.p[/part \d555-A/].text この例では、数字 0∼9 で始まり文字 555-A が続く部品番号を含むパラグラフがすべて 戻されます。したがって、‘part 1555-A’は一致となりますが、‘part A555-A’や‘part #555A’は一致となりません。 \D 数字以外の任意の 1 文字と一致します。[^0-9]と同じです。 例: doc.p[/part \D555-A/].text この例では、0∼9 以外の任意の文字で始まり文字 555-A が続く部品番号を含むパラグラ フがすべて戻されます。したがって、‘part A555-A’および‘part #555-A’は一致となります が、‘part 1555-A’は一致となりません。 \w 任意の英数字と一致します。[0-9a-z_A-Z]と同じです。 例: doc.p[/part \w555-A/].text この例では、英数字で始まり文字 555-A が続く部品番号を含むパラグラフがすべて戻さ れます。したがって、‘part A555-A’および‘part 1555-A’は一致となりますが、‘part #555A’は一致となりません。 \W 英数字以外の任意の文字と一致します。[^0-9a-z_A-Z]と同じです。 例: doc.p[/part \W555-A/].text この例では、英数字以外の文字で始まり文字 555-A が続く部品番号を含むパラグラフが すべて戻されます。したがって、‘part #555-A’および‘part -555-A’は一致となりますが、 ‘part 1555-A’や‘part A555-A’は一致となりません。 \s 任意の空白文字と一致します。[\t\n\r\f]と同じです。 例: doc.p[/\swebintegration/].text この例では、タブ文字、改行文字、キャリッジ・リターンまたは改ページ文字で始ま り、文字列‘webintegration’を含むパラグラフがすべて戻されます。 \S 空白文字以外の任意の文字と一致します。[^\t\n\r\f]と同じです。 例: doc.p[/\Swebintegration/].text この例では、タブ文字、改行文字、キャリッジ・リターンまたは改ページ文字以外の文 付録 C: 正規表現 163 正規表現の概要 使用する記号 目的 字で始まり、文字列‘webintegration’を含むパラグラフがすべて戻されます。 \0 NULL 文字列と一致します。 例: doc.p[/[^\0]/].text この例では、空(NULL)でないパラグラフがすべて戻されます。 \xnn 16 進値 nn を含む任意の文字と一致します。 例: doc.p[/\x1Fwebintegration/].text この例では、ASCII の単位セパレータ文字(1F)と、その後の文字‘webintegration’を含 むパラグラフがすべて戻されます。 [ ] 大カッコ内の任意の文字と一致します。 例: doc.p[/part [023]555-A/].text この例では、数字 0、2 または 3 で始まり文字 555-A が続く部品番号を含むパラグラフ がすべて戻されます。したがって、‘part 0555-A’および‘part 2555-A’は一致となります が、‘part 4555-A’は一致となりません。 次の文字は、大カッコの内側では特殊な意味を持ちます。 使用する文字 ^ 目的 パターンから文字を除外します。 例: doc.p[/part 555-[^023]/].text この例では、0、2 または 3 以外の数字で始まり文字 555-A が 続く部品番号を含むパラグラフがすべて戻されます。した がって、‘part 4555-A’および‘part A555-A’は一致となります が、‘part 0555-A’は一致となりません。 - 許容される文字の範囲を指定します。 例: doc.p[/part 555-[A-M]/].text この例では、A∼M の任意の英字で始まり文字 555-A が続く 部品番号を含むパラグラフがすべて戻されます。したがっ て、‘part A555-A’および‘part J555-A’は一致となりますが、 ‘part N555-A’は一致となりません。 164 Oracle9i Application Server Wireless Edition Web Integration Developer ユーザーズ・ガイド 索引 A H Authpass,114 Authuser,114 HTML/XML ソースの表示,33 HTML/XML ソースの表示(ショートカット), 33, 54 HTML/XML ドキュメントのオープン Web から,31 Web から(ショートカット),73 ファイル・システムから,32 HTTPS プロキシ・サーバー,120 HTTP 認証,114 HTTP プロキシ・サーバー,120 B BR タグ,66 C C/C++クライアント,127 CLASSPATH、設定,133 client.zip,133 「Conditions」タブ,83 cookie,31 cookie、Web Integration Developer による処理方法, 121 D I 「Is Reference」オプション,86 「Is Text」オプション,86 ISINDEX,44, 46 Developer の起動,7 DTD WIDL 仕様,139 WIDL マッピング,150 J E N Excel 95 クライアント,131 Excel 97 クライアント,132 F 「Find」ツール,54 「Form Name」,45, 47 G get メソッド,114 JavaScript、URL の取得,98 JavaScript クライアント,126 Java クライアント・コード,124 name=value のペア,42 「Null OK」,59, 69 NULL チェック、無効化,121 P post メソッド,114 「Preferences」コマンド,119 PRE タグ,66 R RECORD/RECORD ARRAY 型,58, 59, 68, 69 索引 165 REFERER ヘッダー変数,114 S 「Sample」タブ,52 変数の作成,55 「Send Value Only」,44, 46 Server Administrator、サービスのテストに使用, 105 「Set Empty」,44, 46, 60, 69 「Source」コマンド,33 SSL プロキシ・サーバー,120 U URL サービスに割当て済み,113 ブラウザ・レコーダを使用して取得,98 ベース URL の指定,108 変数を使用して指定,94, 113 「Usage」,45, 47, 59, 69 V 「View Document」タブ 「Conditions」タブ,84 「Variables」タブ,53 変数の作成,57 Visual Basic クライアント,129 W Web(Integration)オブジェクト・モデル (WOM),153 オブジェクト参照の説明,153 概要,6, 153 兄弟演算子,155 プロパティの説明,156 マスクの説明,157 WIDL 概要,4 構文,135 参照,135 WIDL インタフェースの作成,107 「WIDL」コマンド,34 WIDL サービス,3 Developer でテスト,83, 100, 103 Server Administrator のテスト,105 移動,117 改名,117 公開,110 コピー,117 作成,38, 113 パラメータの表示,115 166 索引 パラメータの編集,115 非公開,112 ブラウザでテスト,104 WIDL サービスの作成,38 WIDL サービスの作成(手動),113 WIDL サービスのテスト 「Conditions」タブ,83 Server Administrator から,105 「Variables」タブ,100 概要,100 障害の修正,101 ブラウザから,104 WIDL サービスのデバッグ,100 WIDL 仕様,108 DTD,139 概要,135 要素の説明,136 WIDL ドキュメント オープン,34 表示,34 保存,34 WIDL ドキュメントの表示,34 WIDL ドキュメントの保存,34 WIDL の生成 HTML ドキュメントから,38 HTML フォームから,39 WIDL ファイルのオープン,34 WIDL マッピング,108 DTD,150 概要,135 要素の説明,139 WOM,「Web(Integration)オブジェクト・モデ ル(WOM)」を参照 X XML WIDL,135 XML ドキュメント Web Integration Developer で使用,36 オープン,36 レコードの使用,77 い イメージ・マップ URL の取得,98 インタフェース 改名,109 公開,110 作成,107 説明,8 パラメータの表示,108 パラメータの編集,108 非公開,112 マージ,109 インタフェースの改名,109 インタフェースのマージ,109 インタフェース・パラメータの表示,108 Excel 97,132 Java,124 JavaScript,126 Visual Basic,129 作成,123, 134 サポートされるタイプ,4 クライアント・コードの作成,123, 134 う こ ウィンドウ要素,8 構成オプション,119 コピー サービス,117 出力変数,71 入力変数,48, 49 え エラー「Active X: オブジェクトを作成できませ ん」,129, 131, 132 エラー「オブジェクトを作成できません」,129, 131, 132 エラー処理,85, 87 エラー・メッセージ,86 お オブジェクト参照 BR 要素,66 PRE 要素,66 概要,60 兄弟演算子,155 行の選択,66 出力バインドで指定,59, 68 説明,153 属性,65 属性の選択,61 パターン一致,64 表,63 プロパティ,60 マスク,65 文字範囲,67 有効範囲,63 リージョン,76 か 概要,1 き 行、ドキュメントから抽出,66 兄弟演算子,155 く クライアント・アプリケーション C/C++,127 Excel 95,131 さ サーバーからのサービスの削除,112 サービス Developer でテスト,83, 100 Server Administrator からテスト,105 WIDL サービス,3 移動,117 改名,117 公開,110 コピー,117 作成,38, 113 説明,3 統合モジュール,3 パラメータの表示,115 パラメータの編集,115 非公開,112 ブラウザでテスト,104 サービス・エラーの修正,101 サービス・チェーン Developer でテスト,103 作成,94 実行の有効化/無効化,103 自動ロードを使用して作成,98 集計結果,94 入力の引渡し,94 ブラウザ・レコーダを使用して作成,98 サービス・チェーンの作成,94 サービス・チェーンのテスト,103 サービスの移動,117 サービスの改名,117 サービスの公開,110 サービスの非公開,112 サービス・パラメータの表示,115 索引 167 再試行条件 概要,87 作成,88 再試行条件の作成,88 索引値 すべてのメンバー,62 単一メンバー,62 パターン一致で指定,64 複数メンバー,62 削除 出力バインド,51 出力変数,70 入力バインド,43 入力変数,47 参照要素 「View Document」タブで指定,84 条件処理,81 し 失敗条件 概要,85 自動ロード,98 出力の引渡し クライアント・アプリケーションに,59, 69 出力バインド 概要,5 サービスへの割当て,114 削除,51 作成,50 編集,67, 68 変数の追加,55 出力バインドの作成,50 出力変数 「Sample」タブで作成,55 「View Document」タブで作成,57 改名,70 コピー,71 削除,70 作成,55 手動作成,58 定数値の割当て,59, 67, 69 データ型,58, 68 パイプラインから取得,59, 94 編集,67, 68 出力変数の改名,70 出力変数の作成,55 仕様、WIDL,135 168 索引 障害 実行時に処理,85 テスト中に修正,101 障害条件 「Is Reference」オプション,86 「Is Text」オプション,86 エラー・メッセージの指定,86 作成,85 障害条件の作成,85 条件,80 一般的な操作,83 サービス・チェーン,80 再試行,80, 87 失敗,80, 85 順序の変更,83 テスト,83 バインド後条件,81 バインド前条件,81 評価の順序,81 ランタイム障害に関して使用,85 ランタイム障害に使用,87 リバインド,80, 89 情報の検索 「Find」ツール,54 「View Document」タブ,53 変数リスト,52 せ 正規表現,159 そ ソース・コード クライアント・アプリケーション用,123, 134 表示,33 属性,61 NAME 属性,65 パターン一致,65 た 代替バインド,89 タイムアウト・エラー,87 他のサービスへの変数の引渡し,93 ち チェック・ボックス、WIDL とともに選択,40 チュートリアル,10 て 定数値 出力として,59, 67, 69 入力として,44, 46 データ型 出力変数,58, 68 入力変数,44, 46 デフォルト変数 出力,59, 69 入力,45, 47 と 統合モジュール 説明,3 ソース・コードの作成,134 ドキュメント内の情報の検索,52, 54 「Find」ツール,54 「View Document」タブ,54 変数リスト,52 ドキュメントのクローズ,35 ドキュメント・ブラウザ,8 取消し,48, 70 取消し、レベルの設定,121 な 内部変数 サービス・チェーン,94 出力,59, 69 入力,45, 47 に 入力の引渡し HTTP ヘッダーを使用,45, 47 Web アプリケーションに,45, 47 サービス・チェーンに,94 入力バインド 概要,5 サービスへの割当て,114 削除,43 作成,42 編集,45 変数の追加,43 入力バインドの作成,42 入力変数 改名,47 コピー,48, 49 削除,47 作成,43 定数値の割当て,44, 46 データ型,46 パイプラインから取得,94 編集,45 入力変数の改名,47 入力変数のクローニング,49 入力変数の作成,43 は パイプライン変数 URL パラメータで参照,94 サービス・チェーンを介した引渡し,93 出力バインドで参照,59, 69, 94 入力バインドで参照,44, 46, 94 パイプライン変数の参照 URL パラメータ,94 出力バインド,59, 69, 94 入力バインド,44, 46, 94 バインド後条件,81 バインド前条件,81 パスワード、指定,114 パターン一致 オブジェクト参照,64 条件処理,81 ひ 表、オブジェクト参照の作成 対象,63 評価の順序、条件,81 表記規則,1 ふ フォーム WIDL サービスの作成,39 自動ロード,98 複数のサービスから結果を集計,94 複数のバインド,89 ブラウザ・レコーダ,98 フレーム,72 プロキシ・サーバー,120 プロパティ,60, 156 へ ヘッダー変数,45, 47 編集 インタフェース・パラメータ,108 サービス・パラメータ,115 出力変数パラメータ,67, 68 索引 169 入力変数パラメータ,45 編集ペイン,9 変数,「入力変数」、「出力変数」も参照 URL に使用,94 変数、他のサーバーへの引渡し,93 変数リスト,52 情報検索に使用,52 ま マスク オブジェクト参照で使用,65 説明,157 ワイルド・カード記号,65 マッピング、WIDL,135 マニュアルの表記規則,1 も 文字範囲,67 ゆ 有効範囲,63 ユーザー・エージェント、デフォルト,122 ユーザー名、指定,114 ら ライセンス・キー,7 ラジオ・ボタン、WIDL とともに選択,40 ランタイム・エラー 再試行条件を使用して処理,87 障害条件を使用して処理,85 リバインド条件を使用して処理,89 り リージョン 概要,74 作成,75 リージョンの作成,75, 76 リバインド条件 概要,89 作成,90, 91 リバインド条件の作成,90, 91 れ レコード 概要,77 作成,78 レコードの作成,78 170 索引 わ ワイルド・カード記号 パターン一致,64 マスク,65
© Copyright 2024 ExpyDoc