XslCompiledTransform Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Transforma dados XML usando uma folha de estilos XSLT.
public ref class XslCompiledTransform sealed
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")]
public sealed class XslCompiledTransform
public sealed class XslCompiledTransform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")>]
type XslCompiledTransform = class
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Herança
-
XslCompiledTransform
- Atributos
Exemplos
O exemplo a seguir executa uma transformação e gera saídas em um arquivo.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
O exemplo usa os dois arquivos de entrada a seguir:
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Comentários
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 adocument()função, restrinja os recursos que podem ser acessados passando ThrowingResolver 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.
Construtores
| Nome | Description |
|---|---|
| XslCompiledTransform() |
Inicializa uma nova instância da classe XslCompiledTransform. |
| XslCompiledTransform(Boolean) |
Inicializa uma nova instância da XslCompiledTransform classe com a configuração de depuração especificada. |
Propriedades
| Nome | Description |
|---|---|
| OutputSettings |
Obtém um XmlWriterSettings objeto que contém as informações de saída derivadas do |
| TemporaryFiles |
Obtém o TempFileCollection que contém os arquivos temporários gerados no disco após uma chamada bem-sucedida para o Load método. |
Métodos
| Nome | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Compila uma folha de estilos XSLT em um tipo especificado. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Compila a folha de estilos XSLT contida no IXPathNavigable. As XmlResolver resoluções de qualquer XSLT |
| Load(IXPathNavigable) |
Compila a folha de estilos contida no IXPathNavigable objeto. |
| Load(MethodInfo, Byte[], Type[]) |
Carrega um método de uma folha de estilos compilada usando o |
| Load(String, XsltSettings, XmlResolver) |
Carrega e compila a folha de estilos XSLT especificada pelo URI. As XmlResolver resoluções de qualquer XSLT |
| Load(String) |
Carrega e compila a folha de estilos localizada no URI especificado. |
| Load(Type) |
Carrega a folha de estilos compilada que foi criada usando o Compilador XSLT (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Compila a folha de estilos XSLT contida no XmlReader. As XmlResolver resoluções de qualquer XSLT |
| Load(XmlReader) |
Compila a folha de estilos contida no XmlReader. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| Transform(IXPathNavigable, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e gera os resultados para um XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e gera os resultados para um fluxo. Os XsltArgumentList argumentos de runtime adicionais são fornecidos. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e gera os resultados para um TextWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e gera os resultados para um XmlWriter. O XsltArgumentList fornece argumentos adicionais em tempo de execução e resolve XmlResolver a função XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e gera os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(String, String) |
Executa a transformação usando o documento de entrada especificado pelo URI e gera os resultados para um arquivo. |
| Transform(String, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo URI e gera os resultados para um XmlWriter. |
| Transform(String, XsltArgumentList, Stream) |
Executa a transformação usando o documento de entrada especificado pelo URI e gera os resultados a serem transmitidos. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(String, XsltArgumentList, TextWriter) |
Executa a transformação usando o documento de entrada especificado pelo URI e gera os resultados para um TextWriter. |
| Transform(String, XsltArgumentList, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo URI e gera os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(XmlReader, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e gera os resultados para um XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e gera os resultados para um fluxo. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e gera os resultados para um TextWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e gera os resultados para um XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais e o XmlResolver resolve a função XSLT |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e gera os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução. |
Aplica-se a
Acesso thread-safe
O XslCompiledTransform objeto é thread-safe depois de carregado. Em outras palavras, depois que o Load método for concluído com êxito, o Transform método poderá ser chamado simultaneamente de vários threads.
Se o Load método for chamado novamente em um thread enquanto o Transform método estiver sendo chamado em outro thread, o XslCompiledTransform objeto terminará de executar a Transform chamada continuando a usar o estado antigo. O novo estado é usado quando o Load método é concluído com êxito.
O Load método não é thread-safe quando chamado simultaneamente de vários threads.