データ フィード XML 構文
XML データを PowerPivot ワークブックに移動するための 1 つの方法は、PowerPivot for Excel で簡単に使用できる形式および構造で XML データをストリームするデータ サービスまたは Web アプリケーションをビルドすることです。PowerPivot for Excel には、RFC4287 で説明されている Atom 1.0 データ配信形式に準拠する XML 構造を解析するビルトイン データ フィード リーダーが含まれています。
データ フィードの生成には、さまざまなツールやアプリケーションを使用できますが、ADO.NET Data Services 3.5.1 の Atom 形式に基づくデータ サービスをビルドするプログラマは、PowerPivot for Excel で完全にサポートされるフィードを作成することになります。次の製品とテクノロジは、ADO.NET Atom 形式に基づく Atom フィード生成をサポートしています。
ADO.NET Data Services
Windows Communications Foundation (WCF)
SharePoint 2010 Atom フィード
SQL Server 2008 R2 Reporting Services Atom フィード
他のツールまたは方法を使用するプログラマは、PowerPivot for Excel に組み込まれたデータ フィード リーダーで処理できる有効な XML 応答の構成方法を理解する必要があります。 このトピックでは、PowerPivot ブックでサポートされる Atom 1.0 構文の各部について説明します。
ADO.NET Data Services を使用して他のデータ ソースからデータ フィードを生成する方法の詳細については、Microsoft web サイトの「ADO.NET Data Services の使用」および「Atom 形式」を参照してください。
データ ペイロードについて
XML 構文を詳細に検討する前に、インポート操作の後、PowerPivot ワークスペースにデータがどのように示されるかを視覚的に把握すると効果的です。PowerPivot データ ソースは、見慣れたグリッド レイアウトの行と列に配置された表形式のデータで構成されます。構造化した Atom 1.0 データをインポートすると、結果セットには、どの Atom フィードにも存在する組み込みデータ要素、およびアナリストが使用するビジネスまたは産業データを含むカスタム データが含まれます。組み込み Atom データ要素 (太字で表示)、および社内の人事部のデータベースのデータの表示に使用するカスタム データ要素 (斜体で表示) を示す次の例を考えてみましょう。
id |
title |
updated |
headcount |
Open positions |
Avg. Years in Dept |
http://AW:8080/AWDept/AWDataService.svc/Dept(1) |
マーケティング部門 |
2008-04-18T18:16:30Z |
15 |
2 |
1.5 |
http://AW:8080/AWDept/AWDataService.svc/Dept(2) |
生産部門 |
2008-04-18T18:16:30Z |
26 |
3 |
4 |
上の例により、次の要点を説明できます。
組み込みフィールドは結果セットの一部に含めることができます。id、title、updated などのフィールドは、Atom 1.0 構文で指定され、フィードの必須部分です。ただし、"Include Atom Elements" というデータ フィード接続パラメーターを使用すると、フィールドを含めたり除外したりできます。このパラメーターを構成する方法により、フィードのインポート後、PowerPivot ワークスペースに表示されるフィールドが決まります。フィードをインポートした後は、データ ソースのコンテキストで意味のない Atom フィールドを削除できます。
カスタム コンテンツ フィールドを使用すると、PowerPivot ブックで役立つデータを返すことができます。ほとんどの場合、ペイロード内のデータの大半がカスタム コンテンツです。
ペイロードの例の XML 構造
Atom 1.0 データ フィードには、XML 表形式データが含まれます。このデータには、組み込み要素とカスタム コンテンツ要素の組み合わせが含まれています。組み込み要素は、処理に必要なメタデータを提供します。カスタム データには、フィードで使用可能にするビジネス データが含まれます。表形式のデータセットの各行には、ビルトイン要素とカスタム要素の両方が含まれます。
以下の例では、前の例の 2 行のデータを提供する単純な Atom 1/0 データ ドキュメントを示しています。組み込み Atom 要素は、太字で示されています。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Departments</title>
<id>http://Adventure-works:8080/AW/AWDataService.svc/Department</id>
<updated>2008-04-18T18:16:30Z</updated>
<entry>
<id>http://AW:8080/AWDept/AWDataService.svc/Dept(1)</id>
<title type="text">Marketing department</title>
<updated>2008-04-18T18:16:30Z</updated>
<content type="application/xml">
<d:headcount type="int">15</d:headcount>
<d:openpositions type="int">2</d:openpositions>
<d:yrsinposition type="int">1.5</d:yrsinposition>
</content>
</entry>
<entry>
<id>http://AW:8080/AWDept/AWDataService.svc/Dept(2)</id>
<title type="text">Production department</title>
<updated>2008-04-18T18:16:30Z</updated>
<content type="application/xml">
<d:headcount type="int">26</d:headcount>
<d:openpositions type="int">3</d:openpositions>
<d:yrsinposition type="int">4</d:yrsinposition>
</content>
</entry>
</feed>
XML リファレンス
データまたは Web サービスは、<feed>、<entry> および <content> データ構造を含む適切な形式の XML ドキュメントを返す必要があります。これらの要素は、データ フィードのインポート後に PowerPivot ワークスペースに表示されるテーブル構造、行構造、データ値にマップします。
Atom 標準には、XML ペイロードを使用するクライアントへスキーマ情報を渡すための規定は含まれていません。しかし、クライアント アプリケーションにデータ定義を提供する実際的な方法は、データ属性を XML 属性として指定することです。データ型に関するスキーマ情報、フォーマット、その他の列属性は、XML データ要素に埋め込まれた記述に基づき生成されます。各要素の属性は、列に格納されるデータが数値データかテキスト データかを決定します。
Feed 要素
フィード要素は、メタデータとデータのコンテナーです。この要素は、PowerPivot ワークブックで作成されるテーブルを記述します。PowerPivot for Excel で使用する Feed 要素の構文例を次に示します。
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">My Table Name</title>
<id>http://UniversalResourceIdentifier/identifiesthisfeed</id>
<updated>2008-10-31:09:23:34:1832</updated>
<entry />
</feed>
構文
要素または属性 |
必須 |
説明 |
---|---|---|
<feed xmlns= > |
いいえ |
xmlns 属性は、要素名の競合の解決で使用されます。たとえば、<id> 要素が 2 つある場合、それぞれを識別する名前空間を前に付けることができます。<atom:id> は組み込み列、<adventureworks:id> は Adventure Works データセットの識別子を表します。 組み込み Atom フィールドを、同じ名前を共有する他のフィールドから明確に識別する必要がある場合、Atom 名前空間を Feed 要素に追加し (xmlns="http://www.w3.org/2005/Atom")、Atom プレフィックスを使用してその要素を識別できます (たとえば atom:id、atom:title、atom:updated など)。 |
<title> |
はい |
title 要素にはテキスト文字列が含まれています。PowerPivot データ フィードでの使用と同様に、データ フィードが PowerPivot for Excel にインポートされると、この要素は PowerPivot ワークスペースで作成されたテーブルの名前を指定します。 実行時には、<title> 要素の値が SharePoint サイト上のデータ サービス ドキュメントから読み込まれます。 |
<id> |
はい |
id 要素は、一意にかつ永続的にそのフィードのインスタンスを識別します。この値は、内部用途専用のメタデータです。この要素は、PowerPivot ワークスペースのテーブルにも SharePoint サイトのアプリケーション ページにも表示されません。 PowerPivot データ フィードでは、この値は、データの更新の目的で同じフィードの将来と過去のインスタンスを比較する場合に使用します。 この値には URI か IRI を指定する必要があります。この値では、大文字と小文字が区別されます。 |
<updated> |
はい |
updated 要素は、データ フィードが変更された日付または時刻を示します。この値は、内部用途専用のメタデータです。この要素は、PowerPivot ワークスペースのテーブルにも SharePoint サイトのアプリケーション ページにも表示されません。 PowerPivot データ フィードでは、この値は、データの更新の目的で同じフィードの将来と過去のインスタンスを比較する場合に使用します。 この値には有効な日付タイムスタンプを指定する必要があります。 |
Feed の子要素の無視
Atom 1.0 配信形式で <entry> 要素に対して定義したその他すべての要素は、PowerPivot for Excel によって無視されます。これには次の要素が含まれます。
<カテゴリ>
<投稿者>
<ジェネレーター>
<アイコン>
<リンク>
<ロゴ>
<権限>
<サブタイトル>
<extensionElement>
Entry 要素
<entry> 要素には、データの行が含まれます。PowerPivot for Excel で使用する <entry> 要素の構文例を次に示します。
<entry>
<id>http://AW:8080/AW/AWDataService.svc/Department(1)</id>
<title type="text" />
<updated>2008-04-18T18:16:30Z</updated>
<content /> ;* contains data
</entry>
構文
要素または属性 |
必須 |
説明 |
---|---|---|
<id> |
はい |
id 要素は、一意にかつ永久的に行のインスタンスを識別します。この値は通常、データの更新時に同じ行の他のインスタンスを比較する場合に使用します。この値は、PowerPivot テーブルの行に表示されます。 この値には URI か IRI を指定する必要があります。この値では、大文字と小文字が区別されます。 |
<title> |
はい |
title 要素は、データ フィードの PowerPivot for Excel へのインポート時に PowerPivot テーブルに作成される行の名前を指定します。 この要素は指定する必要がありますが、値は必要ありません。たとえば、次の要素は有効な Atom 1.0 構文です。 <title type="text" /> |
<updated> |
はい |
updated 要素は、データ フィードが変更された日付または時刻を示します。この値は、PowerPivot ワークスペースのテーブル、または SharePoint サイトのアプリケーション ページに表示されます。 |
<content> |
はい |
この要素は、Atom 1.0 構文では必要ありませんが、PowerPivot ワークスペースのテーブルにデータで渡す必要があります。この要素には、使用するカスタム データが含まれています。 データ構造を定義するスキーマはありません。スキーマは、インポート操作時に属性と要素に基づき動的に生成されます。各 <content> 要素内には、列名とデータ型の取得に使用する情報があります。 |
カスタム コンテンツの派生スキーマ
データ フィードには、完全なドキュメントとして処理される独立したデータが含まれます。このデータ自体には、別個のスキーマに対する参照はありません。代わりに、XML 構造自体にデータ定義を埋め込む必要があります。
前の例から次の XML の抜粋を考えてみます。データ型が属性として指定されていることに注意してください。
<content type="application/xml">
<d:headcount type="int">15</d:headcount>
<d:openpositions type="int">2</d:openpositions>
<d:yrsinposition type="int">1.5</d:yrsinposition>
</content>
Entry の子要素の無視
Atom 1.0 配信形式で <entry> 要素に対して定義したその他すべての要素は、PowerPivot for Excel によって無視されます。これには次の要素が含まれます。
<カテゴリ>
<投稿者>
<リンク>
<パブリッシュ済み>
<権限>
<[ソース]>
<[概要]>
<extensionElement>