Compartir a través de


Clase System.Xml.Xsl.XslCompiledTransform

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La XslCompiledTransform clase es un procesador XSLT que admite la sintaxis XSLT 1.0. Se trata de una nueva implementación e incluye mejoras de rendimiento en comparación con la clase obsoleta XslTransform . La estructura de la XslCompiledTransform clase es muy similar a la XslTransform clase . El Load método carga y compila la hoja de estilos, mientras que el Transform método ejecuta la transformación XSLT.

La compatibilidad con la función XSLT document() y los bloques de script incrustados están deshabilitados de forma predeterminada. Estas características se pueden habilitar mediante la creación de un XsltSettings objeto y su paso al Load método .

Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.

Consideraciones de seguridad

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

  • El script XSLT está deshabilitado de manera predeterminada. El scripting XSLT solo debe habilitarse si necesita compatibilidad con scripts y está trabajando en un entorno de plena confianza.

  • La función XSLT document() está deshabilitada de forma predeterminada. Si habilita la document() función, restrinja los recursos a los que se puede acceder pasando un XmlSecureResolver objeto al Transform método .

  • 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 aprovechar esto proporcionando datos o hojas de estilos que, cuando se ejecuta, puede hacer que el sistema procese hasta que el equipo se quede sin 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 no habilitando el scripting o la document() función a menos que la hoja de estilos proceda de un origen de confianza y no acepte XslCompiledTransform objetos, hojas de estilos XSLT o datos de origen XML de un origen que no sea de confianza.