XslTransform Clase

Definición

Precaución

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

Transforma los datos XML mediante una hoja de estilos de lenguaje de hoja de estilos extensible para transformaciones (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
Herencia
XslTransform
Atributos

Comentarios

Note

La clase /> XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.

XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe usar el espacio de nombres http://www.w3.org/1999/XSL/Transform.

También se pueden agregar argumentos adicionales a la hoja de estilos mediante la XsltArgumentList clase . Esta clase contiene parámetros de entrada para la hoja de estilos y los objetos de extensión a los que se puede llamar desde la hoja de estilos.

Para transformar datos XML:

  1. Cree un objeto XslTransform.

  2. Use el Load método para cargar la hoja de estilos para la transformación. Este método tiene varias sobrecargas y puede cargar una hoja de estilos mediante , XmlReaderXPathNavigatorIXPathNavigable, o una dirección URL con la ubicación del archivo.

  3. Use el Transform método para transformar los datos XML. Este método tiene varias sobrecargas y puede controlar diferentes tipos de entrada y salida. También puede especificar un XsltArgumentList argumento que contenga argumentos adicionales que se usarán como entrada durante la transformación.

Consideraciones sobre la seguridad

Al crear una aplicación que use la XslTransform clase , debe tener en cuenta los siguientes elementos y sus implicaciones:

  • Los objetos de extensión están habilitados de forma predeterminada. Si se pasa un objeto XsltArgumentList que contiene objetos de extensión al método Transform, estos se utilizan.

  • Las hojas de estilos XSLT pueden incluir referencias a otros archivos y bloques de scripts incrustados. Un usuario malintencionado puede aprovecharlo proporcionando datos o hojas de estilos que cuando se ejecute hará que el sistema se procese hasta que el equipo se ejecute bajo en recursos.

  • Las aplicaciones XSLT que se ejecutan en un entorno de confianza mixta pueden dar lugar a la suplantación de la hoja de estilos. Por ejemplo, un usuario malintencionado puede cargar un objeto con una hoja de estilos perjudicial y entregarlo a otro usuario que posteriormente llama al Transform método y ejecuta la transformación.

Estos problemas de seguridad se pueden mitigar sin aceptar XslTransform objetos, hojas de estilos XSLT o datos de origen XML de orígenes que no son de confianza.

Compatibilidad con scripting

Esta clase admite el scripting incrustado mediante el msxsl:script elemento .

En la versión 1.1 de .NET Framework, la evidencia de la hoja de estilos determina qué permisos se conceden a los scripts incrustados.

  • Si la hoja de estilos se cargó desde un identificador uniforme de recursos (URI), el URI se usa para crear la evidencia. Esta evidencia incluye el URI junto con su sitio y zona.

  • Si la hoja de estilos se cargó mediante otro origen, puede proporcionar evidencia pasando un System.Security.Policy.Evidence objeto al Load método . De lo contrario, el ensamblado de script tiene plena confianza.

Llamadores de confianza parcial: UnmanagedCode se requiere permiso para compilar el script incrustado. ControlEvidence se requiere permiso para proporcionar Evidence al Load método . Se produce una SecurityException excepción si el autor de la llamada no tiene los permisos necesarios. Consulte System.Security.Permissions.SecurityPermission y System.Security.Permissions.SecurityPermissionFlag para obtener más información.

El msxsl:script elemento tiene los siguientes requisitos:

  • El msxsl:script elemento pertenece al urn:schemas-microsoft-com:xslt espacio de nombres . La hoja de estilos debe incluir la declaración xmlns:msxsl=urn:schemas-microsoft-com:xsltde espacio de nombres .

  • El msxsl:script elemento puede incluir un language atributo que especifica el lenguaje de scripting que se va a usar. El valor del language atributo debe ser uno de los siguientes: C#, CSharp, VB, VisualBasic, JScript o JavaScript. Dado que el nombre del lenguaje no distingue mayúsculas de minúsculas, JavaScript y javascript son válidos. Si no se especifica un language atributo, el valor predeterminado es JScript.

  • El msxsl:script elemento debe incluir un implements-prefix atributo que contenga el prefijo que representa el espacio de nombres asociado al bloque de script. Este espacio de nombres debe definirse dentro de la hoja de estilos. Una hoja de estilos puede incluir varios bloques de scripts que se agrupan por espacio de nombres. No puede tener bloques de script con varios idiomas dentro del mismo espacio de nombres. Los bloques de script pueden llamar a una función definida en otro bloque de script, siempre que los bloques de script residan en el mismo espacio de nombres. El contenido de un bloque de script se analiza según las reglas y la sintaxis del lenguaje de scripting (proporcionado por el language atributo ). Por ejemplo, si tuviera un bloque de script de C#, los // caracteres prefijosían los comentarios. Los comentarios deben ser contenido XML válido.

Note

Se recomienda encapsular bloques de script en una sección CDATA.

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

Las funciones se pueden declarar dentro del msxsl:script elemento . En la tabla siguiente se muestran los espacios de nombres admitidos de forma predeterminada.

Espacios de nombres admitidos Descripción
System Clases del sistema.
System.Collection Clases de colección.
System.Text Clases de control de texto.
System.Xml Clases XML principales.
System.Xml.Xsl Clases XSLT.
System.Xml.XPath Clases de lenguaje de ruta de acceso XML (XPath).

Los argumentos proporcionados y los valores devueltos definidos por las funciones de script deben ser uno de los tipos de World Wide Web Consortium (W3C) que se enumeran a continuación. En la tabla siguiente se detalla la asignación entre los tipos W3C, XPath o XSLT, y las clases de .NET Framework correspondientes.

Tipo W3C Clase .NET equivalente
String (XPath) System.String
Boolean (XPath) System.Boolean
Number (XPath) System.Double
Fragmento de árbol de resultados (XSLT) System.Xml.XPath.XPathNavigator
Conjunto de nodos (XPath) System.Xml.XPath.XPathNodeIterator

Si la función de script utiliza uno de los siguientes tipos numéricos: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single o Decimal, estos tipos se convierten en Double, que se asigna al número de tipo XPath de W3C.

Se produce una excepción cuando se llama a una función que no puede convertir el resultado del argumento en uno de los tipos necesarios.

Note

msxsl:script y msxsl:node-list son las únicas funciones del urn:schemas-microsoft-com:xslt espacio de nombres que admite la XslTransform clase .

XslTransform tiene la capacidad de usar código de Common Language Runtime (CLR) como mecanismo de extensión. Esto se logra pasando una instancia de una clase a la XslTransform clase y llamando a sus métodos públicos dentro de una hoja de estilos XSLT. Los métodos definidos con la params palabra clave , que permiten pasar un número no especificado de parámetros, no funcionan correctamente en este escenario. Consulte los parámetros para obtener más información.

Para obtener más información, vea Transformaciones XSLT con la clase XslTransform.

Constructores

Nombre Description
XslTransform()
Obsoletos.

Inicializa una nueva instancia de la clase XslTransform.

Propiedades

Nombre Description
XmlResolver
Obsoletos.

Establece el XmlResolver objeto utilizado para resolver recursos externos cuando se llama al Transform método .

Métodos

Nombre Description
Equals(Object)
Obsoletos.

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()
Obsoletos.

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()
Obsoletos.

Obtiene el Type de la instancia actual.

(Heredado de Object)
Load(IXPathNavigable, XmlResolver, Evidence)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .IXPathNavigable Este método permite limitar los permisos de la hoja de estilos especificando evidencia.

Load(IXPathNavigable, XmlResolver)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .IXPathNavigable

Load(IXPathNavigable)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .IXPathNavigable

Load(String, XmlResolver)
Obsoletos.

Carga la hoja de estilos XSLT especificada por una dirección URL.

Load(String)
Obsoletos.

Carga la hoja de estilos XSLT especificada por una dirección URL.

Load(XmlReader, XmlResolver, Evidence)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XmlReader Este método permite limitar los permisos de la hoja de estilos especificando evidencia.

Load(XmlReader, XmlResolver)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XmlReader

Load(XmlReader)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XmlReader

Load(XPathNavigator, XmlResolver, Evidence)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XPathNavigator Este método permite limitar los permisos de la hoja de estilos especificando evidencia.

Load(XPathNavigator, XmlResolver)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XPathNavigator

Load(XPathNavigator)
Obsoletos.

Carga la hoja de estilos XSLT contenida en .XPathNavigator

MemberwiseClone()
Obsoletos.

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()
Obsoletos.

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .Stream

Transform(IXPathNavigable, XsltArgumentList, Stream)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .Stream

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .TextWriter

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .TextWriter

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .XmlReader

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .XmlWriter

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .XmlWriter

Transform(IXPathNavigable, XsltArgumentList)
Obsoletos.

Transforma los datos XML en mediante IXPathNavigable el especificado args y genera el resultado en .XmlReader

Transform(String, String, XmlResolver)
Obsoletos.

Transforma los datos XML en el archivo de entrada y genera el resultado en un archivo de salida.

Transform(String, String)
Obsoletos.

Transforma los datos XML en el archivo de entrada y genera el resultado en un archivo de salida.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .Stream

Transform(XPathNavigator, XsltArgumentList, Stream)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .Stream

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .TextWriter

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .TextWriter

Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .XmlReader

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Obsoletos.

Transforma los datos XML en XPathNavigator mediante los argumentos especificados y genera el resultado en .XmlWriter

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Obsoletos.

Transforma los datos XML en XPathNavigator mediante los argumentos especificados y genera el resultado en .XmlWriter

Transform(XPathNavigator, XsltArgumentList)
Obsoletos.

Transforma los datos XML en mediante XPathNavigator el especificado args y genera el resultado en .XmlReader

Se aplica a

Seguridad para subprocesos

XslTransform Los objetos solo son seguros para subprocesos para las operaciones de transformación. No se garantiza que otras operaciones sean seguras para subprocesos. Debe asegurarse de que no se llame a ningún otro método en el objeto durante las operaciones de carga.