このセクションでは XML Transformer ツールの構成および適用の方法について説明します。このツールは XML を変換するために XSLT のような機能を提供します。
このセクションの内容:


XML Transformer ツールとは

多くの場合、SOAP メッセージには大きな XML ペイロードが含まれます。ペイロードのごく一部にだけ着目し、レスポンスまたはリクエストの少数の要素だけを使用して回帰コントロールを作成したい場合もあるでしょう。しかし、他の要素を一つずつ無視するのは非常にめんどうな可能性があります。このような場合、XML Transformer ツールを使用すると効率的です。

XML Transformer ツールは XML を変換するために XSLT のような機能を提供します。このツールは、SOAP レスポンスまたはリクエストの少数の要素だけを使って回帰コントロールを作成したい場合に非常に便利です。

XML Transformer ツールの構成

XML Transformer を構成するには、次の操作を行います。

  1. メインのテスト スイート ノードを選択して [テストまたは出力の追加...] ボタンをクリックします。
  2. [テストの追加] ウィザードで [標準テスト] > [XML Transformer] を選択し、[終了] ボタンをクリックします。テスト スイートに [XML Transformer] ノードが表示されます。
  3. [XML Transformer] ノードをダブルクリックします。

以下のオプションを設定できます:


回帰コントロールの追加

抽出または変更した XPath 値を使用して回帰コントロールを追加できます。XML Transformer を含む SOAP Client ノードを右クリックし、ショートカット メニューの [回帰コントロールの作成] をクリックします。  XML Transformer ノードの下に [変換された XML] > [Diff] ノードが表示されます。このノードを選択すると、XML Transformer ツールで [Selected XPaths] リストに選択した XPath が表示されます。

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 レスポンスの完全性を維持

デフォルトでは空要素は抽出されません。  したがって、書き込み可能なデータ ソースで使用する XML レスポンスの完全性に影響をあたえる可能性があります。たとえば、

<e>5</e>
<e/>
<e>6</e>
は、次のような書き込み可能データ ソースを作成します。


ROW 1 = 5
ROW 2 = 6
空要素を含む、すべての抽出されるノードが欲しい場合は、次の操作を行います。
  1. [空要素の抽出方法] をオンにします。
  2. (任意) すべての空の抽出された要素に追加するプレースホルダー値が欲しい場合、任意のプレースホルダー文字列を隣のテキスト フィールドに指定します。


     
  3. 抽出対象を指定する XPath を選択し、 [修正] をクリックします。
  4. 抽出オプションが [内容のみ] であることを確認します。
  5. 関連する 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]




  6. 必要に応じて追加の XPath にステップ 3-5 を繰り返します。