プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.1.0)
E77227-02
目次へ移動
目次

前
前へ
次
次へ

XMLデータ・ソースからのメタデータのインポートについて

Extensible Markup Language (XML)ドキュメントからメタデータをインポートする方法について説明します。

Oracle BIサーバーでは、Oracle BIサーバーXML Gatewayを使用したアクセスと、XML ODBCドライバを使用したアクセスという、2つのXMLアクセス・モードがサポートされます。

この項では、次の項目について説明します。

データ・ソースとしてのXMLの使用について

Oracle BIサーバーでは、リポジトリの物理レイヤーのデータ・ソースとしてXMLデータ・ソースを使用できます。

XMLデータ・ソースへのアクセスに使用する方法に応じて、URLがデータ・ソースを表す場合があります。

データ・ソースは、次のとおりです。

  • XMLデータ・アイランドが格納された、インターネット(イントラネットやエクストラネットを含む)上の静的XMLファイルまたはHTMLファイル。次に例を示します。

    tap://216.217.17.176/[DE0A48DE-1C3E-11D4-97C9-00105AA70303].XML

  • サーバー・サイトから生成される動的XML。次に例を示します。

    tap://www.aspserver.com/example.asp

  • XMLデータ・アイランドが格納された、ローカル・ドライブまたはネットワーク・ドライブ上のXMLファイルまたはHTMLファイル。次に例を示します。

    d:\xmldir\example.xml

    d:\htmldir\island.htm

    ローカルまたはネットワークXMLファイルのディレクトリ・パスを指定することも、ファイル名でワイルドカードとしてアスタリスク( * )を使用することもできます。ファイル名を指定せずにディレクトリ・パスを指定した場合(例: d:/xmldir)、XML拡張子を持つすべてのファイルがインポートされます。次に例を示します。

    d:\xmldir\

    d:\xmldir\exam*.xml

    d:\htmldir\exam*.htm

    d:\htmldir\exam*.html

  • 開始および終了の<table>および</table>タグにラップされた表を含むHTMLファイル。HTMLファイルは、インターネット上(イントラネットやエクストラネットなど)にある場合もあれば、ローカル・ドライブまたはネットワーク・ドライブにある場合もあります。詳細は、データ・ソースとしてのHTML表の使用についてを参照してください。

URLにリポジトリ変数またはセッション変数を含めると、URLに埋め込まれたユーザーIDおよびパスワードを許可するHTTPデータ・ソースがサポートされます。次に例を示します。

http://somewebserver/cgi.pl?userid=valueof(session_variable1)&password=
valueof(session_variable2)

この機能を使用して、ランタイム・パラメータによって動的に決定される場所を含むXMLデータ・ソースを作成することもできます。変数の詳細は、Oracle BI Repositoryでの変数の使用を参照してください。

Oracle BIサーバーがローカル以外のファイル(ネットワーク・ファイルやインターネット上のファイルなど)にアクセスする必要がある場合は、それらのリモート・ファイルにアクセスするための十分なネットワーク権限がある、有効なユーザーIDとパスワードを使用してOracle BIサーバーを実行する必要があります。

XML Gatewayを使用したXMLデータ・ソースからのメタデータのインポート

Oracle BIサーバーXML Gatewayを使用すると、メタデータのインポート・プロセスによって、XMLドキュメントが、XMLファイル名の語幹を表名として使用し、XMLドキュメントの第2レベルの要素を行デリミタとして使用して、表形式にフラット化されます。

語幹は、接尾辞のないファイル名です。すべてのリーフ・ノードは、その表に属する列としてインポートされます。リーフ・ノードへの階層アクセス・パスもインポートされます。

Oracle BIサーバーXML Gatewayでは、XMLスキーマに格納されたメタデータ情報が使用されます。XMLスキーマはXMLドキュメント内に含まれているか、XMLドキュメントのルート要素内で参照されます。

使用可能なスキーマがない場合は、すべてのXMLデータがテキスト・データとしてインポートされます。リポジトリの作成時に、物理レイヤーの列のデータ型を変更して、スキーマで定義されている対応する列のデータ型を上書きできます。ゲートウェイによって、入力データが、物理レイヤーで指定した目的の型に変換されます。CAST演算子を使用して、管理ツールのビジネス・モデルとマッピング・レイヤーでテキスト・データ型を他のデータ型にマップすることもできます。

Oracle BIサーバーXML Gatewayでは、次の項目はサポートされません。

  • XMLドキュメントに含まれる外部参照の解決(Oracle BIサーバーXML Gatewayによって生成されるXMLドキュメントの例のサンプル・ファイルに示されている外部XMLスキーマへの参照を除く)

  • Microsoft XMLスキーマに含まれる要素および属性の継承

  • 混合コンテンツ・モデルの要素タイプ(<p> hello <b>Joe</b>, how are you doing?</p>のように、要素とCDATAが混在するXML要素など)

「物理」レイヤーでメタデータを既存のデータベースにインポートする場合は、「データベース・プロパティ」ダイアログの「機能」タブでCOUNT_STAR_SUPPORTEDオプションが選択されていることを確認します。COUNT_STAR_SUPPORTEDオプションを選択しないでメタデータをインポートすると、「行数の更新」オプションがデータベースの物理表の右クリック・メニューに表示されなくなります。

「論理モデルへのマップ」画面および「ウェアハウスに公開」画面は、ADFデータ・ソースでのみ使用することができます。

Oracle BIサーバーXML Gatewayを使用してXMLデータをインポートするには:

  1. 管理ツールで、次のいずれかを実行します。
    1. 「ファイル」を選択して、「メタデータのインポート」を選択します。
    2. 既存のデータベースと接続プールの場合は、「物理」レイヤーで接続プールを右クリックして、「メタデータのインポート」を選択します。
  2. 「データ・ソースの選択」画面の「接続タイプ」フィールドで「XML」を選択します。続いて、次の値を指定します。
    • URL」フィールドで、XMLデータ・ソースのURLを指定します。Oracle BIサーバーXML Gatewayでは、前の項で説明したすべてのデータ・ソースがサポートされます。

      URLには、リポジトリ変数またはセッション変数を含めることができます。変数の詳細は、Oracle BI Repositoryでの変数の使用を参照してください。

      参照」をクリックすると、「XMLファイルの選択」ダイアログが表示され、ファイルを1つ選択できます。XMLドキュメントの場合、URL内でファイル名を指定する際に拡張子.xmlを付ける必要があります。拡張子を付けなかった場合、ドキュメントはHTMLドキュメントとして処理されます。

    • 該当するフィールドに、HTTP基本認証セキュリティ・モードを採用しているHTTPサイトへの接続に使用するユーザー名とパスワードを入力します(オプション)。

      HTTP基本認証セキュリティ・モードに加え、Oracle BIサーバーXML Gatewayでは、セキュアHTTPプロトコル、および以前はNTLMまたはWindows NT Challenge/Response認証と呼ばれていた統合Windows認証(Windows 2000の場合)もサポートされます。

    「データ・ソースの選択」画面で情報を入力し終わったら、「次へ」をクリックします。「メタデータ型の選択」画面が表示されます。

  3. インポートするオブジェクトのタイプに対応するオプション(「」、「キー」、「外部キー」など)を選択します。最も一般的なオプションは自動的に選択されます。

    結合をインポートするには、「キー」と「外部キー」の両方を選択します。システム表をインポートするには、データ・ソースのシステム権限が必要です。

  4. 「次」をクリックします。「メタデータ・オブジェクトの選択」画面が表示されます。
  5. インポートするオブジェクトを「使用可能」リストで選択し、「>」 (選択項目をインポート)ボタンまたは「>>」 (すべてインポート)ボタンを使用して「選択済」リストに移動します。「<」(選択対象を削除)ボタンおよび「<<」(すべて削除)ボタンを使用して、「選択済」リストから「使用可能」リストにオブジェクトを戻すこともできます。

    特定の項目を検索するには、「検索」ボックスにキーワードを入力し、「下方検索」または「上方検索」をクリックします。

    すでにインポートされているオブジェクトを含め、すべてのオブジェクトを表示するには、「完全な構造の表示」を選択します。このオプションの選択を解除すると、インポート可能なオブジェクトのみが表示されます。このオプションを選択した場合、すでにインポートされているオブジェクトはグレー表示されます。

  6. 「終了」をクリックします。

XMLデータをインポートしたら、接続プールの設定を調整する必要があります。詳細は、接続プールの作成または変更を参照してください。少なくとも、次の作業を実行する必要があります。

  • 「接続プール」ダイアログの「一般」タブで、接続の名前および説明(オプション)を入力します。

  • 「XML」タブをクリックして、URLリフレッシュ間隔や、タイムアウトするまでのURLのロードの待ち時間など、その他の接続プロパティを設定します。

    一般に、XMLデータ・ソースはリアルタイムで頻繁に更新されるため、Oracle BIサーバーXML Gatewayデータ・ソースのリフレッシュ間隔を指定できます。デフォルトの問合せのタイムアウト間隔(URLのロードのタイムアウト)は15分です。『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』のXMLデータ・ソースのリフレッシュ間隔に関する項を参照してください。

Oracle BIサーバーXML Gatewayによって生成されるXMLドキュメントの例

これらの例は、Oracle BIサーバーXML Gatewayによって生成されるXMLドキュメントのサンプルおよび対応する列を示しています。

外部ファイルに格納されたXMLスキーマ

次のサンプルXMLデータ・ドキュメント(mytest.xml)は、外部ファイルに格納されたXMLスキーマを参照します。スキーマ・ファイルは、データ・ドキュメントの後に示します。これによって生成される、リポジトリにインポート可能なXMLスキーマ情報は最後に示します。

<?xml version="1.0"?>
<test xmlns="x-schema:mytest_sch.xml">

<row>
<p1>0</p1>
<p2 width="5">
      <p3>hi</p3>
      <p4>
         <p6>xx0</p6>
         <p7>yy0</p7>
      </p4>
      <p5>zz0</p5>
</p2>
</row>

<row>
<p1>1</p1>
<p2 width="6">
      <p3>how are you</p3>
      <p4>
         <p6>xx1</p6>
         <p7>yy1</p7>
      </p4>
      <p5>zz1</p5>
</p2>
</row>

<row>
<p1>a</p1>
<p2 width="7">
      <p3>hi</p3>
      <p4>
         <p6>xx2</p6>
         <p7>yy2</p7>
      </p4>
      <p5>zz2</p5>
</p2>
</row>

<row>
<p1>b</p1>
<p2 width="8">
      <p3>how are they</p3>
      <p4>
         <p6>xx3</p6>
         <p7>yy3</p7>
      </p4>
      <p5>zz2</p5>
</p2>
</row>
</test>

対応するスキーマ・ファイルは次のとおりです。

<Schema xmlns="urn:schemas-microsoft-com:xml-data"
      xmlns:dt="urn:schemas-microsoft-com:datatypes">
      <ElementType name="test" content="eltOnly" order="many">
         <element type="row"/>
      </ElementType>
      <ElementType name="row" content="eltOnly" order="many">
      <element type="p1"/>
         <element type="p2"/>
      </ElementType>
      <ElementType name="p2" content="eltOnly" order="many">
         <AttributeType name="width" dt:type="int" />
         <attribute type="width" />
         <element type="p3"/>
         <element type="p4"/>
         <element type="p5"/>
      </ElementType>
      <ElementType name="p4" content="eltOnly" order="many">
         <element type="p6"/>
         <element type="p7"/>
      </ElementType>
      <ElementType name="p1" content="textOnly" dt:type="string"/>
      <ElementType name="p3" content="textOnly" dt:type="string"/>
      <ElementType name="p5" content="textOnly" dt:type="string"/>
      <ElementType name="p6" content="textOnly" dt:type="string"/>
      <ElementType name="p7" content="textOnly" dt:type="string"/>
</Schema>

前述のXMLデータ・ドキュメント(mytest.xml)から生成される表の名前はmytest、列名はp1p3p6p7p5およびwidthとなります。

さらに、各列がドキュメントに出現するコンテキストを保持し、XML要素から派生した、異なるコンテキストで出現する同名の列を区別するために、World Wide Web ConsortiumのXPathに関する勧告に基づいて、列の完全修飾名の次のようなリストが生成されます。

//test/row/p1
//test/row/p2/p3
//test/row/p2/p4/p6
//test/row/p2/p4/p7
//test/row/p2/p5
//test/row/p2@width

XMLドキュメント内のネストされた表構造

次の例はさらに複雑なサンプルで、XMLドキュメントでネストされた表構造を使用する方法を示します。オプションで、外部スキーマ・ファイルへの参照を省略することもできます。その場合は、すべての要素がVarchar文字型として処理されます。

===Invoice.xml===
<INVOICE>
   <CUSTOMER>
      <CUST_ID>1</CUST_ID>
      <FIRST_NAME>Nancy</FIRST_NAME>
      <LAST_NAME>Fuller</LAST_NAME>
      <ADDRESS>
         <ADD1>507 - 20th Ave. E.,</ADD1>
         <ADD2>Apt. 2A</ADD2>
         <CITY>Seattle</CITY>
         <STATE>WA</STATE>
         <ZIP>98122</ZIP>
      </ADDRESS>
      <PRODUCTS>
           <CATEGORY>
              <CATEGORY_ID>CAT1</CATEGORY_ID>
              <CATEGORY_NAME>NAME1</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>1</ITEM_ID>
                     <NAME></NAME>
                     <PRICE>0.50</PRICE>
                     <QTY>2000</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>2</ITEM_ID>
                     <NAME>SPRITE</NAME>
                     <PRICE>0.30</PRICE>
                     <QTY></QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
           <CATEGORY>
              <CATEGORY_ID>CAT2</CATEGORY_ID>
              <CATEGORY_NAME>NAME2</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>11</ITEM_ID>
                     <NAME>ACOKE</NAME>
                     <PRICE>1.50</PRICE>
                     <QTY>3000</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>12</ITEM_ID>
                     <NAME>SOME SPRITE</NAME>
                     <PRICE>3.30</PRICE>
                     <QTY>2000</QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
      </PRODUCTS>
   </CUSTOMER>
   <CUSTOMER>
      <CUST_ID>2</CUST_ID>
      <FIRST_NAME>Andrew</FIRST_NAME>
      <LAST_NAME>Carnegie</LAST_NAME>
      <ADDRESS>
         <ADD1>2955 Campus Dr.</ADD1>
         <ADD2>Ste. 300</ADD2>
         <CITY>San Mateo</CITY>
         <STATE>CA</STATE>
         <ZIP>94403</ZIP>
      </ADDRESS>
      <PRODUCTS>
           <CATEGORY>
              <CATEGORY_ID>CAT22</CATEGORY_ID>
              <CATEGORY_NAME>NAMEA1</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>122</ITEM_ID>
                     <NAME>DDDCOKE</NAME>
                     <PRICE>11.50</PRICE>
                     <QTY>2</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>22</ITEM_ID>
                     <NAME>PSPRITE</NAME>
                     <PRICE>9.30</PRICE>
                     <QTY>1978</QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
           <CATEGORY>
              <CATEGORY_ID>CAT24</CATEGORY_ID>
              <CATEGORY_NAME>NAMEA2</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>19</ITEM_ID>
                     <NAME>SOME COKE</NAME>
                     <PRICE>1.58</PRICE>
                     <QTY>3</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>15</ITEM_ID>
                     <NAME>DIET SPRITE</NAME>
                     <PRICE>9.30</PRICE>
                     <QTY>12000</QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
      </PRODUCTS>
   </CUSTOMER>
   <CUSTOMER>
      <CUST_ID>3</CUST_ID>
      <FIRST_NAME>Margaret</FIRST_NAME>
      <LAST_NAME>Leverling</LAST_NAME>
      <ADDRESS>
         <ADD1>722 Moss Bay Blvd.</ADD1>
         <ADD2> </ADD2>
         <CITY>Kirkland</CITY>
         <STATE>WA</STATE>
         <ZIP>98033</ZIP>
      </ADDRESS>
      <PRODUCTS>
           <CATEGORY>
              <CATEGORY_ID>CAT31</CATEGORY_ID>
              <CATEGORY_NAME>NAMEA3</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>13</ITEM_ID>
                     <NAME>COKE33</NAME>
                     <PRICE>30.50</PRICE>
                     <QTY>20033</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>23</ITEM_ID>
                     <NAME>SPRITE33</NAME>
                     <PRICE>0.38</PRICE>
                     <QTY>20099</QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
           <CATEGORY>
              <CATEGORY_ID>CAT288</CATEGORY_ID>
              <CATEGORY_NAME>NAME H</CATEGORY_NAME>
              <ITEMS>    
                  <ITEM>   
                     <ITEM_ID>19</ITEM_ID>
                     <NAME>COLA</NAME>
                     <PRICE>1.0</PRICE>
                     <QTY>3</QTY>
                  </ITEM>   
                  <ITEM>   
                     <ITEM_ID>18</ITEM_ID>
                     <NAME>MY SPRITE</NAME>
                     <PRICE>8.30</PRICE>
                     <QTY>123</QTY>
                  </ITEM>   
              </ITEMS>    
         </CATEGORY>
      </PRODUCTS>
   </CUSTOMER>
</INVOICE>

生成されるXMLスキーマは、次の列名および対応する完全修飾名を持つ1つの表(INVOICE)で構成されます。

完全修飾名

ADD1

//INVOICE/CUSTOMER/ADDRESS/ADD1

ADD2

//INVOICE/CUSTOMER/ADDRESS/ADD2

CITY

//INVOICE/CUSTOMER/ADDRESS/CITY

STATE

//INVOICE/CUSTOMER/ADDRESS/STATE

ZIP

//INVOICE/CUSTOMER/ADDRESS/ZIP

CUST_ID

//INVOICE/CUSTOMER/CUST_ID

FIRST_NAME

//INVOICE/CUSTOMER/FIRST_NAME

LAST_NAME

//INVOICE/CUSTOMER/LAST_NAME

CATEGORY_ID

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/CATEGORY_ID

CATEGORY_NAME

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/CATEGORY_NAME

ITEM_ID

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/ITEMS/ITEM/ITEM_ID

NAME

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/ITEMS/ITEM/NAME

PRICE

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/ITEMS/ITEM/PRICE

QTY

//INVOICE/CUSTOMER/PRODUCTS/CATEGORY/ITEMS/ITEM/QTY

値を持つタグのみが列として抽出されます。XML問合せではタグの完全修飾名が生成されるため、適切な列が取得されていることを確認できます。

次に、INVOICE表に対するサンプル問合せの結果を示します。

SELECT first_name, last_name, price, qty, name FROM invoice
------------------------------------------------------------
FIRST_NAME  LAST_NAME         PRICE   QTY    NAME
------------------------------------------------------------
Andrew      Carnegie           1.58     3    SOME COKE
Andrew      Carnegie          11.50     2    DDDCOKE
Andrew      Carnegie           9.30   12000  DIET SPRITE
Andrew      Carnegie           9.30    1978  PSPRITE
Margar      Leverling          0.38   20099  SPRITE33
Margar      Leverling          1.0      3    COLA
Margar      Leverling         30.50   20033  COKE33
Margar      Leverling          8.30    123   MY SPRITE
Nancy       Fuller             0.30          SPRITE
Nancy       Fuller             0.50    2000
Nancy       Fuller             1.50    3000  ACOKE
Nancy       Fuller             3.30    2000  SOME SPRITE
------------------------------------------------------------
Row count: 12

データ・ソースとしてのHTML表の使用について

Oracle BIサーバーXML Gatewayでは、HTMLファイル内の表をデータ・ソースとして使用することもできます。HTMLファイルは、インターネット(イントラネットやエクストラネットを含む)にあるファイルを指すURLとして指定することも、ローカル・ドライブまたはネットワーク・ドライブにあるファイルとして指定することもできます。

<table>タグと</table>タグのペアで定義される表がHTML 4.0仕様のネイティブな構成メンバーであっても、Webデザイナは多くの場合、これをデータ構造としてではなく、特定の視覚効果を達成するための一般的なフォーマット方法として使用します。Oracle BIサーバーXML Gatewayは、<th>タグと</th>タグのペアで定義された、特定の列ヘッダーを含む表を現時点で最も効果的に抽出します。

特定の列ヘッダーを含まない表については、Oracle BIサーバーXML Gatewayは、単純な経験則をいくつか採用して、実際のデータ表であると思われるHTMLファイルの部分をできるだけ正しく特定します。

次に、1つの表を含むサンプルHTMLファイルを示します。

<html>
   <body>
      <table border=1 cellpadding=2 cellspacing=0>
         <tr>
            <th colspan=1>Transaction</th>
            <th colspan=2>Measurements</th>
         </tr>
         <tr>
            <th>Quality</th>
            <th>Count</th>
            <th>Percent</th>
         </tr>
         <tr>
            <td>Failed</td>
            <td>66,672</td>
            <td>4.1%</td>
         </tr>
         <tr>
            <td>Poor</td>
            <td>126,304</td>
            <td>7.7%</td>
         </tr>
         <tr>
            <td>Warning</td>
            <td>355,728</td>
            <td>21.6%</td>
         </tr>
         <tr>
            <td>OK</td>
            <td>1,095,056</td>
            <td>66.6%</td>
         </tr>
         <tr>
            <td colspan=1>Grand Total</td>
            <td>1,643,760</td>
            <td>100.0%</td>
         </tr>
      </table>
   </body>
</html>

表名はHTMLファイルの名前から派生し、列名は、対応する列のヘッダー(<th>タグと</th>タグのペアで定義されるもの)をアンダースコアで区切って連結することにより形成されます。

サンプル・ファイルの名前を18.htmとすると、その表名には18_0が含まれ(そのHTMLファイルの最初の表であるため)、列名および対応する完全修飾名は次のようになります。

完全修飾名

Transaction_Quality

\\18_0\Transaction_Quality

Measurements_Count

\\18_0\Measurements_Count

Measurements_Percent

\\18_0\Measurements_Percent

表の列ヘッダーが複数の行に出現する場合は、それらのヘッダー行の対応するフィールド・コンテンツを連結することにより列名が形成されます。

ヘッダー・タグのペアがない表の場合、Oracle BIサーバーXML Gatewayは、最初の行のフィールド値(<td>タグと</td>タグのペアで区切られたもの)が列名になると見なします。列には、出現する順に名前が付けられます(例: c0、c1、c2)。

その他のXMLの例については、XML ODBCを使用したXMLデータ・ソースからのメタデータのインポートおよびXMLドキュメントの例を参照してください。

XML ODBCを使用したXMLデータ・ソースからのメタデータのインポート

ODBCを使用してメタデータをインポートする方法について説明します。

XML ODBCデータベース・タイプを使用すると、ODBCインタフェースを介してXMLデータ・ソースにアクセスできます。物理表の物理列を表すXML要素のデータ型は、XMLスキーマで定義されたXML要素のデータ型から派生します。

適切なXMLスキーマがない場合は、デフォルトの文字列データ型が使用されます。物理レイヤーにおけるデータ型の設定によって、XMLデータ・ソースで定義されたデータ型が上書きされることはありません。XMLスキーマがないXMLデータにアクセスする場合は、CAST演算子を使用して、管理ツールのビジネス・モデルとマッピング・レイヤーでデータ型の変換を実行してください。

メタデータを物理レイヤーの既存のデータベースにインポートする場合、COUNT_STAR_SUPPORTEDオプションが「データベース・プロパティ」ダイアログの「機能」タブで選択されていることを確認します。COUNT_STAR_SUPPORTEDオプションを選択しないでメタデータをインポートする場合、「行数の更新」オプションはデータベースの物理表の右クリック・メニューに表示されません。

ODBCを使用してXMLデータをインポートするには:

  1. ODBC経由でXMLデータ・ソースにアクセスするには、まず、XML ODBCドライバのライセンスを入手し、インストールする必要があります。
  2. アクセスするXMLデータ・ソースを指すODBC DSNを作成し、XML ODBCデータ・ソース・タイプを選択していることを確認します。
  3. 管理ツールで、「ファイル」を選択し、「メタデータのインポート」を選択します。
  4. ダイアログの指示に従って、ODBC DSNをリポジトリにインポートします。詳細は、リレーショナル・データ・ソースからのメタデータのインポートを参照してください。

    注意:

    XML ODBCの制限事項により、「メタデータ型の選択」画面で「シノニム」オプションを選択する必要があります。このオプションを選択しなかった場合、表はインポートされません。

XML ODBCデータ・ソースの例

この例では、Microsoft ADOの保存ファイル形式によるXML ODBCデータ・ソースを示します。

この項の例に、Microsoft ADOの保存ファイル形式によるXML ODBCデータ・ソースを示します。データとスキーマの両方を同じドキュメントに含めることができます。

例5-1 XML ODBCの例

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
  xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
  xmlns:rs='urn:schemas-microsoft-com:rowset'
  xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
  <s:ElementType name='row' content='eltOnly' rs:CommandTimeout='30'
  rs:updatable='true'>
    <s:AttributeType name='ShipperID' rs:number='1' rs:writeunknown='true'
    rs:basecatalog='Paint' rs:basetable='Shippers' rs:basecolumn='ShipperID'>
      <s:datatype dt:type='i2' dt:maxLength='2' rs:precision='5'
      rs:fixedlength='true' rs:benull='false'/>
    </s:AttributeType>
    <s:AttributeType name='CompanyName' rs:number='2' rs:writeunknown='true'
    rs:basecatalog='Paint' rs:basetable='Shippers' rs:basecolumn='CompanyName'>
      <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='40'
      rs:benull='false'/>
    </s:AttributeType>
    <s:AttributeType name='Phone' rs:number='3' rs:nullable='true'
    rs:writeunknown='true' rs:basecatalog='Paint' rs:basetable='Shippers'
    rs:basecolumn='Phone'>
      <s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='24'
      rs:fixedlength='true'/>
    </s:AttributeType>
    <s:extends type='rs:rowbase'/>
  </s:ElementType>
</s:Schema>
<rs:data>
  <z:row ShipperID='1' CompanyName='Speedy Express' Phone='(503)
  555-9831          '/>
  <z:row ShipperID='2' CompanyName='United Package' Phone='(503)
  555-3199          '/>
  <z:row ShipperID='3' CompanyName='Federal Shipping' Phone='(503)
  555-9931          '/>
</rs:data>
</xml>

XMLドキュメントの例

次の様々な状況の例では、Oracle BIサーバーのXMLアクセス方法でそれらの状況がどのように処理されるかを説明します。

  • XMLドキュメントの83.xml8_sch.xmlは、同じ要素宣言を異なるスコープで使用する例を示しています。たとえば、<p3>を<p2>内および<p4>内で使用できます。

    前述の例の要素<p3>は2つの異なるスコープに出現するため、インポート・プロセスで2回目にこの要素が出現したときに索引番号を追加することによって、各要素に異なる列名が付けられます。この場合、2回目に出現した要素はp3_1となります。さらに他のコンテキストで<p3>が出現する場合は、p3_2、p3_3となります。

  • XMLドキュメントの83.xml84.xmlは、複数のXMLファイルで同じスキーマ(8_sch.xml)を共有できることを示しています。

  • Internet Explorerバージョン5以降では、XMLアイランドと呼ばれる埋込みXMLフラグメントを含むHTMLドキュメントがサポートされます。XMLドキュメントのisland2.htmは、1つのドキュメントから複数のXMLデータ・アイランドおよび複数の表が生成される可能性のある単純な状況を示しています。XMLアイランドのインスタンスごとに表が1つずつ生成されます。表を区別するために、ドキュメント名に適切な索引が追加されます。island2.htmの場合、island2_0およびisland2_1という2つのXML表が生成されます。

83.xml

===83.xml===
<?xml version="1.0"?>
<test xmlns="x-schema:8_sch.xml">|
<row>
<p1>0</p1>
<p2 width="5" height="2">
   <p3>hi</p3>
   <p4>
      <p3>hi</p3>
      <p6>xx0</p6>
      <p7>yy0</p7>
   </p4>
   <p5>zz0</p5>
</p2>
</row>

<row>
<p1>1</p1>
<p2 width="6" height="3">
   <p3>how are you</p3>
   <p4>
      <p3>hi</p3>
      <p6>xx1</p6>
      <p7>yy1</p7>
   </p4>
   <p5>zz1</p5>
</p2>
</row>
</test>

8_sch.xml

===8_sch.xml===
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
         <AttributeType name="height" dt:type="int" />
   <ElementType name="test" content="eltOnly" order="many">
      <AttributeType name="height" dt:type="int" />
      <element type="row"/>
   </ElementType>
   <ElementType name="row" content="eltOnly" order="many">
         <element type="p1"/>
      <element type="p2"/>
   </ElementType>
   <ElementType name="p2" content="eltOnly" order="many">
         <AttributeType name="width" dt:type="int" />
      <AttributeType name="height" dt:type="int" />
         <attribute type="width" />
      <attribute type="height" />
      <element type="p3"/>
      <element type="p4"/>
      <element type="p5"/>
   </ElementType>
   <ElementType name="p4" content="eltOnly" order="many">
      <element type="p3"/>
      <element type="p6"/>
      <element type="p7"/>
   </ElementType>
   <ElementType name="test0" content="eltOnly" order="many">
      <element type="row"/>
   </ElementType>
      <ElementType name="p1" content="textOnly" dt:type="string"/>
      <ElementType name="p3" content="textOnly" dt:type="string"/>
      <ElementType name="p5" content="textOnly" dt:type="string"/>
      <ElementType name="p6" content="textOnly" dt:type="string"/>
      <ElementType name="p7" content="textOnly" dt:type="string"/>
</Schema>

84.xml

===84.xml===
<?xml version="1.0"?>
<test0 xmlns="x-schema:8_sch.xml">
<row>
<p1>0</p1>
<p2 width="5" height="2">
   <p3>hi</p3>
   <p4>
      <p3>hi</p3>
      <p6>xx0</p6>
      <p7>yy0</p7>
   </p4>
   <p5>zz0</p5>
</p2>
</row>

<row>
<p1>1</p1>
<p2 width="6" height="3">
   <p3>how are you</p3>
   <p4>
      <p3>hi</p3>
      <p6>xx1</p6>
      <p7>yy1</p7>
   </p4>
   <p5>zz1</p5>
</p2>
</row>
</test0>

Island2.htm

===island2.htm===
<HTML>
   <HEAD>
<TITLE>HTML Document with Data Island</TITLE>
</HEAD>
   <BODY>
<p>This is an example of an XML data island in I.E. 5</p>
   <XML ID="12345">
   test>
      <row>
         <field1>00</field1>
         <field2>01</field2>
   </row>
      <row>
         <field1>10</field1>
         <field2>11</field2>
   </row>
      <row>
         <field1>20</field1>
         <field2>21</field2>
      </row>
   </test>
</XML>
<p>End of first example.</p>
<XML ID="12346">
   <test>
      <row>
         <field11>00</field11>
         <field12>01</field12>
      </row>
      <row>
         <field11>10</field11>
         <field12>11</field12>
      </row>
      <row>
         <field11>20</field11>
         <field12>21</field12>
      </row>
   </test>
</XML>
<p>End of second example.</p>
</BODY>
</HTML>