XML へのエクスポート

XML 表示拡張機能では、レポートが XML 形式で返されます。レポート XML のスキーマは、レポート固有のものであり、データのみを含んでいます。XML 表示拡張機能では、レイアウト情報はレンダリングされません。また、改ページ位置も維持されません。この拡張機能で生成された XML は、データベースにインポートしたり、XML データ メッセージとして使用したり、カスタム アプリケーションに送信することができます。

次の表で、レポート アイテムがどのように表示されるかについて説明します。

アイテム

表示動作

レポート

XML ドキュメントのトップレベルの要素として表示されます。

データ領域

コンテナの要素内部の要素として表示されます。

グループ セクションおよび詳細セクション

各インスタンスにより、コンテナの要素内部の要素として表示されます。

テキスト ボックス

コンテナ内部の属性または要素として表示されます。

四角形

コンテナ内部の要素として表示されます。

マトリックスの列グループ

行グループ内部の要素として表示されます。

また、XML 表示拡張機能を使用してレンダリングされるレポートには、以下の規則があります。

  • XML 要素および XML 属性は、レポート定義に出現する順序で表示されます。

  • ページ割り当ては無視されます。

  • ページのヘッダーおよびフッターはレンダリングされません。

  • 表示/非表示を切り替えても表示できない非表示アイテムはレンダリングされません。最初に表示されているアイテムと、表示/非表示を切り替えると表示できる非表示アイテムは表示されます。

  • Images, lines, and custom report itemsは無視されます。

データ型

テキスト ボックスの要素または属性には、テキスト ボックスに表示される値に基づいた 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&amp;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 でレンダリングされます。グラフ データは構造化されます。

サブレポート

サブレポートは要素としてレンダリングされます。要素名は 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 ドキュメントのファイル拡張子

詳細については、「Reporting Services デバイス情報設定」を参照してください。