Application de transformations à une sortie XML

Mis à jour : 12 décembre 2006

Vous pouvez utiliser l'extension de rendu XML pour produire des fichiers XML qui sont créés lors des opérations d'exportation de rapports au moment de l'exécution. Le fichier XML résultant peut ensuite être transformé en n'importe quel format à l'aide de transformations XSL (XSLT). Vous pouvez utiliser l'extension de rendu XML et XSLT pour générer des formats qui ne sont pas pris en charge par les extensions de rendu existantes.

Il existe trois cas de figure courants pour lesquels vous pouvez utiliser XSLT :

  • Transfert de données   Vous transformez la sortie XML à partir de Reporting Services pour qu'elle s'affiche dans un autre format XML lisible par une autre application.
  • Rendu de texte   Vous transformez un rapport XML en simple fichier texte. Selon les données du rapport, les caractères spéciaux (par exemple le caractère « & ») peuvent être rendus dans un format codé HTML (par exemple, &amp;). Pour éviter le codage HTML des caractères spéciaux, ajoutez l'attribut de méthode suivant à votre fichier XSLT : <xsl:output method="text" encoding="utf-8" media-type="text/plain"/>.
  • Rendu HTML   Vous créez des documents en format HTML ou dans d'autres format à partir d'un rapport XML.

La sortie XML générée par l'extension de rendu XML est spécifique au rapport. Pour cette raison, la transformation XSL que vous écrivez doit être spécifique au rapport.

ms159716.note(fr-fr,SQL.90).gifRemarque :
Pour des raisons de sécurité, Reporting Services ne prend pas en charge les transformations XSL avec le code Microsoft Visual Basic incorporé.

Exemples

La sortie XSL suivante, lorsqu'elle est enregistrée dans un fichier puis téléchargée sur le serveur de rapports, peut être utilisée pour transformer l'exemple de rapport Product Catalog (Catalogue de produits) en liste de modèles de produits au format texte.

<?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>

Pour transformer l'exemple de rapport, vous pouvez utiliser les paramètres d'informations de périphérique dans l'URL utilisée pour exécuter le rapport. Par exemple, l'URL suivante exécute le rapport, applique la transformation, puis génère le fichier avec une extension .txt. Cet exemple s'appuie sur l'hypothèse que la sortie XSL de l'exemple précédent est stockée sous le nom ProductModels.xsl, dans le même dossier que le rapport Product Catalog sur le serveur de rapports.

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

L'utilisation de Reporting Services pour transformer un rapport XML à l'aide de XSLT ne fait l'objet d'aucune limitation. Vous pouvez également extraire le code XML à partir d'un serveur de rapports et appliquer XSLT à l'aide de votre propre application.

ms159716.note(fr-fr,SQL.90).gifRemarque :
Le fichier XSL utilisé dans cet exemple est spécifique à l'exemple de rapport Product Catalog. Si un autre rapport est utilisé ou si le rapport Product Catalog est modifié, il est possible que la transformation du fichier ne s'effectue pas correctement.

Voir aussi

Concepts

Exportation des rapports
Définition de datasets de rapport pour des données XML
Conception pour une sortie XML

Autres ressources

Using a URL to Access Report Server Items
Exemples de rapports AdventureWorks

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Contenu modifié :
  • Correction de l'exemple de chemin d'accès par défaut dans la commande de rendu xml.

5 décembre 2005

Nouveau contenu :
  • Avertissement à propos du rendu de texte.