Web サービスラッパー

Virtual DataPort は SOAP Web サービスのラッパーの作成をサポートしています。ラッパーは、(Web サービスデータソースを作成するときに指定される) Web サービスの WSDL に含まれるデータを介して、基本ビューとしてモデル化される特定の操作を選択し、操作を実行するために必要なさまざまなパラメーターをどのように設定するか、およびどの出力データを使用してラッパーの結果を構成するかを定義します。

CREATE WRAPPER WS ステートメントの構文
CREATE [ OR REPLACE ] WRAPPER WS <name:identifier>
    [ FOLDER = <literal> ]
    DATASOURCENAME = <name:identifier>
    SERVICENAME = <literal>
    PORTNAME = <literal>
    OPERATIONNAME = <literal>
    [ INPUTMESSAGE = <literal> OUTPUTMESSAGE = <literal> ]
    [ TUPLEROOT = <literal> ]
    [ FROMEXAMPLE ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
                            [, <source configuration property> ]* ] ) ]

<field> ::=
       <name:identifier> = <mapping:literal> [ VALUE <literal> ]
          [ ( { OBL | OPT } ) ]
          [ ( DEFAULTVALUE <literal> ) ]
          [ EXTERN ]
          [ <inline constraints> ]*
     | <name:identifier> = <mapping:literal> : ARRAY OF ( <register field> )
          [ ( DEFAULTVALUE <literal> ) ]
          [ <inline constraints> ]*
     | <name:register field>

<register field> ::=
    <name:identifier> = <mapping:literal> :
       REGISTER OF ( [ <field> [, <field> ]* ] )
          [ ( DEFAULTVALUE <literal> ) ]
          [ <inline constraints> ]*
<inline constraint> ::=
     [ NOT ] NULL
   | [ NOT ] UPDATEABLE
   | { SORTABLE [ ASC | DESC ] | NOT SORTABLE }

<source configuration property> ::=
      DATAINORDERFIELDSLIST = { DEFAULT | ( <name:identifier> { ASC | DESC }
                                      [, <name:identifier> { ASC | DESC } ]* ) }
    | DELEGATEOPERATORSLIST = { DEFAULT | ( <operator:identifier>
                                        [, <operator:identifier> ]* ) }

Web サービスラッパーの変更構文も同様です (「 ALTER WRAPPER WS ステートメントの構文 」を参照)。

ALTER WRAPPER WS ステートメントの構文
ALTER WRAPPER WS <name:identifier>
    [ DATASOURCENAME = <name:identifier> ]
    [ SERVICENAME = <name:literal> ]
    [ PORTNAME = <name:literal> ]
    [ OPERATIONNAME = <operation:literal> ]
    [ INPUTMESSAGE = <input:literal> OUTPUTMESSAGE = <output:literal> ]
    [ TUPLEROOT = <literal> ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
    [, <source configuration property> ]* ] ) ]

<field> ::= (「 CREATE WRAPPER WS ステートメントの構文 」を参照)

<source configuration property> ::= (「 CREATE WRAPPER WS ステートメントの構文 」を参照)

  • DATASOURCENAME: ラッパーによって使用されるデータソースの名前。

    ラッパーを作成する際に、Virtual DataPort サーバーは Web サービスの WSDL を取得します。データソースによって指定された WSDL が見つからない場合、サーバーはラッパーを作成しますが不完全として指定し、ラッパーへのクエリは失敗します。このラッパーに対してクエリを実行し、サーバーが WSDL を取得できると、ラッパーは完全として指定され、「クエリ可能」になります。

  • SERVICENAME: 操作が呼び出される Web サービスの名前。WSDL ファイルにはさまざまな Web サービスの定義を含めることができます。

  • PORTNAME: 特定の操作を含むポートの名前。

  • OPERATIONNAME: 操作の名前。同じ名前で複数の異なる操作が存在する場合があります。これらは、それぞれが許可する入力/出力メッセージで区別されます。以下のパラメーターで指定されます。

  • INPUTMESSAGE: モデル化する検索メソッドの操作の入力パラメーターを定義するメッセージ名 (オプション)。

  • TUPLEROOT: 指定されている場合は、ラッパーが Web サービス操作によって返されたデータを変換するために「指定されたレベルのストリーム出力」アプローチを使用することを意味します。このオプションの仕組みの詳細については、管理ガイドの「 XML ソース 」を参照してください。

  • OUTPUTMESSAGE: 呼び出される検索メソッドの操作の出力パラメーターを定義するメッセージ名 (オプション)。

選択した操作のメッセージの属性によって、Web サービスラッパーのスキーマが定義されます。つまり、Web サービスラッパーは、WSDL ファイルで定義された名前が付けられた入力属性、出力属性、入出力属性をスキーマとして保持します。

注釈

操作では、入力メッセージで複合パラメーターも使用できます。これらのパラメーターは、出力メッセージの複合パラメーターと同じ方法で、Virtual DataPort 複合型 (「 複合値の管理 」を参照) に変換されます。複合値コンストラクターの ROW{ } を使用することによって、これらのパラメーターに条件を指定できます (「 複合値を使用した条件 」を参照)。

ラッパーは、受け取った条件のリストから、Web サービスを呼び出して要求する結果を取得するために、必要なパラメーターを作成します。

他のラッパーと同様に、外部属性と Web サービスのパラメーターのアソシエーションとともに、ラッパーの出力スキーマ (OUTPUTSCHEMA) を明示的に指定できます。 OUTPUTSCHEMA のフィールドの name 属性は、ラッパーがエレメントをエクスポートする際に付けられる名前です。mapping 属性は、Web サービスによって使用される名前を示します。作成されたマッピング内で Web サービスの異なるエレメントを参照するために、以下の表記法が使用されます。

  • $<parameterNumber> -> Web サービス操作の指定された位置にあるパラメーターを参照します。

  • $$ -> Web サービス操作の呼び出しを通じて返された出力パラメーターを参照します。

これは、第 1 レベルのエレメント (入力および出力パラメーターと Web サービスの出力) に対して使用される表記法です。その他のエレメント (結果のオブジェクトまたは Web サービスパラメーターのフィールド) の場合は、該当するオブジェクト内のプロパティの名前からマッピングが取得されます。

ラッパー 作成ステートメントには OR REPLACE 修飾子を指定することができます。指定されると、同じ名前のラッパーがすでに存在する場合に、その定義は新しい定義で置き換えられます。

最後に、特定のラッパープロパティを指定できます (SOURCECONFIGURATION)。Virtual DataPort は、ラッパーで実行できる操作を判別するためにこれらを考慮します。適用可能なプロパティは該当するステートメント宣言に示されています (「 CREATE WRAPPER WS ステートメントの構文 」)。詳細については、「 ラッパー構成プロパティ 」を参照してください。