Resolvendo folhas de estilos XSLT e documentos externosResolving External XSLT Style Sheets and Documents

Há várias vezes durante uma transformação quando você precise resolver recursos externos.There are several times during a transformation when you may need to resolve external resources.

Observação

A classe XslTransform está obsoleta no .NET Framework 2.0.The XslTransform class is obsolete in the .NET Framework 2.0. Você pode executar a linguagem XSL Transformations (XSLT) usando a classe XslCompiledTransform.You can perform Extensible Stylesheet Language for Transformations (XSLT) transformations using the XslCompiledTransform class.

Há várias vezes durante uma transformação quando você precise resolver recursos externos:There are several times during a transformation when you may need to resolve external resources:

  • Durante Load para localizar uma folha de estilos externa.During the Load to locate an external style sheet.

  • Durante Load para resolver alguns elementos de <xsl:include> ou de <xsl:import> localizados na folha de estilos.During Load to resolve any <xsl:include> or <xsl:import> elements found in the style sheet.

  • Durante Transform para resolver algumas funções de document() .During Transform to resolve any document() functions.

Usando a classe de XmlResolverUsing the XmlResolver Class

Se a autenticação for necessária para acessar um recurso de rede, use os métodos de Load que têm um parâmetro de XmlResolver para passar o objeto de XmlResolver , que tem as propriedades credenciais necessárias definidas.If authentication is required to access a network resource, use the Load methods that have an XmlResolver parameter to pass the XmlResolver object, which has the necessary credential properties set.

Se você tiver XmlResolver personalizado que você deseja usar, ou se você precisar especificar credenciais diferentes, a tabela a seguir lista a tarefa necessária, como quando o recurso externo precisar a resolução.If you have a custom XmlResolver that you want to use, or if you need to specify different credentials, the following table lists the task required, depending on when the external resource needs resolution.

Processo requer que a resoluçãoWhat process requires resolution Tarefa necessáriaTask required
Durante Load para localizar a folha de estilos.During Load to locate the style sheet. Especificar o método sobrecarregado de Load que aceita, como um parâmetro, XmlResolver se a folha de estilos é um recurso que requer credenciais.Specify the overloaded Load method that takes, as a parameter, an XmlResolver if the style sheet is on a resource that requires credentials.
Durante Load para resolver <xsl:include> ou <xsl:import>.During Load to resolve <xsl:include> or <xsl:import>. Especificar o método sobrecarregado de Load que aceita, como um parâmetro, XmlResolver.Specify the overloaded Load method that takes, as a parameter, an XmlResolver. XmlResolver é usado para carregar as folhas de estilos referenciadas pelas declarações de import ou de include .The XmlResolver is used to load the style sheets referenced by the import or include statements. Se você passar em null, os recursos externos não são resolvidos.If you pass in null, the external resources are not resolved.
Durante uma transformação resolver qualquer document() funciona.During a transformation to resolve any document() functions. Especifique XmlResolver durante a transformação usando o método Transform que recebe um argumento de XmlResolver.Specify the XmlResolver during the transformation by using the Transform method that takes an XmlResolver argument.

A função document() recupera outros recursos XML de uma folha de estilos, além dos dados XML iniciais fornecidos pelo fluxo de entrada.The document() function retrieves other XML resources from a style sheet, in addition to the initial XML data provided by the input stream. Já que essa função permite a inclusão de dados XML que podem ser encontrados em outro lugar, XmlResolver com um valor de null fornecido para o método de Transform impede que a função de document() executar.Since this function allows the inclusion of XML data that can be located elsewhere, an XmlResolver with a null value supplied to the Transform method prevents the document() function from executing. Se você desejar usar a função de document() , use o método de Transform que leva XmlResolver como um parâmetro, além de ter o conjunto de permissões apropriado.If you want to use the document() function, use the Transform method that takes an XmlResolver as a parameter, in addition to having the appropriate permission set.

Para obter mais informações sobre o método de Load e o uso de XmlResolver, consulte XslTransform.Load(String, XmlResolver).For more information on the Load method and its use of the XmlResolver, see XslTransform.Load(String, XmlResolver).

Quando o método de Transform é chamado, as permissões são calculadas com a evidência fornecida em tempo de carregamento, e esse conjunto de permissões é atribuído ao processo inteiro de transformação.When the Transform method is called, permissions are calculated against the evidence provided at load time, and that permission set is assigned to the entire transformation process. Se a função de document() tentar iniciar uma ação que requer permissões não encontradas no dataset, uma exceção é lançada.If the document() function attempts to initiate an action that requires permissions not found in the set, an exception is thrown.

Consulte tambémSee also