Применение преобразований к выводу XML
Изменения: 12 декабря 2006 г.
Модуль подготовки XML-отчета можно использовать для создания XML-файлов, сформированных в процессе экспортирования отчета во время работы. Полученные в результате XML-файлы можно впоследствии преобразовать почти в любой формат при помощи преобразований XSL Transformations (XSLT). Модуль подготовки отчетов в формате XML вместе с XSL-преобразованиями позволяет получать форматы, не поддерживаемые существующими модулями подготовки отчетов.
Существует три типичных сценария, в которых можно использовать XSL-преобразования.
- Передача данных Можно преобразовать XML-вывод служб Reporting Services в другой формат XML, доступный для чтения другим приложением.
- Подготовка в виде текста Можно преобразовать отчет в XML-формате в обычный текстовый файл. В зависимости от данных отчета, можно обнаружить, что специальные символы (например символ амперсанда) преобразуются в HTML-формате (например &). Чтобы избежать кодирования специальных символов в формат HTML, добавьте в XSLT-файл следующий атрибут метода:
<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
. - Подготовка в виде HTML Из отчета в XML-формате можно создавать HTML-документы или документы других типов.
Структура XML-документа, создаваемого модулем подготовки в формате XML, зависит от конкретного отчета. Поэтому пользовательское XSL-преобразование также должно соответствовать конкретному отчету.
Примечание. |
---|
По соображениям безопасности службы Reporting Services не поддерживают XSL-преобразования с внедренным кодом на языке Microsoft Visual Basic. |
Примеры
Следующий XSL-код (при сохранении его в файле и передаче на сервер отчетов) можно использовать для преобразования образца отчета «Каталог продуктов» в неформатированный список моделей продуктов.
<?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>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Report">
<xsl:for-each select="ProductTable/ProductTable_Group1_Collection/ProductTable_Group1">
<xsl:text>
</xsl:text>
<xsl:value-of select="@Category"/>
<xsl:for-each select="ProductTable_Group2_Collection/ProductTable_Group2">
<xsl:text>
 </xsl:text>
<xsl:value-of select="@SubCategory"/>
<xsl:for-each select="ProductTable_Group3_Collection/ProductTable_Group3">
<xsl:text>
 </xsl:text>
<xsl:value-of select="@Model"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
Чтобы преобразовать образец отчета, можно использовать настройки сведений об устройстве в URL-адресе, применяемом для выполнения отчета. Например, следующий URL-адрес выполняет отчет, применяет преобразование и выводит файл с расширением TXT. В этом примере предполагается, что XSL-код из предыдущего примера сохранен с именем ProductModels.xsl в той же папке на сервере отчетов, что и отчет «Каталог продуктов».
https://localhost/reportserver?/AdventureWorks%20Sample%20Reports/Product+Catalog&rs:Command=Render&rs:Format=XML&rc:OmitSchema=True&rc:FileExtension=txt&rc:XSLT=ProductModels.xsl
Преобразовывать XML-отчеты с помощью XSL-преобразований можно не только с помощью служб Reporting Services. Имеется возможность получить XML-документ с сервера отчетов и выполнить над ним XSL-преобразование в пользовательском приложении.
Примечание. |
---|
XSL-файл, использованный в этом примере, относится к образцу отчета «Каталог продуктов». Если использовать другой отчет или изменить отчет «Каталог продуктов», то файл может быть преобразован неправильно. |
См. также
Основные понятия
Экспорт отчетов
Определение наборов данных отчета для XML-данных
Конструирование для выходных данных в XML-формате
Другие ресурсы
Using a URL to Access Report Server Items
Образцы отчетов AdventureWorks
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
12 декабря 2006 г. |
|
5 декабря 2005 г. |
|