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