このセクションでは XML Transformer ツールの構成および適用の方法について説明します。このツールは XML を変換するために XSLT のような機能を提供します。
このセクションの内容:
多くの場合、SOAP メッセージには大きな XML ペイロードが含まれます。ペイロードのごく一部にだけ着目し、レスポンスまたはリクエストの少数の要素だけを使用して回帰コントロールを作成したい場合もあるでしょう。しかし、他の要素を一つずつ無視するのは非常にめんどうな可能性があります。このような場合、XML Transformer ツールを使用すると効率的です。
XML Transformer ツールは XML を変換するために XSLT のような機能を提供します。このツールは、SOAP レスポンスまたはリクエストの少数の要素だけを使って回帰コントロールを作成したい場合に非常に便利です。
XML Transformer を構成するには、次の操作を行います。
以下のオプションを設定できます:
このオプションがオンの場合、コンテンツは整形式の XML で出力されます。たとえば、以下の例の XML エンコードされた値は、
<foo
次のように出力されます:
<root> <ElementName><foo></ElementName> </root>
抽出または変更した XPath 値を使用して回帰コントロールを追加できます。XML Transformer を含む SOAP Client ノードを右クリックし、ショートカット メニューの [回帰コントロールの作成] をクリックします。 XML Transformer ノードの下に [変換された XML] > [Diff] ノードが表示されます。このノードを選択すると、XML Transformer ツールで [Selected XPaths] リストに選択した XPath が表示されます。
XPath が テストの 変数、環境変数、およびデータ ソース値を参照するようにパラメータライズできます。 変数を参照するための構文は、${myVariableName} です。 XML Data Bank の値と XML Data Source の値を参照する構文は ${myColumnName} です。${myColumnName}.
たとえば、データ ソース列名が ${XPath Key} の場合、次の構文を使用できます。
/*[local-name(.)="bookstore" and namespace-uri(.)=""]/*[local-name(.)="book" and
namespace-uri(.)=""][child::node()[local-name(.)="title" and text()="${XPath Key}"]]
デフォルトでは空要素は抽出されません。 したがって、書き込み可能なデータ ソースで使用する XML レスポンスの完全性に影響をあたえる可能性があります。たとえば、
<e>5</e> <e/> <e>6</e> |
ROW 1 = 5 ROW 2 = 6 |
関連する XPath の最後にある /text() を削除します。たとえば、現在の XPath が以下の場合、
/*[local-name(.)="Envelope" and namespace-uri(.)="http://schemas.xmlsoap.org/soap/envelope/"]/.../*[local-name(.)="i" and namespace-uri(.)=""][1]/text() |
次のように修正します。
/*[local-name(.)="Envelope" and namespace-uri(.)="http://schemas.xmlsoap.org/soap/envelope/"]/.../*[local-name(.)="i" and namespace-uri(.)=""][1] |