XslTransform Класс

Определение

Внимание

This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202

Преобразует XML-данные с помощью расширяемого языка таблицы стилей для преобразований (XSLT).

public ref class XslTransform sealed
public sealed class XslTransform
[System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class XslTransform
type XslTransform = class
[<System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
type XslTransform = class
Public NotInheritable Class XslTransform
Наследование
XslTransform
Атрибуты

Комментарии

Note

Класс XslTransform устарел в Microsoft .NET Framework версии 2.0. Класс XslCompiledTransform — это новый процессор XSLT. Дополнительные сведения см. в разделе "Использование класса XslCompiledTransform и миграция из класса XslTransform".

XslTransform поддерживает синтаксис XSLT 1.0. Таблица стилей XSLT должна использовать пространство http://www.w3.org/1999/XSL/Transformимен.

Дополнительные аргументы также можно добавить в таблицу стилей XsltArgumentList с помощью класса. Этот класс содержит входные параметры для объектов таблицы стилей и расширений, которые можно вызвать из таблицы стилей.

Преобразование XML-данных:

  1. Создайте объект XslTransform.

  2. Load Используйте метод для загрузки таблицы стилей для преобразования. Этот метод имеет несколько перегрузок и может загружать таблицу стилей с помощью XmlReaderurl-адреса XPathNavigatorIXPathNavigableили URL-адреса с расположением файла.

  3. Transform Используйте метод для преобразования XML-данных. Этот метод имеет несколько перегрузок и может обрабатывать различные типы входных и выходных данных. Кроме того, можно указать XsltArgumentList содержащие дополнительные аргументы для использования в качестве входных данных во время преобразования.

Вопросы безопасности

При создании приложения, использующего XslTransform класс, следует учитывать следующие элементы и их последствия:

  • Объекты расширения включены по умолчанию. XsltArgumentList Если объект, содержащий объекты расширения, передается методуTransform, они используются.

  • Таблицы стилей XSLT могут содержать ссылки на другие файлы и внедренные блоки скриптов. Злоумышленник может воспользоваться этим, предоставив вам данные или таблицы стилей, которые при выполнении приведет к обработке системы до тех пор, пока компьютер не будет работать с ресурсами.

  • Приложения XSLT, выполняемые в среде с перемешанным уровнем доверия, могут привести к спуфингу таблицы стилей. Например, злоумышленник может загрузить объект с вредной таблицей стилей и передать его другому пользователю, который впоследствии вызывает Transform метод и выполняет преобразование.

Эти проблемы безопасности можно устранить, не принимая XslTransform объекты, таблицы стилей XSLT или данные источника XML из ненадежных источников.

Поддержка сценариев

Этот класс поддерживает внедренные скрипты с помощью msxsl:script элемента.

В версии 1.1 платформы .NET Framework доказательства таблицы стилей определяют, какие разрешения предоставляются внедренным скриптам.

  • Если таблица стилей была загружена из универсального идентификатора ресурса (URI), URI используется для создания доказательств. Эти доказательства включают универсальный код ресурса (URI) вместе с его сайтом и зоной.

  • Если таблица стилей была загружена с помощью другого источника, можно предоставить доказательства, передав System.Security.Policy.Evidence объект в Load метод. В противном случае сборка скрипта имеет полное доверие.

Полунадежные вызывающие абоненты: UnmanagedCode для компиляции внедренного скрипта требуется разрешение. ControlEvidence Для предоставления EvidenceLoad метода требуется разрешение. Вызывается, SecurityException если вызывающий объект не имеет необходимых разрешений. Дополнительные сведения см. в System.Security.Permissions.SecurityPermission и System.Security.Permissions.SecurityPermissionFlag.

Элемент msxsl:script имеет следующие требования:

  • Элемент msxsl:script принадлежит пространству urn:schemas-microsoft-com:xslt имен. Таблица стилей должна содержать объявление xmlns:msxsl=urn:schemas-microsoft-com:xsltпространства имен.

  • Элемент msxsl:script может включать атрибут, указывающий используемый language язык скриптов. Значение атрибута language должно быть одним из следующих: C#, CSharp, VB, VisualBasic, JScript или JavaScript. Так как имя языка не учитывает регистр, JavaScript и javascript являются допустимыми. language Если атрибут не указан, по умолчанию используется JScript.

  • Элемент msxsl:script должен содержать implements-prefix атрибут, содержащий префикс, представляющий пространство имен, связанное с блоком скрипта. Это пространство имен должно быть определено в таблице стилей. Таблица стилей может включать несколько блоков скриптов, сгруппированных по пространству имен. В одном пространстве имен нельзя использовать блоки скриптов с несколькими языками. Блоки скриптов могут вызывать функцию, определенную в другом блоке скриптов, если блоки скриптов находятся в одном пространстве имен. Содержимое блока скрипта анализируется в соответствии с правилами и синтаксисом языка сценариев (предоставленным language атрибутом). Например, если у вас есть блок скрипта C#, комментарии будут префиксированы // символами. Примечания должны быть допустимыми XML-содержимым.

Note

Рекомендуется упаковать блоки скриптов в раздел CDATA.

<msxsl:script implements-prefix='xy' language='C#'>  
 <![CDATA[  
 // Add code here.  
 ]]>
</msxsl:script>  

Функции можно объявить в элементе msxsl:script . В следующей таблице показаны пространства имен, поддерживаемые по умолчанию.

Поддерживаемые пространства имен Description
System Системные классы.
System.Collection Классы коллекции.
System.Text Классы обработки текста.
System.Xml Основные классы XML.
System.Xml.Xsl Классы XSLT.
System.Xml.XPath Классы языка XML-пути (XPath).

Указанные аргументы и возвращаемые значения, определенные функциями скрипта, должны быть одним из типов консорциума W3C, перечисленных ниже. В следующей таблице описано сопоставление типов W3C, XPath или XSLT и соответствующих классов .NET Framework.

Тип W3C Эквивалентный класс .NET
String (XPath) System.String
Boolean (XPath) System.Boolean
Число (XPath) System.Double
Фрагмент дерева результатов (XSLT) System.Xml.XPath.XPathNavigator
Набор узлов (XPath) System.Xml.XPath.XPathNodeIterator

Если функция скрипта использует один из следующих числовых типов: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single или Decimal, эти типы принудятся к Double, которые сопоставляются с номером типа W3C XPath.

Исключение возникает при вызове функции, которая не может преобразовать результат аргумента в один из обязательных типов.

Note

msxsl:script и msxsl:node-list являются единственными функциями из urn:schemas-microsoft-com:xslt пространства имен, поддерживаемых классом XslTransform .

XslTransform имеет возможность использовать код среды CLR в качестве механизма расширения. Это достигается путем передачи экземпляра класса в класс XslTransform и вызова его общедоступных методов в таблице стилей XSLT. Методы, определенные с params ключевым словом, которые позволяют передавать непреднамеренные значения параметров, не работают правильно в этом сценарии. Дополнительные сведения см. в парамах .

Дополнительные сведения см. в разделе "Преобразования XSLT" с классом XslTransform.

Конструкторы

Имя Описание
XslTransform()
Устаревшие..

Инициализирует новый экземпляр класса XslTransform.

Свойства

Имя Описание
XmlResolver
Устаревшие..

Задает используемый XmlResolver для разрешения внешних ресурсов при вызове Transform метода.

Методы

Имя Описание
Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле IXPathNavigable. Этот метод позволяет ограничить разрешения таблицы стилей, указав доказательства.

Load(IXPathNavigable, XmlResolver)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле IXPathNavigable.

Load(IXPathNavigable)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле IXPathNavigable.

Load(String, XmlResolver)
Устаревшие..

Загружает таблицу стилей XSLT, указанную URL-адресом.

Load(String)
Устаревшие..

Загружает таблицу стилей XSLT, указанную URL-адресом.

Load(XmlReader, XmlResolver, Evidence)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XmlReader. Этот метод позволяет ограничить разрешения таблицы стилей, указав доказательства.

Load(XmlReader, XmlResolver)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XmlReader.

Load(XmlReader)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XmlReader.

Load(XPathNavigator, XmlResolver, Evidence)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XPathNavigator. Этот метод позволяет ограничить разрешения таблицы стилей, указав доказательства.

Load(XPathNavigator, XmlResolver)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XPathNavigator.

Load(XPathNavigator)
Устаревшие..

Загружает таблицу стилей XSLT, содержащуюся в файле XPathNavigator.

MemberwiseClone()
Устаревшие..

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект Stream.

Transform(IXPathNavigable, XsltArgumentList, Stream)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект Stream.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект TextWriter.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект TextWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект XmlReader.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект XmlWriter.

Transform(IXPathNavigable, XsltArgumentList)
Устаревшие..

Преобразует XML-данные в IXPathNavigable указанный args и выводит результат в объект XmlReader.

Transform(String, String, XmlResolver)
Устаревшие..

Преобразует XML-данные в входном файле и выводит результат в выходной файл.

Transform(String, String)
Устаревшие..

Преобразует XML-данные в входном файле и выводит результат в выходной файл.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект Stream.

Transform(XPathNavigator, XsltArgumentList, Stream)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект Stream.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект TextWriter.

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект TextWriter.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект XmlReader.

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанные args и выводит результат в объект XmlWriter.

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанные args и выводит результат в объект XmlWriter.

Transform(XPathNavigator, XsltArgumentList)
Устаревшие..

Преобразует XML-данные в XPathNavigator указанный args и выводит результат в объект XmlReader.

Применяется к

Потокобезопасность

XslTransform Объекты являются только потокобезопасными для операций преобразования. Другие операции не гарантируются в потокобезопасном режиме. Необходимо убедиться, что другие методы не вызываются в объект во время операций загрузки.