次の方法で共有


XML 出力に対する変換の適用

更新 : 2006 年 12 月 12 日

XML 表示拡張機能を使用すると、レポートのエクスポート操作中に作成される XML ファイルを実行時に生成できます。生成された XML ファイルは、その後、XSL 変換 (XSLT) を使用してほぼすべての形式に変換できます。XML 表示拡張機能と XSLT を使用すると、既存の表示拡張機能ではサポートされていない形式を生成できます。

XSLT が使用される 3 つの一般的なシナリオを以下に示します。

  • データ転送   Reporting Services の XML 出力を、別のアプリケーションからも読み取ることができる別の XML 形式に変換できます。
  • テキスト表示   XML レポートをプレーン テキスト形式のファイルに変換できます。レポート データによっては、アンパサンドなどの特殊文字が HTML エンコード形式 (&amp; など) で表示されることがあります。特殊文字の HTML エンコードを避けるには、XSLT ファイルにメソッドの属性 <xsl:output method="text" encoding="utf-8" media-type="text/plain"/> を追加します。
  • HTML 表示   HTML などのドキュメントを XML レポートから作成できます。

XML 表示拡張機能で生成した XML は、生成元のレポートに固有のものです。そのため、そのレポートに固有の XSL 変換を記述する必要があります。

ms159716.note(ja-jp,SQL.90).gifメモ :
Reporting Services では、セキュリティ上の理由から、Microsoft Visual Basic コードを埋め込んだ XSL 変換をサポートしていません。

次の XSL をファイルに保存してレポート サーバーにアップロードすると、そのファイルを使用して、Product Catalog サンプル レポートをプレーン テキストの製品モデル一覧に変換することができます。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
<xsl:strip-space elements="*"/> 

<xsl:template match="/">
  <xsl:text>Product Models</xsl:text>
  <xsl:text>&#xD;&#xA;</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="Report">
  <xsl:for-each select="ProductTable/ProductTable_Group1_Collection/ProductTable_Group1">
    <xsl:text>&#xD;&#xA;</xsl:text>
    <xsl:value-of select="@Category"/>
    <xsl:for-each select="ProductTable_Group2_Collection/ProductTable_Group2">
      <xsl:text>&#xD;&#xA;    </xsl:text>
      <xsl:value-of select="@SubCategory"/>
      <xsl:for-each select="ProductTable_Group3_Collection/ProductTable_Group3">
        <xsl:text>&#xD;&#xA;        </xsl:text>
        <xsl:value-of select="@Model"/>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:for-each>
  <xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>

サンプル レポートを変換するため、レポートの実行に使用する URL でデバイス情報の設定を使用できます。たとえば、次の URL は、レポートを実行し、変換を適用して、.txt 拡張子の付いたファイルを出力します。この例では、レポート サーバーの Product Catalog レポートと同じフォルダに、先ほどの例の XSL を ProductModels.xsl という名前で保存してあることを想定しています。

https://localhost/reportserver?/AdventureWorks%20Sample%20Reports/Product+Catalog&rs:Command=Render&rs:Format=XML&rc:OmitSchema=True&rc:FileExtension=txt&rc:XSLT=ProductModels.xsl

XSLT を使用して XML レポートを変換する際に、必ずしも Reporting Services を使用する必要はありません。レポート サーバーから XML を取得し、独自のアプリケーションを使用して XSLT を適用することもできます。

ms159716.note(ja-jp,SQL.90).gifメモ :
この例で使用する XSL ファイルは、Product Catalog サンプル レポートに固有のものです。別のレポートを使用した場合、または Product Catalog レポートを変更した場合は、ファイルが正しく変換されないことがあります。

参照

概念

レポートのエクスポート
レポート データセットの定義 (XML データ)
XML 出力のデザイン

その他の技術情報

URL を使用したレポート サーバー アイテムへのアクセス
AdventureWorks サンプル レポート

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • xml 表示コマンドの既定のサンプル パスを修正しました。

2005 年 12 月 5 日

新しい内容 :
  • テキスト表示についての注意