XML データからのレポート データセットの作成
Reporting Services には、XML データ ソースからのレポート データの取得をサポートするデータ処理拡張機能が用意されています。レポートに XML ドキュメントや Web サービスのデータを使用したり、XML をクエリに埋め込むことができます。SQL Server データベースから XML ドキュメントを取得するためのサポートは組み込まれていません。
XML データ ソースへの接続とデータの取得
XML データをレポートに取り込むには、Web サービスまたは XML ドキュメントの URL を指定する接続文字列でデータ ソースを作成します。空の接続文字列でデータ ソースを作成し、データセット クエリに XML データを埋め込むこともできます。
各 XML データ ソースの要件を次に示します。
データ ソースの種類は XML でなければなりません。Reporting Services には、データを取得してレポートで処理するための XML データ処理拡張機能が用意されています。
資格情報は、Windows 統合セキュリティを使用するか資格情報を使用しないように構成する必要があります。
保存された資格情報や要求された資格情報はサポートされていません。Windows 統合セキュリティが無効になっていると、データの取得に Windows 統合セキュリティを使用できないので注意してください。保存された資格情報や要求された資格情報を指定すると、実行時にエラーが発生します。
資格情報を選択しない場合には、匿名アクセスが使用されます。レポート サーバーが外部データ ソースに接続するための自動実行アカウントが定義済みであることを確認してください。XML データ処理拡張機能は、対象 URL または Web サービスに資格情報を渡しません。したがって、自動実行アカウントが定義されていないと接続に失敗します。詳細については、「自動実行アカウントの構成」を参照してください。
接続文字列を、HTTP 経由でアクセス可能な Web サービス、Web ベース アプリケーション、または XML ドキュメントを指す URL に設定する必要があります。XML ドキュメントの拡張子は XML にする必要があります。データセット クエリに埋め込まれた XML データに対し、空の接続文字列を使用することもできます。
クエリでは XML データを返す必要があります。XML ドキュメントの場合、XQuery と似た XML 構文を使って要素パスを指定できます (「XML レポート データを指定するための要素パス構文」を参照)。Web サービスの場合、<Query> 要素を使って、呼び出すメソッドや SOAP アクションを指定できます。XML データ ソースが、レポートに必要なデータを取得できるような階層構造になっていれば、クエリを空にして、既定のクエリを使用することもできます。クエリの実行時に取得される XML 要素ノードの値および属性は、レポートに使用されているデータセットのフィールドにマップされます。
クエリを作成するにはテキストベースのクエリ デザイナを使用する必要があります。クエリの解析時にパラメータは識別されません。[データセットのプロパティ] ダイアログ ボックスの [パラメータ] ページでパラメータを作成する必要があります。クエリ構文の詳細については、「XML レポート データを指定するための XML クエリ構文」を参照してください。汎用クエリ デザイナの詳細については、「Reporting Services のクエリ デザイン ツール」を参照してください。
XML データ ソースの接続文字列
次の例に、それぞれ Web サービスと XML ドキュメントに対する接続文字列の構文を示します。file:// プロトコルはサポートされません。
XML ドキュメントの種類 |
接続文字列の例 |
---|---|
Web サービス |
http://adventure-works.com/results.aspx |
XML ドキュメント |
https://localhost/XML/Customers.xml |
埋め込み XML ドキュメント |
空 |
データ ソースの定義の詳細については、「埋め込みデータ ソースまたは共有データ ソースを作成する方法」を参照してください。
XML データ ソースに対するデータセット クエリ
データセットには、クエリ (特定の結果セットを取得するためにデータ ソースに対して実行されるコマンド テキスト) が格納されます。結果セットは、データセット内のフィールドのコレクションにマップされます。データセットにフィルタ値を設定し、データ ソースから返される結果を制限することもできます。XML データ ソースに対して使用できるデータセット クエリの値を次の表に示します。
データセット クエリ |
説明 |
---|---|
空 |
既定の結果セットを作成するには、空のクエリを使用します。既定のクエリは、データ ソースを読み取り、最初のリーフ コレクションまで XML ノード階層をたどることによって作成されます。結果セットには、テキスト値を持つすべてのノード、および、そのパス上に存在するすべてのノード属性が格納されます。結果セットの列は、データセットのフィールドにマップされます。 |
要素パス |
データ ソースから XML データを取得するときに使用するノードのシーケンスを指定します。 |
XML Query 要素 |
XML Query の必須の要素および省略可能な要素を次に示します。
XML データ ソース必須の XML 要素省略可能な XML 要素
Web サービスの場合 <Method Namespace= "名前空間" Name="MethodName" /> -- or -- <SoapAction> SOAP アクション </SoapAction> <ElementPath> 要素パス </ElementPath> <Method Namespace= "名前空間" Name="MethodName" /> -- or -- <SoapAction> SOAP アクション </SoapAction>
XML ドキュメントの場合 <ElementPath> 要素パス </ElementPath>
埋め込み XML ドキュメントの場合 <XmlData> 内部 XML</XmlData> <ElementPath> 要素パス </ElementPath> -- or -- <ElementPath IgnoreNamespaces="true"> 要素パス </ElementPath>
名前空間を指定するには、XML Query 要素を使用します。また、名前空間を無視するには、XML ElementPath で IgnoreNamespaces 属性を使用します。XML Query 要素の詳細については、「XML レポート データを指定するための XML クエリ構文」を参照してください。要素パスの構文の詳細については、「XML レポート データを指定するための要素パス構文」を参照してください。 |
XML Web サービスのデータを取得するための要件
これらは XML データ処理拡張機能では検出されません。そのため、必要なデータを取得する SOAP メソッドを検索するための、なんらかの手段が必要です。また、Web サービスがそのデータに対して使用するアドレス指定スキームや名前空間を把握しておく必要もあります。
XML ドキュメントのデータを取得するための要件
サーバーから HTTP プロトコルを使って XML データを取得するか、XML データを XML Query 要素に埋め込む必要があります。XML ドキュメントを HTTP プロトコルを使って直接参照する場合、拡張子を .xml にする必要があります。必要なすべてのデータを取得するための XML クエリの作成方法を理解しておく必要があります。要素パスを指定しない場合、XML ドキュメントを解析するときの既定の動作では、XML ドキュメントのリーフノード コレクションへの使用可能な最初のパスが選択されます。XML ドキュメントに他の兄弟リーフノード コレクションへのパスが含まれている場合、クエリでパスを指定しない限り、それらのノードは無視されます。詳細については、「XML レポート データを指定するための要素パス構文」を参照してください。