伝統的な SQL データは、着信した XML 文書から分解される か、 またはそれが構成されて 発信する文書が作成されます。 データを他のアプリケーションと共用する場合に、 DB2 のリレーショナル機能の利点を活かすには、 やりとりする XML 文書を必要に応じて合成および分解してデータを管理できるとよいと考えられます。 このような XML 文書記憶を、XML コレクション と呼びます。
XML コレクションの例を 図 3 に示してあります。
図 3. タグなしのデータとしての文書の DB2 表内での保管
![]() |
XML コレクションは、DAD ファイルに定義しますが、これは、 1 つ以上のリレーショナル表に対する要素および属性のマップの方法を指定するものです。 コレクション名を使用可能にすることでこれを定義してから、 ストアード・プロシージャーと一緒に使用して、XML 文書を合成または分解することができます。
DAD ファイル内にコレクションを定義する場合、 SQL マッピングまたは RDB_node マッピングの 2 つのマッピング体系のうちのいずれかを使います。 SQL マッピングでは、SQL SELECT ステートメントを使って、 コレクションに使用する DB2 表と条件を定義します。 RDB_node マッピングでは、XPath ベースの RDB_node を使って、表、列、および条件を定義します。
XML 文書の合成または分解用のストアード・プロシージャーが用意されています。 ストアード・プロシージャーは接頭部 db2xml を使います。 これは XML エクステンダーのスキーマ名 です。 XML コレクションには次のようなストアード・プロシージャーを使います。
以下の用語は XML エクステンダーに固有のものであり、本書で頻繁に使用されます。