Compartilhar via


Classe System.Xml.Xsl.XslCompiledTransform

Este artigo fornece comentários complementares à documentação de referência para esta API.

A XslCompiledTransform classe é um processador XSLT que dá suporte à sintaxe XSLT 1.0. É uma nova implementação e inclui ganhos de desempenho quando comparado com a classe obsoleta XslTransform . A estrutura da XslCompiledTransform classe é muito semelhante à XslTransform classe. O Load método carrega e compila a folha de estilos, enquanto o Transform método executa a transformação XSLT.

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

Para obter mais informações, consulte Como usar a classe XslCompiledTransform e migrar da classe XslTransform.

Considerações de segurança

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

  • O script XSLT está desabilitado por padrão. O script XSLT só deve ser habilitado se você precisar de suporte de script e estiver trabalhando em um ambiente totalmente confiável.

  • A função XSLT document() está desabilitada por padrão. Se você habilitar a document() função, restrinja os recursos que podem ser acessados passando um XmlSecureResolver objeto para o Transform método.

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

  • As folhas de estilo XSLT podem incluir referências a outros arquivos e blocos de script inseridos. Um usuário mal-intencionado pode explorar isso fornecendo dados ou folhas de estilo que, quando executadas, podem fazer com que o sistema continue processando até que o computador fique com poucos recursos.

  • Aplicativos XSLT executados em um ambiente de confiança misturada podem resultar em 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 a outro usuário que, posteriormente, chama o Transform método e executa a transformação.

Esses problemas de segurança podem ser atenuados por não habilitar o script ou a document() função, a menos que a folha de estilos venha de uma fonte confiável e por não aceitar XslCompiledTransform objetos, folhas de estilo XSLT ou dados de origem XML de uma fonte não confiável.