USER MANUALS

XML ラッパー

Virtual DataPort は XML データソースからのラッパーの作成をサポートしています。 以下 の XML ラッパーを作成するための構文を参照してください。

CREATE WRAPPER XML ステートメントの構文
CREATE [ OR REPLACE ] WRAPPER XML <name:identifier>
    [ FOLDER = <literal> ]
    DATASOURCENAME = <name:identifier>
    [ TUPLEROOT <XML node or path:literal> ]
    [ ROUTE <route> [ <route_filters> ] ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
                            [, <source configuration property> ]* ] ) ]

<route> ::=
      HTTP <connection class name:literal> { GET | POST } <uri:literal>
          [ POSTBODY <body:literal> [ MIME <mimetype:literal> ] ]
          [ HEADERS (
                 <header name:literal> = <header value:literal>
              [, <header name:literal> = <header value:literal> ]*
            )
          ]
          [ PAGINATION_SETTINGS ( <pagination settings> ) ]
          [ CHARSET = <encoding:literal> ]

<pagination settings> ::=
      PAGE_SIZE_PARAMETER = <literal>
      PAGE_SIZE = <integer>
      PAGE_NUMBER_PARAMETER = <literal>
      FIRST_PAGE_INDEX = <integer>
      OFFSET_FOR_NEXT_REQUESTS = <integer>
      MAX_NUMBER_OF_REQUESTS = <integer>
    |
      PAGE_SIZE_PARAMETER = <literal>
      PAGE_SIZE = <integer>
      NEXT_TOKEN_PARAMETER = <literal>
      NEXT_TOKEN_PATH = <literal>
      [ MAX_NUMBER_OF_REQUESTS = <integer> ]
    |
      PAGE_SIZE_PARAMETER = <literal>
      PAGE_SIZE = <integer>
      NEXT_TOKEN_PATH = <literal>
      [ MAX_NUMBER_OF_REQUESTS = <integer> ]
    |
      HEADER_WITH_NEXT_PAGE_URL = <literal>
      [ MAX_NUMBER_OF_REQUESTS = <integer> ]

<route filters> ::=
   FILTER ( <route filter> [, <route filter> ]* )

<route filter> ::= {
     DECRYPTAES256 PASSWORD = <literal> [ ENCRYPTED ]
   | DECRYPT PASSWORD = <literal> [ ENCRYPTED ]
   | UNZIP
   | GUNZIP
   | CUSTOM [ JARS <jar name:literal> [, <jar name:literal> ]* ]
     CLASSNAME = <literal> [ <route filter parameter> ]*
   }

<route filter parameter> ::= <parameter name:identifier> = <literal> [ ENCRYPTED ] [ HIDDEN ]

<field> ::=
      <name:identifier> [ = <mapping:literal> ] [ : <type:literal> ]
        [ { OBL | OPT } ]
        [ ( DEFAULTVALUE <literal> ) ]
        [ EXTERN ]
        [ <inline constraints> ]*
    | <name:identifier> [ = <mapping:literal> ] :
         ARRAY OF ( <register field> )
         [ <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 }
    | URIPARAM

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

以下 の XML ラッパーを変更するための構文を参照してください。

ALTER WRAPPER XML ステートメントの構文
ALTER WRAPPER XML <name:identifier>
    [ DATASOURCENAME = <name:identifier> ]
    [ TUPLEROOT <XML node or path:literal> ]
    [ ROUTE <route> [ <route filters> ] ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
    [, <source configuration property> ]* ] ) ]

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

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

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

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

XML ラッパーは、ローカルまたはリモートの XML リソースを特定する XML データソース を介して定義されます。

XML ラッパーは XML ドキュメントの構造を分析し、複合型の中に他のエレメントをカプセル化する第 1 レベルの XML タグを属性として返します (属性名としてタグ名を使用)。

オプションで、 TUPLEROOT パラメータを使用して XML ドキュメントノードへの XPath ルート (XPath 言語) を指定できます。これは、Virtual DataPort がドキュメント全体ではなく、ドキュメントの一部のみにアクセスするために役立ちます。この場合、パスによって示されたノードは抽出用のルートノードとみなされます。示されたノードの各サブエレメントは、抽出されたタプル内のフィールドとみなされます。たとえば、RSS ドキュメントをインポートして、ラッパーが item エレメントごとにタプルを返すようにする場合は、パス /rss/channel/item を使用できます。XML ドキュメント全体にアクセスしてから、投影とフラット化の操作を使用して必要なデータを取得しても同等の効果は得られますが (「 FLATTEN ビュー (データ構造のフラット化) 」を参照)、基本リレーションの作成時に XPath ルートを指定した方がクエリプロセスをより効率化できます。

XML ラッパーには HTTP ルートを関連付けることができます。このルートは、 ROUTE パラメータを使用して宣言する必要があります。リクエストを実行する際、このルートの URL がデータソースルートの URL に連結されます。これにより、基本 URL(http://www.library.com/ など) を定義するデータソースを再利用して、アクセスするリソースごとに固有の相対 URL(「/books」、「/authors」、「/bookById/{id}」など) を使用してラッパーを作成できます。

他のラッパーと同様に、ラッパーによって提供されるデータの出力スキーマを指定できます。XML ドキュメントから対象のエレメントのみを選択して、それらの名前を変更できます (mapping はラッパーで使用される新しい名前を表し、name は XML ドキュメント内の元の名前です)。

URIPARAM 句は常に EXTERN 句と一緒に使用され、このフィールドが補間変数の値を表すことを示します。 URIPARAM を追加することで、フィールドの値は URL のクエリパラメータとしてエンコードされます。 URIPARAM は、パスが HTTP である XML データソースによってラッパーが作成され、変数が URL のクエリパラメータの値である場合にのみ、追加する必要があります。詳細については、管理ガイドの「 HTTP パス 」(「 Virtual DataPort でのパスの種類 」のサブセクション) を参照してください。

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

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

Add feedback