Crear archivos XSLT

Para aplicar formato a las notificaciones, el formateador de contenido usa uno o varios archivos XSLT por clase de notificación. Defina los archivos XSLT para convertir los datos intermedios XML para cada notificación en un mensaje con formato.

Datos XML intermedios

Para cada notificación, el distribuidor convierte la notificación sin formato en un documento XML. Para todas las notificaciones que no son implícitas, el documento XML tiene el siguiente aspecto:

<notifications>
    <notification>
        <FieldName>value</FieldName>
        <FieldName>value</FieldName>
        ...
    </notification>
</notifications>

Los nombres de los elementos dentro de un elemento de notificación reflejan los nombres de los campos de notificación, como se especifica en la definición de la aplicación, y sus valores son los valores de los campos de notificación. Los datos de la notificación constan de los campos de notificación de la tabla de notificaciones así como de los campos de notificación calculados.

Por ejemplo, el distribuidor podría producir el siguiente documento XML para una notificación estándar:

<notifications>
    <notification>
        <StockSymbol>AWKS</StockSymbol>
        <StockPrice>55.02</StockPrice>
    </notification>
</notifications>

Para una notificación implícita, los elementos notificación adicionales se agregan al esquema:

<notifications>
    <notification>
        <FieldName>value</FieldName>
        ...
    </notification>
    <notification>
        <FieldName>value</FieldName>
        ...
    </notification>
</notifications>

Todos los valores del XML intermedio son cadenas y no hay ninguna garantía acerca del orden de los campos de notificación dentro del XML.

Cualquier valor de campo del XML intermedio que representa una fecha o un número tiene el formato adecuado para la configuración regional de la notificación. Por ejemplo, una fecha para una configuración regional en inglés de Estados Unidos tiene el formato MM/DD/AAAA, mientras que una fecha para una configuración regional en japonés para Japón tiene el formato AAAA/MM/DD. Es decisión del programador de aplicaciones realizar cualquier conversión o transformación adicional en el contenido de la notificación.

Transformaciones XSL

Notification Services no valida su archivo XSLT ni aplica ninguna restricción a las transformaciones. Su transformación debe producir XML válido o texto sin formato. Sin embargo, con estas dos opciones puede producir casi cualquier tipo de documento.

Si desea producir un documento HTML para los datos de notificación anteriores, puede crear la siguiente transformación XSL:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="notifications">
    <html>
        <body>
            <xsl:apply-templates/>
            <i>Thank you for using SQL Server 
               Notification Services.</i>
        </body>
    </html>
    </xsl:template>
    <xsl:template match="notification">
        <b><xsl:value-of select="StockSymbol" /></b> 
            is now trading at: <b>
            $<xsl:value-of select="StockPrice" /></b><br/>
        <br/><br/>
    </xsl:template>
</xsl:stylesheet>

Producir texto sin formato

De forma predeterminada, el formateador de contenido XSLT produce XML válido. Como resultado, escribe los siguientes caracteres como sus referencias de entidad: > (&gt;), < (&lt;), ' (&apos;), " (&quot;) y & (&amp;).

Puede configurar el formateador para producir resultado de texto si incluye el elemento xsl:output en su archivo XSLT. El ejemplo siguiente es una transformación XSL que devuelve el contenido exacto enviado a la misma, sin realizar ninguna transformación.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
    <xsl:template match="*">
    Today&apos;s Notifications:
        <xsl:copy-of select = "." />
    </xsl:template>
</xsl:stylesheet>

Sugerencias de XSLT

Las siguientes sugerencias pueden ayudarle a desarrollar su archivo XSLT.

  • El código siguiente muestra cómo crear un archivo XSLT que sólo devuelve el documento XML intermedio que el distribuidor genera a partir de los datos de notificación sin formato. Utilizando esta transformación, el formateador de contenido no realiza en realidad ninguna transformación y simplemente pasa por los datos de notificaciones sin formato. El uso de esta transformación de paso a través puede ayudarle a comprobar el documento XML y a utilizar su herramientas de desarrollo favorita para crear archivos XSLT:

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="*">
        <xsl:copy-of select = "." />
    </xsl:template>
    </xsl:stylesheet>
    
  • Utilice el atributo indent del elemento xsl:output para aplicar sangría automáticamente a XML:

    <xsl:output method="xml" indent="yes"/>
    
  • Si el dato de eventos contiene referencias de entidad o fragmentos de XML, defina el atributo DisableEscaping del formateador de contenido como true para que el formateador de contenido no transforme excesivamente los datos (como convertir &amp; en &amp;amp;). Para obtener más información acerca del atributo DisableEscaping, vea Definir el formateador de contenido XSLT.

  • Si los datos del evento contienen caracteres reservados (como &), defina el atributo DisableEscaping del formateador de contenido como false para que el formateador de contenido convierta los caracteres reservados en XML válido antes de la transformación final. Para obtener más información, vea XML Reserved Characters.

Vea también

Conceptos

Ubicaciones de archivos XSLT
Definir el formateador de contenido XSLT
Configurar formateadores de contenido

Otros recursos

Definir clases de notificación
Definir aplicaciones de Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005