Classe System.Xml.Xsl.XslCompiledTransform

Este artigo fornece observações complementares à documentação de referência para essa API.

A classe XslCompiledTransform é um processador XSLT compatível com a sintaxe do XSLT 1.0. É uma nova implementação e inclui ganhos de desempenho em comparação com a obsoleta classe XslTransform. A estrutura da classe XslCompiledTransform é muito semelhante à da classe XslTransform. O método Load carrega e compila a folha de estilos, enquanto o método Transform executa a transformação XSLT.

O suporte à função XSLT document() e os blocos de script inseridos são desabilitados por padrão. Esses recursos podem ser habilitados criando-se um objeto XsltSettings e passando-o para o método Load.

Para obter mais informações, confira Usando a classe XslCompiledTransform e Migrando da classe XslTransform.

Considerações de segurança

Ao criar um aplicativo que usa a classe de XslCompiledTransform , você deve estar ciente dos seguintes itens e suas implicações:

  • O script XSLT é desativado por padrão. O script XSLT deverá ser habilitado somente se você precisar de suporte a script e estiver trabalhando em um ambiente totalmente confiável.

  • A função XSLT document() é desativada por padrão. Se você ativar a função de document() , restringir os recursos que podem ser acessados passando um objeto de XmlSecureResolver para o método de Transform .

  • Os objetos de extensão estão habilitados por padrão. Se um objeto XsltArgumentList contendo objetos de extensão for passado para o método Transform, eles serão utilizados.

  • As folhas de estilos XSLT podem incluir referências a outros arquivos e blocos de script inseridos. Um usuário mal-intencionado pode explorar isso fornecendo a você folhas de dados ou estilos que, quando executados, possa obrigar o processamento pelo seu sistema até que o computador esteja com poucos recursos.

  • Os aplicativos XSLT que executam em um ambiente de confiança misturado podem levar a falsificação de folha de estilos. Por exemplo, um usuário mal-intencionado pode carregar um objeto com uma folha de estilos prejudicial e entregá-lo fora a outro usuário que subseqüentemente chama o método de Transform e executa a transformação.

Essas questões de segurança podem ser abrandadas não ativando scripts ou função de document() a menos que a folha de estilos vem de uma fonte não confiável, e retornando objetos de XslCompiledTransform , dados de folhas de estilos XSLT, ou de código-fonte XML de uma fonte não confiável.