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&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 デバイス情報設定」を参照してください。