Compartir a través de


Aplicar transformaciones a la salida con formato XML

Actualizado: 12 de diciembre de 2006

Puede utilizar la extensión de representación XML para producir archivos XML que se crean durante operaciones de exportación de informes en tiempo de ejecución. El archivo XML resultante puede transformarse después en prácticamente cualquier formato utilizando las transformaciones XSL (XSLT). Puede utilizar la extensión de representación en XML y XSLT para obtener formatos no admitidos por las extensiones de representación existentes.

Hay tres escenarios comunes en los que se utilizaría XSLT:

  • Transferencia de datos   Se puede transformar la salida con formato XML de Reporting Services en otro formato XML que se pueda leer en otra aplicación.
  • Representación en texto   Se puede transformar un informe XML en un archivo de texto sin formato. Dependiendo de los datos del informe, podría ocurrir que los caracteres especiales (como por ejemplo el carácter "y" comercial) se representen en un formato HTML codificado (p. ej., &amp;). Para impedir que los caracteres especiales se codifiquen en HTML, agregue el siguiente atributo de método al archivo XSLT: <xsl:output method="text" encoding="utf-8" media-type="text/plain"/>.
  • Representación en HTML   Se pueden crear documentos HTML o de otro tipo a partir de un informe XML.

El XML obtenido mediante la extensión de representación en XML es específico del informe. Por ello, la transformación XSL que escriba debe ser específica del informe.

[!NOTA] Por razones de seguridad, Reporting Services no admite transformaciones XSL con código de Microsoft Visual Basic incrustado.

Ejemplos

El siguiente XSL, después de ser guardado en un archivo y cargado en el servidor de informes, se puede utilizar para transformar el informe de ejemplo Product Catalog en una lista de modelos de productos en texto sin formato.

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

Para transformar el informe de ejemplo, se pueden utilizar los valores de configuración de información del dispositivo en la dirección URL utilizada para ejecutar el informe. Por ejemplo, la dirección URL siguiente ejecuta el informe, aplica la transformación y genera el archivo con extensión txt. En este ejemplo, se asume que el XSL del ejemplo anterior está guardado con el nombre ProductModels.xsl en la misma carpeta del servidor de informes que el informe Product Catalog.

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

No es obligatorio usar Reporting Services para transformar un informe XML mediante XSLT. También puede recuperar el XML del servidor de informes y aplicar las transformaciones XSLT por medio de su propia aplicación.

[!NOTA] El archivo XSL que se utiliza en este ejemplo es específico del informe de ejemplo Product Catalog. Si se usa un informe diferente o si se ha modificado el informe Product Catalog, es posible que el archivo no se transforme correctamente.

Vea también

Conceptos

Exportar informes
Definir conjuntos de datos de informe para datos XML
Crear un diseño para mostrar los resultados con formato XML

Otros recursos

Using a URL to Access Report Server Items
Ejemplos de informes de AdventureWorks

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido modificado:
  • Se ha corregido la ruta de acceso predeterminada de ejemplo en el comando de representación XML.

5 de diciembre de 2005

Contenido nuevo:
  • Aviso de representación de texto.