15 Oracle Service Busコンソールでの式エディタの操作
この章では、パイプラインまたはメッセージ・フローでXQueryおよびXPath式を使用する方法について説明します。
パイプラインでは、メッセージ・コンテキスト変数へのXQuery式の割当て、XQuery式のブール結果に基づくif-thenアクションの割当て、XPath式に対して相対的に指定した位置へのXQuery式の結果の挿入、コンテキスト変数のXQuery式を使用したログ用のメッセージ・コンテキストの指定などを実行できます。
コンテキストで必要な式を作成するために、メッセージ・フローの該当するコンテキストで、「XQuery式エディタ」、「XQuery条件エディタ」、「XPath式エディタ」を使用できます。
この章の構成は、次のとおりです。
15.1 インラインXQueryおよびXPath式の作成と編集
「ステージ構成の編集」ページでステージまたはルート・ノードにアクションを追加する場合、構成の詳細を入力するページにスケルトン構造が表示されます。
図15-1に例を示します。
コンテキスト上適切である場合は、XQueryエディタへアクセスするためのリンクがスケルトンによって用意されます。アクションのコンテキスト上必要である場合、インラインで実行される式をこのエディタで作成できます。
次の説明では、パイプライン・ステージ、エラー・ハンドラ・ステージ、またはルート・ノードの「ステージ構成の編集」ページでアクションの作成または編集を行うものとします。「コンソールでのパイプラインの表示と編集」および「コンソールでのパイプライン・アクションの追加と編集」を参照してください。
インライン式を作成または変更するには:
15.2 XQueryエディタのレイアウトとタスクについて
XQuery式エディタ、XQuery条件エディタ、およびXPath式エディタは、それぞれパレット、ワークスペースおよびプロパティ・インスペクタから構成されています。
詳細は、次のリンクに従ってください。
15.2.1 パレット
各エディタの左側のパネルには、次に示すパレットがあります。エディタでパレットの名前をクリックすると、そのパレットが表示されます。各パレットには、エディタ内で式に挿入できるエンティティが含まれています。
-
「ネームスペース定義」パレットには、Service Busのデフォルト・ネームスペース、変数のネームスペースおよびユーザー定義ネームスペースが表示されます。新しいネーム・スペースを定義することもできます。定義されたネーム・スペースはユーザー定義ネーム・スペースのリストに追加されます。
詳細は、次を参照してください。
-
「XQuery関数」パレットには、一連の標準XQuery関数が表示されます。式に関数を挿入するときには、入力する必要があるパラメータ値ついてプレースホルダーが使用されます。
詳細は、次を参照してください。
-
「変数の構造」パレットには、XPath式を使用して、変数や変数のパスを挿入するためのツールが用意されています。
変数の構造は、エディタに表示される変数または変数のパスのグラフィカルな表現です。変数の構造が視覚化されることにより、変数の内容を参照するインラインXQuery式の構築が容易になります。
ノート:
変数の構造では、変数は作成されません。変数は、ステージでの割当てアクションの対象として実行時に作成されます。
Service Busには事前定義されたメッセージ・コンテキスト変数(
attachments
、body
、header
、outbound
およびinbound
)があり、その内容を変数の構造として表示できます。ユーザーが独自に変数の構造を定義することもできます。詳細は、次の章を参照してください。
15.2.3 プロパティ・インスペクタ
プロパティ・インスペクタは、3種類のエディタのすべてで、ページの右下に表示されます。パレットの1つからアイテムを式に追加するために選択すると、選択したアイテムがプロパティ・インスペクタに表示されます。表示されたアイテムは、ワークスペースに貼り付けることができます。エディタ・ワークスペースのテキスト・フィールドでの式の構築を参照してください。
15.3 エディタ・ワークスペースのテキスト・フィールドでの式の構築
XQuery式エディタ、XQuery条件エディタ、およびXPath式エディタのすべてにテキスト・フィールドがあり、このフィールドに直接入力するか、または、パレットから貼り付けることで、式を構築できます。
この説明では、インラインXQueryおよびXPath式の作成と編集で説明したように、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集しているものと仮定します。
テキスト・フィールドで式を構築するには:
-
テキスト・フィールドを含むパネルを表示します。エディタに応じて、次のいずれかを実行します。
-
まだ選択していない場合は、XQuery式エディタで、(ワークスペースのボタン・バーの下にある)「XQueryテキスト」を選択します。
-
まだ選択していない場合は、XQuery条件エディタで、(ワークスペースのボタン・バーの下にある)「テキスト」を選択します。
-
XPath式エディタでは、その他のツールを選択するオプションがないため、何も選択する必要はありません。
ノート:
前述のいずれかのリンクを選択すると、コンテキストに応じた完全な式を作成できるテキスト・フィールドが表示されます。ただし、このトピックで説明されているツールと方法は、外部XQueryリソースのインラインXQueryへのバインドおよび外部XSLTリソースのインラインXQueryへのバインドで説明されているとおり、インポートされたリソースからインライン式への変数のバインドなどのように、エディタにテキスト・フィールドが表示されている場合はいつでも使用できます。
-
-
必要に応じて、式または式の一部を、フィールドに入力または貼り付けます。この方法で完全な式が作成できた場合は、ステップ7に進みます。それ以外の場合は、次のステップに進みます。
-
次の表15-1の説明に従って、式に追加する項目を含むパレットを選択し、追加する項目を特定します。
表15-1 パレット
パレット 説明および使用方法 ネームスペース定義
デフォルトのService Busネームスペース、変数ネームスペースおよびユーザー定義のネームスペースを一覧表示します。定義されている場合は、ネームスペースの略語が一覧表示されます。
リストをスクロールして、目的のネームスペースを見つけ出します。
ネームスペースを定義することもできます。インライン式で使用するためのネームスペースの作成を参照してください。
XQuery関数
標準のXQuery関数と開発したカスタム関数がタイプ別にアルファベット順で含まれます。ツリー内のノードを展開するにはプラス記号(+)を、折りたたむにはマイナス記号(-)をクリックします。
関連項目:
変数の構造
変数とそれらのコンテンツがツリー形式で表示されるため、視覚的に確認できます。
変数の構造とそのコンテンツを表示できます。
-
パレットの上部にあるリストから構造の名前を選択します。リストには、組込みメッセージ・コンテキスト変数(
attachments
、body
、header
、outbound
、inbound
)と、型ごと(「XMLタイプ」、「サービス・インタフェース」、「単純な型」)に整理されたユーザー定義の構造が一覧表示されます。 -
ツリー内のノードを展開するにはプラス記号(+)を、折りたたむにはマイナス記号(-)をクリックします。
ユーザーが独自に変数の構造を定義することもできます。XQueryエディタによる変数の構造の作成を参照してください。
変数の構造では、変数は作成されません。変数は、ステージでの割当てアクションの対象として実行時に作成されます。
変数の構造のツリーから項目をテキスト・フィールドに挿入すると、パスを記述するXPath式として挿入されます。
「XQueryでのデータ変換」も参照してください。
-
-
次の表15-2に示されている方法のいずれかを使用して、目的の項目をテキスト・フィールドに貼り付けます。
表15-2 エディタのテキスト・フィールドに項目を貼り付ける方法
パレット 操作 「ネームスペース定義」パレット
標準のマウスまたはキーボードでの、ネームスペースの選択、コピー、および貼付けを使用します。例:
-
文字列上でマウス・ポインタをドラッグして、ネームスペースの文字列全体(または、存在する場合は、その略語)を選択します。
-
[Ctrl]+[C]を押して、文字列をコピーします。
-
テキスト・フィールドの、ネームスペースを挿入する場所をクリックします。
-
[Ctrl]+[V]を押して、文字列を貼り付けます。
「XQuery関数」 パレットまたは 「変数の構造」 パレット
項目をパレットからテキスト・フィールドにドラッグします。
ノート: パレットからワークスペースへのドラッグは、Internet Explorerでのみサポートされています。
「XQuery関数」 パレットまたは 「変数の構造」 パレット
-
パレットの項目をクリックします。「プロパティ・インスペクタ」ペインに項目が表示されます。
関数は、提供する必要がある値のプレースホルダーと共に表示されます。
変数とそれらの属性は、XPath式として表示されます。
-
テキスト・フィールドの、項目を挿入する場所をクリックします。
-
「プロパティのコピー」をクリックして、テキスト・フィールド内の選択した場所に項目を貼り付けます。
「XQuery関数」 パレットまたは 「変数の構造」 パレット
-
パレットの項目をクリックします。「プロパティ・インスペクタ」ペインに項目が表示されます。
-
標準のキーボードまたはマウスのアクションを使用して、プロパティ・インスペクタで項目を選択およびコピーします。
-
標準のキーボードまたはマウスのアクションを使用して、テキスト・フィールド内の場所を選択して、項目をテキスト・フィールドに貼り付けます。
-
-
引き続き、関数のドラッグ・アンド・コピーを行って、目的の式を構築します。
-
必要に応じて、テキスト・フィールドで式を編集します。
-
(オプション)次のいずれか、または両方を実行します。
-
「検証」をクリックします。式の検証が成功した場合は、メッセージが表示されます。
-
式をテストするには、「テスト」をクリックします。「XQueryトランスフォーメーションのテストの前提条件とガイドライン」を参照してください。
-
-
「保存」をクリックして、エディタを閉じ、式をアクションに挿入します。
15.4 インライン式で使用するネームスペースの作成
「ネームスペース定義」パレットには、デフォルトのネームスペースのリストが含まれています。新しいネームスペースを定義することもできます。
この説明では、インラインXQueryおよびXPath式の作成と編集で説明したように、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集しているものと仮定します。
ネームスペースを作成してインライン式で使用するには:
-
「ネームスペース定義」を選択します。「ネームスペース定義」パレットには、デフォルトのネームスペースのリストと、存在する場合は、変数ネームスペースおよびユーザー定義済のネームスペースのリストが含まれています。
-
ユーザーのネームスペースを定義および追加するには
-
「ネームスペースの追加」をクリックします。
-
「接頭辞」フィールドに、ネームスペースの一意の識別子を入力します。同じ接頭辞を複数回使用することはできません。
-
「URI」フィールドに、このネームスペースのURLを
http://url/.../
の形式で入力するか、またはURNをuddi:server:
の形式で入力します。 -
「追加」をクリックして、「ユーザー定義済みネームスペース」にネームスペースを追加します。
-
インラインXQueryおよびXPath式の作成と編集の説明に従って、ユーザー定義済ネームスペースをコピーして、XQuery式、XQuery条件またはXPathに貼り付けます。
-
インラインXQueryおよびXPath式の作成と編集の説明に従って、続行します。
15.5 XQueryエディタによる変数の構造の作成
XQueryエディタおよびXPathエディタの「変数の構造」パレットには、変数のコンテンツがグラフィカルに表示されます。
これには、デフォルトで、組込みのメッセージ・コンテキスト変数attachments
、body
、header
、outbound
、およびinbound
が含まれています。
変数の構造のマッピングでは、各エントリはラベルを持ち、変数または変数パスを1つまたは複数の構造にマップします。これらのマッピングのスコープは、ステージまたはルート・ノードです。
次に基づいて、独自の変数の構造を宣言することもできます。
-
次のようなXMLタイプ
-
スキーマ要素
-
WSDL要素
-
スキーマ・タイプ
-
WSDLタイプ
-
MFL
-
-
サービス・インタフェース
-
単純な型(文字列または任意のXML)
この機能は、すべてのユーザー定義変数と$inbound
、$outbound
および$fault
に対して直接使用できます。ただし、この機能を使用して$attachments
のXML添付、$header
のヘッダーまたは$body
のドキュメントとRPCパラメータに直接アクセスすることはできません。例外として、WSDLプロキシ・サービスによって受信されたリクエスト・メッセージの$body
のドキュメントとパラメータには直接アクセスできます。
この説明では、インラインXQueryおよびXPath式の作成と編集で説明したように、XQuery式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集しているものと仮定します。
変数の構造を作成するには:
-
「変数の構造」を選択します。
-
「変数の構造」パレットで「新しい構造の追加」をクリックします。
-
続けて、次の表15-3に示す作業のいずれかを行います。
表15-3 新しい変数の構造の作成
目的 | 次のステップを実行... |
---|---|
変数をXMLスキーマの型にマップする変数の構造の作成 |
|
変数をWSDLの型にマップする変数の構造の作成 |
|
変数をXMLスキーマ要素にマップする変数の構造の作成 |
|
変数をWSDL要素にマップする変数の構造の作成 |
|
変数を子要素にマップする変数の構造の作成 |
|
MFLリソースを使用する変数の構造の作成 |
|
サービス・インタフェース変数の構造の作成 |
選択したサービスは、「WSDLベースのサービス」フィールドに表示されます。
|
単純な変数の構造の作成 |
|
終了後:
インラインXQueryおよびXPath式の作成と編集の説明に従って、続行します。
15.6 XQueryエディタでのカスタムXPath関数の作成
カスタムXQuery関数の作成は、Javaコードの記述が必要な開発プロセスです。
詳細は、「カスタムXPath関数の作成」を参照してください。
15.7 外部XQueryリソースのインラインXQueryへのバインディング
XQueryリソースをインラインXQuery式にバインドして、アクションの一部としてインラインで実行できます。
この説明では、インラインXQueryおよびXPath式の作成と編集で説明したように、XQuery/XSLT式エディタ、XQuery条件エディタまたはXPath式エディタで式を作成または編集しているものと仮定します。
XQueryリソースをインライン式にバインドするには:
15.8 外部XSLTリソースのインラインXQueryへのバインディング
「XQuery/XSLT式エディタ」ページでは、実行用XSLTリソースを選択できます。
このエディタについてさらに学習するには、インラインXQueryおよびXPath式の作成と編集を参照してください。
実行用XSLTリソースを選択するには
15.9 動的XQuery式のインラインXQueryへのバインディング
「XQuery/XSLT式エディタ」ページでは、あらかじめ登録したXQueryリソースの名前を実行時に評価する動的XQuery式を指定できます。
このエディタについてさらに学習するには、インラインXQueryおよびXPath式の作成と編集を参照してください。
動的XQuery式を定義するには
15.10 動的XSLT式のインラインXQueryへのバインディング
「XQuery/XSLT式エディタ」ページでは、あらかじめ登録したXSLTリソースの名前を実行時に評価する動的XPath/XQuery式を指定できます。
このエディタについてさらに学習するには、インラインXQueryおよびXPath式の作成と編集を参照してください。
動的XSLT式を定義するには
15.11 「ビルダー」オプションを使用したXQuery比較式の入力
XQuery条件エディタで比較式を作成できます。
次の手順は、インラインXQueryおよびXPath式の作成と編集の説明に従って、XQuery条件エディタでXQuery条件式を作成または編集していることを前提としています。
XQuery比較式を入力するには:
「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションの構成を続行します。
15.12 「ビルダー」オプションを使用した単項式の入力
XQuery条件エディタを使用して、単項式を作成できます。
次の手順は、インラインXQueryおよびXPath式の作成と編集の説明に従って、XQuery条件エディタでXQuery条件式を作成または編集していることを前提としています。
XQuery比較式を入力するには: