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
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