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-данных:
Создайте объект XslTransform.
Load Используйте метод для загрузки таблицы стилей для преобразования. Этот метод имеет несколько перегрузок и может загружать таблицу стилей с помощью XmlReaderurl-адреса XPathNavigatorIXPathNavigableили URL-адреса с расположением файла.
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 указанный |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(IXPathNavigable, XsltArgumentList) |
Устаревшие..
Преобразует XML-данные в IXPathNavigable указанный |
| Transform(String, String, XmlResolver) |
Устаревшие..
Преобразует XML-данные в входном файле и выводит результат в выходной файл. |
| Transform(String, String) |
Устаревшие..
Преобразует XML-данные в входном файле и выводит результат в выходной файл. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанные args и выводит результат в объект XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанные args и выводит результат в объект XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList) |
Устаревшие..
Преобразует XML-данные в XPathNavigator указанный |
Применяется к
Потокобезопасность
XslTransform Объекты являются только потокобезопасными для операций преобразования. Другие операции не гарантируются в потокобезопасном режиме. Необходимо убедиться, что другие методы не вызываются в объект во время операций загрузки.