プロキシ・サービスのメッセージ・フローでは、メッセージ・コンテキスト変数へのXQuery式の割り当て、XQuery式のブール結果に基づくIf...Then...アクションの割り当て、XPath式に対して相対的に指定した位置へのXQuery式の結果の挿入、コンテキスト変数のXQuery式を使用したログ用のメッセージ・コンテキストの指定などを実行できます。
コンテキストで必要な式を作成するために、メッセージ・フローの該当するコンテキストで、「XQuery式エディタ」、「XQuery条件エディタ」、「XPath式エディタ」を使用できます。
「ステージ構成の編集」ページでステージまたはルート・ノードにアクションを追加する場合、構成の詳細を入力するページにスケルトン構造が表示されます。図22-1に例を示します。
コンテキスト上適切である場合は、XQueryエディタへアクセスするためのリンクがスケルトンによって用意されます。アクションのコンテキスト上必要である場合、インラインで実行される式をこのエディタで作成できます。
始める前に
次の説明では、パイプライン・ステージ、エラー・ハンドラ・ステージ、またはルート・ノードの「ステージ構成の編集」ページでアクションの作成または編集を行うものとします。20.1項「メッセージ・フローの表示と編集」および21.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。
インライン式を作成または変更するには
「ステージ構成の編集」ページで、アクション内に式を追加または編集する場所を特定します。
「式」リンクをクリックして、コンテキストに適切なエディタを開きます。式がまだ定義されていない場合は、その位置において使用可能な式の種類がリンクに示されます。
XQuery式を作成するには、「式」をクリックします。Oracle Service Bus以外で作成したXQueryまたはXSLTリソースをインポートしてインラインXQueryにバインドすることもできます。
if..then..アクション用にXQuery条件式を作成するには、「条件」をクリックします。
メッセージ・コンテキスト変数用のXPath式を作成するには、「XPath」をクリックします。
式がその位置に対してすでに定義されている場合、「式」、「条件」または「XPath」リンクは式自体を示すtrue()
のようなリンクに置き換わります。式の長さが長すぎる場合は、$body/urn:POSta...
のような式の一部になります。式(または式の一部)をクリックして適切なエディタで式を開きます。
以下のトピックの説明を参照して、式を構築します。
(オプション)以下のいずれか、または両方を実行します。
式を検証するには、「検証」をクリックします。
式をテストするには、「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
「保存」をクリックして、エディタを閉じ、式をアクションに挿入します。
終了後
21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションの構成を続行します。
XQuery式エディタ、XQuery条件エディタ、およびXPath式エディタは、それぞれ以下のコンポーネントから構成されています。
各エディタの左側のパネルには、以下に示すパレットがあります。エディタでパレットの名前をクリックすると、そのパレットが表示されます。各パレットには、エディタ内で式に挿入できるエンティティが含まれています。
「ネームスペース定義」パレットには、Oracle Service Busのデフォルト・ネームスペース、変数のネームスペース、およびユーザー定義ネームスペースが表示されます。新しいネームスペースを定義することもできます。定義されたネームスペースはユーザー定義ネームスペースのリストに追加されます。
詳細については、以下を参照してください。
「XQuery関数」パレットには、一連の標準XQuery関数が表示されます。式に関数を挿入するときには、入力する必要があるパラメータ値ついてプレースホルダが使用されます。
詳細については、以下を参照してください。
「変数の構造」パレットには、XPath式を使用して、変数や変数のパスを挿入するためのツールが用意されています。
変数の構造は、エディタに表示される変数または変数のパスのグラフィカルな表現です。変数の構造が視覚化されることにより、変数の内容を参照するインラインXQuery式の構築が容易になります。
注意: 変数の構造では、変数は作成されません。変数は実行時に、ステージ内にある割当てアクションの対象として作成されます。 |
Oracle Service Busには事前定義されたメッセージ・コンテキスト変数(attachments
、body
、header
、outbound
、およびinbound
)があり、その内容を変数の構造として表示できます。ユーザーが独自に変数の構造を定義することもできます。
詳細については、以下を参照してください。
ページの右側は、XQuery式、XQuery条件、またはXPathを作成するためのワークスペースになっています。ワークスペースはそれぞれのエディタによって異なります。
プロパティ・インスペクタは、3種類のエディタのすべてで、ページの右下に表示されます。パレットの1つからアイテムを式に追加するために選択すると、選択したアイテムがプロパティ・インスペクタに表示されます。表示されたアイテムは、ワークスペースに貼り付けることができます。22.3項「エディタ・ワークスペースのテキスト・フィールドでの式の構築」を参照してください。
XQuery式エディタ、XQuery条件エディタ、およびXPath式エディタのすべてにテキスト・フィールドがあり、このフィールドに直接入力するか、または、パレットから貼り付けることで、式を構築できます。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集していることを前提としています。
テキスト・フィールドで式を構築する手順:
テキスト・フィールドを含むパネルを表示します。エディタに応じて、以下のいずれかを実行します。
まだ選択していない場合は、XQuery式エディタで、(ワークスペースのボタン・バーの下にある)「XQueryテキスト」を選択します。
まだ選択していない場合は、XQuery条件エディタで、(ワークスペースのボタン・バーの下にある)「テキスト」を選択します。
XPath式エディタでは、その他のツールを選択するオプションがないため、何も選択する必要はありません。
注意: 前述のいずれかのリンクを選択すると、コンテキストに応じた完全な式を作成できるテキスト・フィールドが表示されます。ただし、このトピックで説明されているツールと方法は、22.7項「外部XQueryリソースのインラインXQueryへのバインディング」および22.8項「外部XSLTリソースのインラインXQueryへのバインディング」で説明されているとおり、インポートされたリソースからインライン式への変数のバインディングなどのように、エディタにテキスト・フィールドが表示されている場合はいつでも使用できます。 |
必要に応じて、式または式の一部を、フィールドに入力または貼り付けます。この方法で完全な式が作成できた場合は、ステップ7に進みます。それ以外の場合は、次の手順に進みます。
次の表22-1の説明に従って、式に追加する項目を含むパレットを選択し、追加する項目を特定します。
表22-1 パレット
パレット | 説明および使用方法 |
---|---|
ネームスペース定義 |
デフォルトのOracle Service Busネームスペース、変数ネームスペース、およびユーザー定義のネームスペースを一覧表示します。定義されている場合は、ネームスペースの略語が一覧表示されます。 リストをスクロールして、目的のネームスペースを見つけ出します。 ネームスペースを定義することもできます。22.4項「インライン式で使用するネームスペースの作成」を参照してください。 |
XQuery関数 |
標準のXQuery関数と開発したカスタム関数がタイプ別にアルファベット順で含まれます。プラス記号(+)やマイナス記号(-)をクリックしてツリー内のノードを展開したり、折りたたみます。 関連項目:
|
変数の構造 |
変数とそれらのコンテンツがツリー形式で表示されるため、視覚的に確認できます。 変数の構造とそのコンテンツを表示するには
独自の変数の構造を定義することもできます。22.5項「XQueryエディタによる変数の構造の作成」を参照してください。 変数の構造では、変数は作成されません。変数は実行時に、ステージ内にある割当てアクションの対象として作成されます。 変数の構造のツリーから項目をテキスト・フィールドに挿入すると、パスを記述するXPath式として挿入されます。 10項「XQueryトランスフォーメーション」も参照してください。 |
次の表22-2に示されている方法のいずれかを使用して、目的の項目をテキスト・フィールドに貼り付けます。
表22-2 エディタのテキスト・フィールドに項目を貼り付ける方法
パレット | 操作 |
---|---|
「ネームスペース定義」パレット |
標準のマウスまたはキーボードでの、ネームスペースの選択、コピー、および貼付けを使用します。例:
|
「XQuery関数」 パレットまたは 「変数の構造」 パレット |
項目をパレットからテキスト・フィールドにドラッグします。 注意: パレットからワークスペースへのドラッグは、Internet Explorerでのみサポートされています。 |
「XQuery関数」 パレットまたは 「変数の構造」 パレット |
|
「XQuery関数」 パレットまたは 「変数の構造」 パレット |
|
引き続き、関数のドラッグ・アンド・コピーを行って、目的の式を構築します。
必要に応じて、テキスト・フィールドで式を編集します。
(オプション)以下のいずれか、または両方を実行します。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
式をテストするには、「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
「保存」をクリックして、エディタを閉じ、式をアクションに挿入します。
終了後
21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションの構成を続行します。
「ネームスペース定義」パレットには、デフォルトのネームスペースのリストが含まれています。新しいネームスペースを定義することもできます。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集していることを前提としています。
ネームスペースを作成してインライン式で使用するには
「ネームスペース定義」を選択します。「ネームスペース定義」パレットには、デフォルトのネームスペースのリストと、存在する場合は、変数ネームスペースおよびユーザー定義済みのネームスペースのリストが含まれています。
ユーザーのネームスペースを定義および追加するには
「ネームスペースの追加」をクリックします。
「接頭辞」フィールドに、ネームスペースの一意の識別子を入力します。同じ接頭辞を複数回使用することはできません。
「URI」フィールドに、このネームスペースのURLをhttp://url/.../
の形式で入力するか、またはURNをuddi:server:
の形式で入力します。
「追加」をクリックして、「ユーザー定義済みネームスペース」にネームスペースを追加します。
22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、ユーザー定義済みネームスペースをコピーして、XQuery式、XQuery条件、またはXPathに貼り付けます。
終了後
22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って続行します。
XQueryエディタおよびXPathエディタの「変数の構造」パレットには、変数のコンテンツがグラフィカルに表示されます。これには、デフォルトで、組込みのメッセージ・コンテキスト変数attachments
、body
、header
、outbound
、およびinbound
が含まれています。
変数の構造のマッピングでは、各エントリはラベルを持ち、変数または変数パスを1つまたは複数の構造にマップします。これらのマッピングのスコープは、ステージまたはルート・ノードです。
以下に基づいて、独自の変数の構造を宣言することもできます。
次のようなXMLタイプ
スキーマ要素
WSDL要素
スキーマ・タイプ
WSDLタイプ
MFL
サービス・インタフェース
単純な型(文字列または任意のXML)
この機能は、すべてのユーザー定義変数と$inbound
、$outbound
および$fault
に対して直接使用できます。ただし、この機能を使用して$attachments
のXML添付ファイル、$header
のヘッダーまたは$body
のドキュメントとRPCパラメータに直接アクセスすることはできません。例外として、WSDLプロキシ・サービスによって受信されたリクエスト・メッセージの$body
のドキュメントとパラメータには直接アクセスできます。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集していることを前提としています。
変数の構造を作成するには
「変数の構造」を選択します。
「変数の構造」パレットで「新しい構造の追加」をクリックします。
続けて、次の表22-3に示す作業のいずれかを行います。
表22-3 新しい変数の構造の作成
内容 | 手順 |
---|---|
変数をXMLスキーマの型にマップする変数の構造の作成 |
|
変数をWSDLの型にマップする変数の構造の作成 |
|
変数をXMLスキーマ要素にマップする変数の構造の作成 |
|
変数をWSDL要素にマップする変数の構造の作成 |
|
変数を子要素にマップする変数の構造の作成 |
|
MFLリソースを使用する変数の構造の作成 |
|
サービス・インタフェース変数の構造の作成 |
選択したサービスは、「WSDLベースのサービス」フィールドに表示されます。
|
単純な変数の構造の作成 |
|
終了後
22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って続行します。
カスタムXQuery関数の作成は、Javaコードの記述が必要な開発プロセスです。詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のカスタムXPath関数の作成と使用に関する項を参照してください。
XQueryリソースをインラインXQuery式にバインドして、アクションの一部としてインラインで実行できます。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集していることを前提としています。
XQueryリソースをインライン式にバインドするには
「変数の構造」をクリックします。
ワークスペース(ボタン・バーの下)で、「XQueryリソース」を選択します。
「1. 実行するXQueryリソースを選択します」ボックスで「参照」をクリックします。
XQueryブラウザで、使用するXQueryに関連付けられているラジオ・ボタンを選択し、「発行」をクリックします。
「2. 変数のバインド」ボックスで、トランスフォーメーション用の入力パラメータを定義します。「変数名」の下にリストされている各変数に対して、これにマッピングされるXQuery式を入力します。マッピングはパラメータごとに定義する必要があります。たとえば、XQueryトランスフォーメーションにoneおよびtwoという入力パラメータがある場合、「変数名」フィールドには、「one」および「two」という2つのラベルが表示されます。各ラベルに、XQuery式が入力されるテキスト・ボックスが1つ表示されます。
次のXQuery式は、このフィールドの有効な入力例です。
$body/*[1] $body/po:PurchaseOrder
注意: body という変数名はこのフィールドでは無効な入力となり、例外が発生します。 |
完了した後は、次のいずれかの操作に進みます。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
変更を保存するか、または破棄します。
XQuery式エディタ・ページでは、実行用XSLTリソースを選択できます。このエディタの詳細は、22.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
実行用XSLTリソースを選択するには
「XSLTリソース」オプションを選択します。
「実行するXSLTリソースを選択します」フィールドで「XSLTブラウザ」アイコンを選択します。
XSLTブラウザで、実行するXSLTに関連付けられているラジオ・ボタンを選択し、「発行」をクリックします。
「変数のバインド」フィールドの下に、ラベルとそれに対応するテキスト・ボックスがトランスフォーメーションの入力パラメータごとに表示されます。各ラベルはパラメータ名に相当し、各テキスト・ボックスはそのパラメータにマッピングされるXQuery式を定義するためのものです。マッピングはパラメータごとに定義する必要があります。たとえば、XSLトランスフォーメーションにoneおよびtwoという入力パラメータがある場合、「変数マッピング」フィールドには、「one」および「two」というラベルと、ラベルごとにXQuery式を入力するテキスト・ボックスが表示されます。入力変数のマッピングの他に、トランスフォーメーションの入力ドキュメントのXQuery式を指定する必要もあります。このマッピングは、「入力ドキュメント」というラベルが付いたテキスト・ボックスで指定します。
次のXQuery式は、このフィールドの有効な入力例です。
$body/*[1] $body/po:PurchaseOrder
注意: body という変数名はこのフィールドでは無効な入力となり、例外が発生します。 |
以下の任意の作業を続行します。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
XQuery式エディタ・ページでは、あらかじめ登録したXQueryリソースの名前を実行時に評価する動的XQuery式を指定できます。このエディタの詳細は、22.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
動的XQuery式を定義するには
「動的XQuery」オプションを選択します。
「XQueryリソースの式を入力」領域に、あらかじめ登録したXQueryリソースの名前に実行時に評価するXQuery式を入力します。
XQueryリソース(リソースの完全な名前を表す)の構文は次のとおりです。
Project/folder1/folder2/XQueryResourceName
「XQueryテンプレートまたはカスタム変数を使用して変数をバインドします」領域に、トランスフォーメーションの入力パラメータを定義します。
「XQueryテンプレートの選択」フィールドの「参照」をクリックして、問合せ形式(変数の数と名前)のテンプレートとして使用する既存の登録済みのリソースを選択します。テンプレートを選択すると、「変数のバインド」領域に変数が表示されます。テンプレートは構成に保持されることはありません。かわりに、テンプレートは問合せの変数を指定するためにクイック・スタートとして機能します。
「カスタム変数の追加」フィールドに変数名を入力し、「追加」をクリックします。「変数名」の下にリストされている各変数に対して、これにマッピングされるXQuery式を入力します。マッピングはパラメータごとに定義する必要があります。たとえば、XQueryトランスフォーメーションにoneおよびtwoという入力パラメータがある場合、「変数名」フィールドには、「one」および「two」という2つのラベルが表示されます。各ラベルに、XQuery式が入力されるテキスト・ボックスが1つ表示されます。
次のXQuery式は、変数フィールドの有効な入力例です。
$body/*[1] $body/po:PurchaseOrder
完了した後は、次のいずれかの操作に進みます。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
変更を保存するか、または破棄します。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery条件エディタでXQuery条件式を作成または編集していることを前提としています。
XQuery比較式を入力する手順:
まだ選択していない場合は、XQuery条件エディタで、(ワークスペースのボタン・バーの下にある)「ビルダー」を選択します。
まだ選択していない場合は、「式ビルダー」ボックスで、「比較式」を選択します。
「オペランド」フィールドに、コンテキスト変数、ネームスペース定義、またはXQuery関数を入力します。
オペランドを構築する場合、「XQuery関数」パレットからXQuery関数を、「ネームスペース定義」パレットからネームスペースを貼り付けることができます。22.3項「エディタ・ワークスペースのテキスト・フィールドでの式の構築」のを参照してください。
「演算子」リストから、比較演算子を選択します。
「値」フィールドに、テキストまたはコンテキスト変数を入力します。
テキストは引用符で囲む必要があります。たとえば、"true"
は有効ですが、true
は無効です。
「追加」をクリックします。入力したテキストが「式」ペインに表示されます。
追加の条件を構築する際は、ステップ3 - 6を繰り返します。各条件は、条件リストの最後に追加されます。
複数の条件を使用する場合は、以下の点を考慮してください。
追加の式を作成する場合は、「組合せ」フィールドで必ず「AND」または「OR」オプションを選択してください。
条件を選択し、上矢印および下矢印をクリックして、条件のリスト内を上下に移動できます。「編集」アイコンをクリックして条件を更新したり、「削除」アイコンをクリックして条件を削除したりすることもできます。
条件の全体定義では、単項式と比較式を混ぜることもできます。
(オプション)以下のいずれか、または両方を実行します。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
式をテストするには、「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
「保存」をクリックして、エディタを閉じ、式をアクションに挿入します。
終了後
21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションの構成を続行します。
始める前に
次の手順は、22.1項「インラインXQueryおよびXPath式の作成と編集」の説明に従って、XQuery条件エディタでXQuery条件式を作成または編集していることを前提としています。
XQuery比較式を入力する手順:
まだ選択していない場合は、XQuery条件エディタで、(ワークスペースのボタン・バーの下にある)「ビルダー」を選択します。
まだ選択していない場合は、「式ビルダー」ボックスで、「単項式」を選択します。
「NOT」チェックボックスを選択してこの式を否定の式にするか、または空白のままにします。
「式」フィールドに、コンテキスト変数、ネームスペースの定義、またはXQuery関数を入力します。
式を構築する場合、「XQuery関数」パレットからXQuery関数を、「ネームスペース定義」パレットからネームスペースを貼り付けることができます。22.3項「エディタ・ワークスペースのテキスト・フィールドでの式の構築」のを参照してください。
「追加」をクリックして、「式」ペインにテキストを追加します。
追加の条件を構築する際は、ステップ3 - 5を繰り返します。各条件は、条件リストの最後に追加されます。
単項式を構築する際は、以下の点を考慮してください。
追加の式を作成する場合は、「組合せ」フィールドで必ず「AND」または「OR」オプションを選択してください。
条件を選択し、上矢印および下矢印をクリックして、条件のリスト内を上下に移動できます。「編集」アイコンをクリックして条件を更新したり、「削除」アイコンをクリックして条件を削除したりすることもできます。
条件の全体定義では、単項式と比較式を混ぜることもできます。
(オプション)以下のいずれか、または両方を実行します。
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
式をテストするには、「テスト」をクリックします。32.3項「XQueryテストの実行」を参照してください。
「保存」をクリックして、エディタを閉じ、式をアクションに挿入します。
終了後
21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションの構成を続行します。