Partager via


Création de fichiers XSLT

Pour mettre en forme les notifications, le module de formatage de contenu utilise un ou plusieurs fichiers XSLT par classe de notification. Vous définissez les fichiers XSLT pour transformer les données XML intermédiaires pour chaque notification dans un message mis en forme.

Données XML intermédiaires

Pour chaque notification, le distributeur convertit la notification brute en document XML. Pour toutes les notifications autres que du type digest, le document XML ressemble à ceci :

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

Les noms des éléments à l'intérieur d'un élément de notification reflètent les noms des champs de notification, tels qu'ils sont spécifiés dans la définition d'application, et leurs valeurs sont celles des champs de notification. Les donnée de notification sont composées des champs de notification provenant de la table de notifications, ainsi que des champs de notification calculés.

Le distributeur peut par exemple produire le document XML suivant pour une notification boursière :

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

Pour un notification de type digest, des éléments de notification supplémentaire sont ajoutés au schéma :

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

Toutes les valeurs dans le XML intermédiaire sont des chaînes, et il n'y a aucune garantie sur l'ordre des champs de notification dans le XML.

Toutes les valeurs de champ dans le XML intermédiaire qui représentent une date ou un nombre figurent dans la forme adaptée aux paramètres régionaux de la notification. Par exemple, une date pour des paramètres régionaux EN-US est au format MM/JJ/AAAA alors qu'une date pour des paramètres régionaux Japanese-Japan est au format AAAA/MM/JJ. Il incombe au développeur d'application d'effectuer toutes les traductions ou transformations supplémentaires sur les contenus de notification.

Transformations XSL

Notification Services ne valide pas votre fichier XSLT ni n'applique de restrictions sur les transformations. Votre transformation doit produire du XML valide ou du texte brut. Toutefois, avec ces deux options vous pouvez produire presque tous les types de documents.

Si vous voulez produire un document HTML pour les données de notification ci-dessus, vous pouvez créer la transformation XSL suivante :

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

Production de texte brut

Par défaut le module XSLT de formatage de contenu produit du XML valide. Par conséquent, il écrit les caractères suivants sous la forme de leurs références d'entité : > (&gt;), < (&lt;), ' (&apos;), " (&quot;) et & (&amp;).

Vous pouvez configurer le module de formatage pour qu'il génère une sortie texte si vous incluez l'élément xsl:output dans votre fichier XSLT. L'exemple suivant est une transformation XSL qui renvoie le contenu exact qui lui a été envoyé, sans effectuer aucune transformation.

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

Conseils XSLT

Les conseils suivants peuvent vous aider à développer votre fichier XSLT.

  • Le code suivant montre comment créer un fichier XSLT qui renvoie simplement le document XML intermédiaire que le distributeur génère à partir des données brutes de notification. En utilisant cette transformation, le module de formatage de contenu ne réalise en réalité aucune transformation et transmet simplement directement les données brutes de notification. L'utilisation de cette transformation directe peut vous aider à vérifier le document XML et à utiliser vos outils de développement favoris pour créer les fichiers 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>
    
  • Utilisez l'attribut de indent de l'élément xsl:output pour créer automatiquement un retrait dans XML :

    <xsl:output method="xml" indent="yes"/>
    
  • Si les données d'événements contiennent des références d'entités ou des fragments XML, définissez l'attribut DisableEscaping du module de formatage de contenu sur la valeur true, de sorte que le module ne transforme pas trop les données (par exemple, en convertissant &amp; en &amp;amp;). Pour plus d'informations sur l'attribut DisableEscaping, consultez Définition du module XSLT de formatage de contenu.

  • Si les données d'événements contiennent des caractères réservés (par exemple, &), définissez l'attribut DisableEscaping du module de formatage de contenu sur la valeur false, de sorte que le module convertisse les caractères réservés en XML valide avant la transformation définitive. Pour plus d'informations, consultez XML Reserved Characters.

Voir aussi

Concepts

Emplacement des fichiers XSLT
Définition du module XSLT de formatage de contenu
Configuration des modules de formatage de contenu

Autres ressources

Définition des classes de notification
Définition des applications Notification Services

Aide et Informations

Assistance sur SQL Server 2005