Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для форматирования уведомлений модуль форматирования данных использует один или несколько файлов XSLT для каждого класса уведомлений. Файлы XSLT определяются для преобразования промежуточных XML-данных для каждого уведомления в форматированное сообщение.
Промежуточные XML-данные
Для каждого уведомления распространитель преобразует необработанные данные в XML-документ. Для всех уведомлений, за исключением сводных, этот XML-документ выглядит следующим образом:
<notifications>
<notification>
<FieldName>value</FieldName>
<FieldName>value</FieldName>
...
</notification>
</notifications>
Имена элементов в элементе notification отражают имена полей уведомления, заданных в определении приложения, а их значения равны значениям полей уведомления. Данные уведомления состоят из полей уведомления из таблицы уведомлений, а также из вычисляемых полей уведомления.
Например, распространитель может создать следующий XML-документ для уведомления об акциях:
<notifications>
<notification>
<StockSymbol>AWKS</StockSymbol>
<StockPrice>55.02</StockPrice>
</notification>
</notifications>
Для сводного уведомления к схеме добавляются дополнительные элементы notification:
<notifications>
<notification>
<FieldName>value</FieldName>
...
</notification>
<notification>
<FieldName>value</FieldName>
...
</notification>
</notifications>
Все значения в промежуточном XML-документе являются строками, а жесткий порядок следования полей уведомления в XML-документе отсутствует.
Значение любого поля в промежуточном XML-документе, представляющего дату или число, представлено в форме, соответствующей языковому стандарту уведомления. Например, дата для языкового стандарта «Английский (США)» имеет формат ММ/ДД/ГГГГ, в то время как дата для языкового стандарта «Японский (Япония)» имеет формат ГГГГ/ММ/ДД. Любые дополнительные переводы или преобразования содержимого полей уведомления остаются на усмотрение разработчика приложения.
Преобразования XSL
Службы Notification Services не проверяют файл XSLT и не поддерживают никакие ограничения на преобразования. Преобразование должно создавать корректный XML-документ или простой текст. Однако с помощью этих двух параметров можно создать документ практически любого типа.
При необходимости создания документа HTML для вышеприведенных данных уведомления создается следующее преобразование 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>
Создание простого текста
По умолчанию модуль форматирования данных XSLT создает корректный XML-документ. В результате он записывает следующие символы в качестве ссылок на сущности: > (>), < (<), ' ('), " (") и & (&).
Можно настроить этот модуль форматирования на создание текстового выходного файла, если включить элемент xsl:output в файл XSLT. В следующем примере показано преобразование XSL, возвращающее точное содержимое, отправленное ему, не выполняя никаких преобразований:
<?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
Нижеприведенные рекомендации могут облегчить разработку файла XSLT.
В следующем коде показано создание файла XSLT, который просто возвращает промежуточный XML-документ, формируемый распространителем на основе необработанных данных уведомления. Используя это преобразование, модуль форматирования данных в реальности не выполняет преобразования и просто передает необработанные данные уведомления. Использование этого сквозного преобразования может облегчить проверку XML-документа и использование подходящих средств разработки для создания файлов 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>Используйте атрибут indent элемента xsl:output для автоматического структурирования XML-документа:
<xsl:output method="xml" indent="yes"/>Если данные события содержат ссылки на сущности или фрагменты XML-документа, то установите атрибут DisableEscaping модуля форматирования данных равным true, чтобы модуль форматирования данных не производил излишних преобразований данных (например, преобразования & в &amp;). Дополнительные сведения об атрибуте DisableEscaping см. в разделе Определение модуля форматирования данных XSLT.
Если данные события содержат зарезервированные символы (например, &), то установите атрибут DisableEscaping модуля форматирования данных равным false, чтобы модуль форматирования данных преобразовывал зарезервированные символы в корректный XML-документ перед окончательным преобразованием. Дополнительные сведения см. в разделе XML Reserved Characters.
См. также
Основные понятия
Местоположения XSLT-файлов
Определение модуля форматирования данных XSLT
Настройка модулей форматирования данных
Другие ресурсы
Определение классов уведомлений
Определение приложений служб Notification Services