Erstellen von XSLT-Dateien
Zum Formatieren von Benachrichtigungen verwendet der Inhaltsformatierer mindestens eine XSLT-Datei pro Benachrichtigungsklasse. Sie definieren die XSLT-Dateien zum Transformieren der XML-Zwischendaten für jede Benachrichtigung in eine formatierte Nachricht.
XML-Zwischendaten
Für jede Benachrichtigung konvertiert der Verteiler die unformatierte Benachrichtigung in ein XML-Dokument. Für alle Benachrichtigungen außer Digests sieht das XML-Dokument wie folgt aus:
<notifications>
<notification>
<FieldName>value</FieldName>
<FieldName>value</FieldName>
...
</notification>
</notifications>
Die Namen der Elemente innerhalb eines notification-Elements geben die Namen der in der Anwendungsdefinition angegebenen Benachrichtigungsfelder wieder, und ihre Werte entsprechen den Werten der Benachrichtigungsfelder. Die Benachrichtigungsdaten bestehen aus den Benachrichtigungsfeldern aus der Benachrichtigungstabelle sowie aus berechneten Benachrichtigungsfeldern.
Beispielsweise erstellt der Verteiler möglicherweise das folgende XML-Dokument für eine Aktienbenachrichtigung:
<notifications>
<notification>
<StockSymbol>AWKS</StockSymbol>
<StockPrice>55.02</StockPrice>
</notification>
</notifications>
Für eine Digestbenachrichtigung werden dem Schema zusätzliche notification-Elemente hinzugefügt:
<notifications>
<notification>
<FieldName>value</FieldName>
...
</notification>
<notification>
<FieldName>value</FieldName>
...
</notification>
</notifications>
Alle Werte in den XML-Zwischendaten sind Zeichenfolgen, und es gibt keine Garantie für die Reihenfolge der Benachrichtigungsfelder innerhalb des XML-Codes.
Jeder Feldwert in den XML-Zwischendaten, der ein Datum oder eine Zahl darstellt, befindet sich in der für das Gebietsschema der Benachrichtigung geeigneten Form. Beispielsweise liegt ein Datum für das Gebietsschema Deutsch (Deutschland) im Format DD/MM/YYYY vor, wohingegen ein Datum für das Gebietsschema Japanisch (Japan) im Format YYYY/MM/DD vorliegt. Es liegt in der Verantwortung des Anwendungsentwicklers, zusätzliche Übersetzungen oder Transformationen für die Benachrichtigungsinhalte auszuführen.
XSL-Transformationen
Notification Services überprüft die XSLT-Datei nicht und erzwingt keine Einschränkungen der Transformationen. Die Transformation muss gültigen XML-Code oder Nur-Text erstellen. Mit diesen beiden Optionen können Sie jedoch fast jeden Dokumenttyp erstellen.
Wenn Sie ein HTML-Dokument für die obigen Benachrichtigungsdaten erstellen möchten, können Sie die folgende XSL-Transformation erstellen:
<?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>
Erstellen von Nur-Text
Der XSLT-Inhaltsformatierer erstellt standardmäßig gültigen XML-Code. Daher schreibt er die folgenden Zeichen als die entsprechenden Entitätsverweise: > (>) < (<) ' ('), " (") und & (&).
Sie können den Formatierer so konfigurieren, dass er Textausgabe erstellt, wenn Sie das xsl:output-Element in die XSLT-Datei einschließen. Bei dem folgenden Beispiel handelt es sich um eine XSL-Transformation, die den genauen Inhalt zurückgibt, der an sie gesendet wird, ohne Transformationen durchzuführen.
<?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's Notifications:
<xsl:copy-of select = "." />
</xsl:template>
</xsl:stylesheet>
XSLT-Tipps
Die folgenden Tipps können Sie beim Entwickeln der XSLT-Datei unterstützen.
Der folgende Code zeigt, wie eine XSLT-Datei erstellt wird, die nur das XML-Zwischendokument zurückgibt, das der Verteiler aus den unformatierten Benachrichtigungsdaten generiert. Wenn der Inhaltsformatierer diese Transformation verwendet, führt er in Wirklichkeit keine Transformation aus und reicht die unformatierten Benachrichtigungsdaten einfach durch. Das Verwenden dieser Pass-Through-Transformation kann Sie dabei unterstützen, das XML-Dokument zu überprüfen und Ihre bevorzugten Entwicklungstools zum Erstellen von XSLT-Dateien zu verwenden:
<?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>
Verwenden Sie das indent-Attribut des xsl:output-Elements, um XML-Code automatisch einzurücken:
<xsl:output method="xml" indent="yes"/>
Wenn Ereignisdaten Entitätsverweise oder XML-Fragmente enthalten, legen Sie das DisableEscaping-Attribut des Inhaltsformatierers auf true fest, damit der Inhaltsformatierer die Daten nicht übermäßig transformiert (wie z. B. Konvertieren von & in &amp;). Weitere Informationen zum DisableEscaping-Attribut finden Sie unter Definieren des XSLT-Inhaltsformatierers.
Wenn die Ereignisdaten reservierte Zeichen (wie z. B. &) enthalten, legen Sie das DisableEscaping-Attribut des Inhaltsformatierers auf false fest, damit der Inhaltsformatierer reservierte Zeichen vor der endgültigen Transformation in gültigen XML-Code konvertiert. Weitere Informationen finden Sie unter XML Reserved Characters.
Siehe auch
Konzepte
XSLT-Dateispeicherorte
Definieren des XSLT-Inhaltsformatierers
Konfigurieren von Inhaltsformatierern
Andere Ressourcen
Definieren von Benachrichtigungsklassen
Definieren von Notification Services-Anwendungen