XML へのエクスポート (レポート ビルダー 3.0 および SSRS)
XML 表示拡張機能では、レポートが XML 形式で返されます。レポート XML のスキーマは、レポート固有のものであり、データのみを含んでいます。XML 表示拡張機能では、レイアウト情報はレンダリングされません。また、改ページ位置も維持されません。この拡張機能で生成された XML は、データベースにインポートしたり、XML データ メッセージとして使用したり、カスタム アプリケーションに送信することができます。
注 |
---|
レポート定義 (.rdl) は、Business Intelligence Development Studio のレポート ビルダー 3.0 およびレポート デザイナーで作成および変更できます。これらの作成環境では、レポートおよび関連アイテムの作成方法、開く方法、および保存方法が異なります。詳細については、microsoft.com Web サイトの「レポート デザイナーとレポート ビルダー 3.0 でのレポートのデザイン (SSRS)」を参照してください。 |
この記事の内容
レポート アイテム
データ型
XML 固有の表示規則
カスタム形式および XSL 変換
重複する名前
XSLT 変換
デバイス情報設定
レポート アイテム
次の表で、レポート アイテムがどのように表示されるかについて説明します。
アイテム |
表示動作 |
---|---|
レポート |
XML ドキュメントのトップレベルの要素として表示されます。 |
データ領域 |
コンテナーの要素内部の要素として表示されます。データ領域には、データをテキストおよびグラフとして表示するテーブル、マトリックス、一覧、およびデータを視覚化するデータ バー、スパークライン、ゲージ、インジケーターが含まれます。 |
グループ セクションおよび詳細セクション |
各インスタンスにより、コンテナーの要素内部の要素として表示されます。 |
テキスト ボックス |
コンテナー内部の属性または要素として表示されます。 |
四角形 |
コンテナー内部の要素として表示されます。 |
マトリックスの列グループ |
行グループ内部の要素として表示されます。 |
マップ |
コンテナーの要素内部の要素として表示されます。マップ レイヤーはマップの子要素で、各マップ レイヤーにはそのマップ メンバーの要素とマップ メンバーの属性が含まれています。 |
グラフ |
コンテナーの要素内部の要素として表示されます。系列はグラフの子要素であり、カテゴリは系列の子要素です。それぞれのグラフ値にすべてのグラフ ラベルをレンダリングします。ラベルと値は属性として含まれています。 |
データ バー |
グラフと同様、コンテナーの要素内部の要素としてレンダリングされます。通常、データ バーには値のみが含まれ、階層またはラベルは含まれません。 |
スパークライン |
グラフと同様、コンテナーの要素内部の要素としてレンダリングされます。通常、スパークラインには値のみが含まれ、階層またはラベルは含まれません。 |
ゲージ |
コンテナーの要素内部の要素として表示されます。スケールの最小値/最大値、範囲の開始値/終了値、および属性としてポインターの値を含む単一の要素としてレンダリングします。 |
インジケーター |
ゲージと同様、コンテナーの要素内部の要素としてレンダリングされます。アクティブな状態名、使用可能な状態、およびデータ値を属性として持つ単一の要素としてレンダリングされます。 |
また、XML 表示拡張機能を使用してレンダリングされるレポートには、以下の規則があります。
XML 要素および XML 属性は、レポート定義に出現する順序で表示されます。
ページ割り当ては無視されます。
ページのヘッダーおよびフッターはレンダリングされません。
表示/非表示を切り替えても表示できない非表示アイテムはレンダリングされません。最初に表示されているアイテムと、表示/非表示を切り替えると表示できる非表示アイテムは表示されます。
画像、線、およびカスタム レポート アイテムは無視されます。
トップに戻る
データ型
テキスト ボックスの要素または属性には、テキスト ボックスに表示される値に基づいた XSD データ型が割り当てられます。
テキスト ボックスの値 |
割り当てられるデータ型 |
---|---|
Int16, Int32, Int64, UInt16, UInt32, UInt64, Byte, SByte |
xsd:integer |
Decimal (または Decimal と任意の整数かバイト データ型) |
xsd:decimal |
Float (または Decimal と任意の整数かバイト データ型) |
xsd:float |
Double (または Decimal と任意の整数かバイト データ型) |
xsd:double |
DateTime or DateTime Offset |
xsd:dateTime |
Time |
xsd:string |
Boolean |
xsd:boolean |
String,Char |
xsd:string |
その他 |
xsd:string |
トップに戻る
XML 固有の表示規則
次のセクションでは、レポート内のアイテムが XML 表示拡張機能によってどのように解釈されるかについて説明します。
レポート本文
レポートは、XML ドキュメントのルート要素としてレンダリングされます。要素の名前は、プロパティ ペインで設定された DataElementName プロパティから取得されます。
レポート要素には、XML 名前空間の定義とスキーマ参照属性も含まれます。以下の例では、変数が太字で示されています。
<Report xmlns=”SchemaName” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”SchemaNameReportURL&rc%3aSchema=true” Name=”ReportName”>
それぞれの変数の値は次のとおりです。
名前 |
値 |
---|---|
レポート |
Report.DataElementName |
ReportURL |
サーバー上のレポートに対する絶対 URL です。URL エンコードされます。 |
SchemaName |
Report.SchemaName。NULL の場合は、Report.Name になります。Report.Name が使用された場合、まず XmlConvert.EncodeLocalName でエンコードされます。 |
ReportName |
レポートの名前です。 |
テキスト ボックス
テキスト ボックスは、DataElementStyle RDL プロパティに応じて、要素または属性としてレンダリングされます。要素または属性の名前は、TextBox.DataElementName RDL プロパティから取得されます。
グラフ、データ バー、およびスパークライン
グラフ、データ バー、およびスパークラインは XML でレンダリングされます。データは構造化されます。
ゲージとインジケーター
ゲージとインジケーターは XML でレンダリングされます。データは構造化されます。
サブレポート
サブレポートは要素としてレンダリングされます。要素名は DataElementName RDL プロパティから取得されます。レポートの TextBoxesAsElements プロパティ設定は、サブレポートのプロパティ設定に優先します。サブレポート要素に名前空間および XSLT 属性は追加されません。
四角形
四角形は要素としてレンダリングされます。要素名は DataElementName RDL プロパティから取得されます。
カスタム レポート アイテム
表示拡張機能は、CustomReportItems (CRI) を認識しません。レポートにカスタム レポート アイテムが存在した場合は、標準的なレポート アイテムとしてレンダリングされます。
画像
画像はレンダリングされません。
線
線はレンダリングされません。
トップに戻る
テーブル、マトリックス、および一覧
テーブル、マトリックス、および一覧は要素としてレンダリングされます。要素の名前は、Tablix の DataElementName RDL プロパティから取得されます。
行および列
列は行内にレンダリングされます。
Tablix のコーナー
コーナーはレンダリングされません。レンダリングされるのは、コーナーの内容のみです。
Tablix セル
Tablix セルは、要素としてレンダリングされます。要素名は、セルの DataElementName RDL プロパティから取得されます。
自動集計
Tablix 自動集計はレンダリングされません。
グループ単位で繰り返し表示されることのない行アイテムと列アイテム
ラベル、小計、合計など、グループ単位で繰り返し表示されることのないアイテムは、要素としてレンダリングされます。要素の名前は TablixMember.DataElementName RDL プロパティから取得されます。
TablixMember.DataElementOutput RDL プロパティによって、非繰り返しアイテムがレンダリングされるかどうかが制御されます。
Tablix メンバーの DataElementName プロパティが設定されていなかった場合は、非繰り返しアイテムの名前が、次の形式で動的に生成されます。
RowX – 非繰り返し行の場合 (X は、現在の親内の 0 から始まる行インデックス)。
ColumnY – 非繰り返し列の場合 (Y は、現在の親内の 0 から始まる列インデックス)。
非繰り返しヘッダーは、グループ単位で繰り返し表示されることのない行または列の子としてレンダリングされます。
非繰り返しメンバーに対応する Tablix セルが存在しない場合、そのメンバーはレンダリングされません。このようなケースとしては、複数の列にまたがる Tablix セルなどが考えられます。
グループ単位で繰り返し表示される行と列
グループ単位で繰り返し表示される行および列は、Tablix.DataElementOutput の規則に従ってレンダリングされます。要素名は DataElementName プロパティから取得されます。
グループ内の一意の値は、それぞれ、そのグループの子要素としてレンダリングされます。要素名は Group.DataElementName プロパティから取得されます。
DataElementOutput プロパティの値が Output と等しい場合、繰り返しアイテムのヘッダーが、detail 要素の子としてレンダリングされます。
トップに戻る
カスタム形式および XSL 変換
XML 表示拡張機能で生成した XML ファイルは、XSL 変換 (XSLT) を使用してほとんどすべての形式に変換できます。この機能を使用すると、既存の表示拡張機能ではサポートされていない形式でデータを生成できます。独自の表示拡張機能の作成を試みる前に、XML 表示拡張機能および XSLT を使用することを検討してください。
トップに戻る
重複する名前
同じスコープ内に重複するデータ要素名が存在する場合、レンダラーからエラー メッセージが表示されます。
トップに戻る
XSLT 変換
XML レンダラーでは、元の XML データに対し、サーバー側で XSLT 変換を適用できます。XSLT が適用された場合、元の XML データの代わりに、変換済みのコンテンツが出力されます。変換はクライアント側ではなく、サーバー側で実行されます。
出力結果に適用する XSLT は、レポート定義ファイル内で、レポートの DataTransform プロパティまたは XSLT の DeviceInfo パラメーターで定義します。いずれかの値が設定されている場合、XML レンダラーを使用するたびに変換が実行されます。サブスクリプションを使用する場合は、RDL DataTransform プロパティで XSLT を定義する必要があります。
DataTransform 定義プロパティおよびデバイス情報設定の両方で XSLT ファイルを指定した場合は、最初に DataTransform で指定された XSLT が適用され、続けて、デバイス情報設定による XSLT が適用されます。
トップに戻る
デバイス情報設定
デバイス情報設定を変更することによって、このレンダラーの既定の設定の一部を変更することができます。変更できる設定には、次のようなものがあります。
XML に適用する変換 (XSLT)
XML ドキュメントの MIME の種類
データに書式文字列を適用するかどうか
XML 出力をインデントするかどうか
XML スキーマ名を含めるかどうか
XML ドキュメントのエンコード
XML ドキュメントのファイル拡張子
詳細については、「XML デバイス情報設定」を参照してください。
トップに戻る