Virtualize では、データ ソースに階層的なデータ構造をマッピングすることも可能です。
たとえば、Bookstore サービスの一部として、検索操作のメッセージ レスポンダーを作成していると仮定します。検索結果として返ってくる本は複雑な XML 構造を持っていて、返ってくる結果の数もさまざまです (検索条件によって異なります)。対応するには、動的な階層レスポンスの構築に使用できる「配列データ ソース」が必要です。
データ ソースの設定
次の手順でデータ ソースを設定します。
- Excel スプレッドシートでシートを 3 つ (それぞれ keywords シート、 books シート、 authors シート) 作成します。
- keywords シートに次のように書き込みます。
books dsref* 列に注目してください。これは、本のキーワードが books シートから参照されるということを示す方法です (dsref* とは Data Source REFerence を表します)。 - books シートに書き込みます。
ここでも authors dsref* 列に注目してください。また、ParentIndex 列にも注目してください。 ParentIndex 列の値は、本にひも付いているキーワードを表します。 たとえば、このシートにリストされている Java の本は両方とも Java キーワードがひも付いています。 - authors シートに書き込みます。
ここでも ParentIndex 列に注目してください。Harvey M. Deitel および Paul J. Deitel は両方とも同じ ParentIndex 値を持っています。なぜなら彼らは「How to Program in Java (4th Edition)」の共同著者であるからです。 David Flanagan は彼が書いた本、「Java in a Nutshell, Fourth Edition」にひも付いています。
フォーム入力のパラメータライズ
次に、これらの応答条件を XML で使用する方法を探ってみましょう。 author コンポーネントのレスポンスを指定するには、次のようにフォーム入力をパラメータライズします。
- ArrayDataSource.pva という名前で新しい .pva を作成します。
- Excel データ ソースを追加して、前の手順で作成した Excel スプレッド シートを指定します。[シート] で keywords を選択します。
- 新しいレスポンダー スイートを作成します。
- メッセージ レスポンダーの [WSDL URL] に次の URL を設定します。 http://soatest.parasoft.com/store-01.wsdl
- [フォーム入力] を次のように設定します。
- author 要素で [Nill] をオフにし、[編集] をクリックします。
- [固定] を選択し、[挿入] をクリックしてから [変更] をクリックします。
- [パラメータライズ] を選択し、books:authors:author を選択します。
使用したい動的階層レスポンスを構築するために、この方法でレスポンスを設定します。