Classe System.Xml.Xsl.XslCompiledTransform

Observação

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

A XslCompiledTransform classe é um processador XSLT que suporta a sintaxe XSLT 1.0. É uma implementação nova 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 blocos de script incorporados são desativados 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 Usando a classe XslCompiledTransform e Migrando 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á desativado por padrão. O script XSLT deve ser habilitado somente se você precisar de suporte a scripts e estiver trabalhando em um ambiente totalmente confiável.

  • A função XSLT document() está desativada 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 contendo objetos de extensão é passado para o Transform método, eles são utilizados.

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

  • Os aplicativos XSLT executados em um ambiente de confiança misto podem resultar em falsificação de folha de estilo. 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 não habilitando scripts ou a document() função, a menos que a folha de estilos venha de uma fonte confiável e não aceitando XslCompiledTransform objetos, folhas de estilo XSLT ou dados de origem XML de uma fonte não confiável.