ODBC Driver for XML

Build 24.0.9062

フラット化されたドキュメントモデル

XML データ全体に単純にアクセスする必要があるユーザーにとっては、データを単一テーブルにフラット化することは最善のオプションです。このモードでは、本製品 はストリーミングを使用し、クエリごとにXML データを1回だけパースします。

オブジェクト配列を単一テーブルに結合

DataModel を"FlattenedDocuments" に設定すると、本製品 はオブジェクト配列ごとに別のテーブルを返しますが、暗黙的に親テーブルに結合します。ネストされた任意の兄弟XPath 値(同じ高さの子パス)は、SQL CROSS JOIN として扱われます。

以下は、Raw データ のサンプルドキュメントと、XPaths /root/people、/root/people/vehicles、/root/people/vehicles/maintenance に基づく解析のサンプルクエリとその結果です。これは、暗黙的にvehicles 要素をpeople 要素と結合し、暗黙的にvehicles 要素をmaintenance 要素と結合します。

接続文字列

次の接続文字列を使用して、この例ではRaw データ をクエリします。

URI=C:\people.txt;DataModel=FlattenedDocuments;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;'

クエリ

次のクエリは、各people 要素のネストされた要素をドリルします。XPath プロパティはXML パスとしてvehicles ノードを含んだため、vehicle の要素を明示的にクエリできます。

SELECT
  [personal.age] AS age,
  [personal.gender] AS gender,
  [personal.name.first] AS name_first,
  [personal.name.last] AS name_last,
  [source],
  [type],
  [model],
  [insurance.company] AS ins_company,
  [insurance.policy_num] AS ins_policy_num,
  [date] AS maint_date,
  [desc] AS maint_desc
FROM
  [people]

結果

記述されたパスに基づいて水平および垂直フラット化を行うと、各vehicle 要素はその親people 要素に暗黙的に結合され、各maintenance 要素はその親vehicle 要素に暗黙的に結合されます。

agegenderfirst_namelast_namesourcetypemodelins_companyins_policy_nummaint_datemaint_desc
20MJohnDoeinternetcarHonda CivicABC Insurance123452017-07-17oil change
20MJohnDoeinternetcarHonda CivicABC Insurance123452018-01-03new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452017-08-27new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452018-01-08oil change
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-05-11tires rotated
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-11-03oil change
24FJaneRobertsphonecarHonda AccordCar Insurance987652017-10-07new air filter
24FJaneRobertsphonecarHonda AccordCar Insurance987652018-01-13new brakes

関連項目

  • 自動スキーマ検出:テーブルスキーマに報告されたカラムを設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062