Compartir a través de


Resolver hojas de estilos XSLT y documentos externos

Actualización: November 2007

Hay varios momentos a lo largo de una transformación en los cuales puede que necesite resolver recursos externos:

Nota:

La clase XslTransform es obsoleta en .NET Framework versión 2.0. Puede llevar a cabo Extensible Stylesheet Language for Transformations (XSLT) mediante la clase XslCompiledTransform. Para obtener más información, vea Uso de la clase XslCompiledTransform y Migración desde la clase XslTransform.

Hay varios momentos a lo largo de una transformación en los cuales puede que necesite resolver recursos externos:

  • Durante la operación Load para localizar una hoja de estilos externa.

  • Durante Load para resolver cualquier elemento <xsl:include> o <xsl:import> que se encuentre en la hoja de estilos.

  • Durante la operación Transform para resolver las funciones document().

Utilizar la clase XmlResolver

Si se precisa autenticación para tener acceso a un recurso de red, utilice los métodos Load que tengan un parámetro XmlResolver para pasar el objeto XmlResolver que tenga establecido el conjunto de propiedades de credenciales necesarias.

Si tiene un XmlResolver personalizado que desea utilizar o si tiene que especificar unas credenciales distintas, en la tabla siguiente se enumeran las tareas requeridas en función de que sea o no necesario resolver el recurso externo.

Proceso que requiere resolución

Tareas necesarias

Durante Load para localizar la hoja de estilos.

Especificar el método Load sobrecargado que toma como parámetro un XmlResolver si la hoja de estilos se encuentra en un recurso que requiere credenciales.

Durante Load para resolver <xsl:include> o <xsl:import>.

Especificar el método Load sobrecargado que admite, como parámetro, un XmlResolver. XmlResolver se utiliza para cargar las hojas de estilos a las que hacen referencia las instrucciones import o include. Si proporciona un valor null, los recursos externos no se resuelven.

Durante una transformación para resolver las funciones document().

Especifique XmlResolver durante la transformación utilizando el método Transform que toma un argumento XmlResolver.

La función document() recupera otros recursos XML desde una hoja de estilos, además de los datos XML iniciales proporcionados por la secuencia de entrada. Como esta función permite la inclusión de datos XML que pueden localizarse en cualquier otro lugar, XmlResolver con un valor null suministrado al método Transform evita que la función document() se ejecute. Si desea utilizar la función document(), utilice el método Transform que toma un XmlResolver como parámetro.

Para más información sobre el método Load y su uso de XmlResolver, consulte XslTransform.Load(String, XmlResolver). Para obtener más información sobre la clase XmlResolver, vea Resolución de recursos con XmlResolver y XmlResolver Class.

Cuando se llama al método Transform, los permisos se calculan con la evidencia proporcionada durante el tiempo de carga y dicho conjunto de permisos se asigna a todo el proceso de transformación. Si la función document() intenta iniciar una acción que requiere permisos que no se han encontrado en el conjunto, se inicia una excepción.

Vea también

Conceptos

Transformaciones XSLT con la clase XslTransform

La clase XslTransform implementa el procesador XSLT

Resultados de XslTransform

Transformaciones XSLT en distintos almacenes

XsltArgumentList para parámetros Stylesheet y objetos de extensión

Escribir scripts de hojas de estilos XSLT mediante <msxsl:script>

Compatibilidad con la función msxsl:node-set()

XPathNavigator en transformaciones

XPathNodeIterator en transformaciones

Entrada XPathDocument Input para XslTransform

Entrada de XmlDataDocument en XslTransform

Entrada de XmlDocument en XslTransform