XslTransform Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 />
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:
Cree un objeto XslTransform.
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.
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:scriptelemento pertenece alurn:schemas-microsoft-com:xsltespacio de nombres . La hoja de estilos debe incluir la declaraciónxmlns:msxsl=urn:schemas-microsoft-com:xsltde espacio de nombres .El
msxsl:scriptelemento puede incluir unlanguageatributo que especifica el lenguaje de scripting que se va a usar. El valor dellanguageatributo 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 unlanguageatributo, el valor predeterminado es JScript.El
msxsl:scriptelemento debe incluir unimplements-prefixatributo 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 ellanguageatributo ). 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 |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| Transform(IXPathNavigable, XsltArgumentList) |
Obsoletos.
Transforma los datos XML en mediante IXPathNavigable el especificado |
| 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 |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoletos.
Transforma los datos XML en mediante XPathNavigator el especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Obsoletos.
Transforma los datos XML en mediante XPathNavigator el especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoletos.
Transforma los datos XML en mediante XPathNavigator el especificado |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Obsoletos.
Transforma los datos XML en mediante XPathNavigator el especificado |
| 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 |
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.