XslTransform 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.
Cuidado
This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202
Transforma dados XML usando uma folha de estilos XSLT (Extensible Stylesheet Language for Transformations).
public ref class XslTransform sealed
public sealed class XslTransform
[System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class XslTransform
type XslTransform = class
[<System.Obsolete("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
type XslTransform = class
Public NotInheritable Class XslTransform
- Herança
-
XslTransform
- Atributos
Comentários
Note
A classe XslTransform está obsoleta no Microsoft .NET Framework versão 2.0. A XslCompiledTransform classe é o novo processador XSLT. Para obter mais informações, consulte Como usar a classe XslCompiledTransform e migrar da classe XslTransform.
XslTransform dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o namespace http://www.w3.org/1999/XSL/Transform.
Argumentos adicionais também podem ser adicionados à folha de estilos usando a XsltArgumentList classe. Essa classe contém parâmetros de entrada para a folha de estilos e objetos de extensão que podem ser chamados da folha de estilos.
Para transformar dados XML:
Crie um objeto XslTransform.
Use o Load método para carregar a folha de estilos para a transformação. Esse método tem várias sobrecargas e pode carregar uma folha de estilos usando uma XmlReaderXPathNavigatorIXPathNavigableURL com o local do arquivo.
Use o Transform método para transformar os dados XML. Esse método tem várias sobrecargas e pode lidar com diferentes tipos de entrada e saída. Você também pode especificar um XsltArgumentList argumento adicional a ser usado como entrada durante a transformação.
Considerações sobre segurança
Ao criar um aplicativo que usa a XslTransform classe, você deve estar ciente dos seguintes itens e suas implicações:
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, farão com que o sistema seja processado até que o computador seja executado 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 mitigados por não aceitar XslTransform objetos, folhas de estilo XSLT ou dados de origem XML de fontes não confiáveis.
Suporte a scripts
Essa classe dá suporte ao script inserido usando o msxsl:script elemento.
Na versão 1.1 do .NET Framework, a evidência da folha de estilos determina quais permissões são dadas aos scripts inseridos.
Se a folha de estilos tiver sido carregada de um URI (Uniform Resource Identifier), o URI será usado para criar a evidência. Essa evidência inclui o URI juntamente com seu site e zona.
Se a folha de estilos foi carregada usando outra fonte, você pode fornecer evidências passando um System.Security.Policy.Evidence objeto para o Load método. Caso contrário, o assembly de script tem total confiança.
Chamadores semi-confiáveis: UnmanagedCode a permissão é necessária para compilar o script inserido.
ControlEvidence a permissão é necessária para fornecer Evidence ao Load método. Um SecurityException será gerado se o chamador não tiver as permissões necessárias. Consulte System.Security.Permissions.SecurityPermission e System.Security.Permissions.SecurityPermissionFlag para obter mais informações.
O msxsl:script elemento tem os seguintes requisitos:
O
msxsl:scriptelemento pertence aourn:schemas-microsoft-com:xsltnamespace. A folha de estilos deve incluir a declaraçãoxmlns:msxsl=urn:schemas-microsoft-com:xsltde namespace.O
msxsl:scriptelemento pode incluir umlanguageatributo que especifica a linguagem de script a ser usada. O valor dolanguageatributo deve ser um dos seguintes: C#, CSharp, VB, VisualBasic, JScript ou JavaScript. Como o nome do idioma não diferencia maiúsculas de minúsculas, JavaScript e javascript são válidos. Se umlanguageatributo não for especificado, ele usará o JScript como padrão.O
msxsl:scriptelemento deve incluir umimplements-prefixatributo que contenha o prefixo que representa o namespace associado ao bloco de script. Esse namespace deve ser definido dentro da folha de estilos. Uma folha de estilos pode incluir vários blocos de script que são agrupados por namespace. Não é possível ter blocos de script com vários idiomas no mesmo namespace. Os blocos de script podem chamar uma função definida em outro bloco de script, desde que os blocos de script residam no mesmo namespace. O conteúdo de um bloco de script é analisado de acordo com as regras e a sintaxe da linguagem de script (fornecida pelolanguageatributo). Por exemplo, se você tivesse um bloco de script C#, os comentários seriam prefixados pelos//caracteres. Os comentários devem ser conteúdo XML válido.
Note
É recomendável encapsular blocos de script em uma seção CDATA.
<msxsl:script implements-prefix='xy' language='C#'>
<![CDATA[
// Add code here.
]]>
</msxsl:script>
As funções podem ser declaradas dentro do msxsl:script elemento. A tabela a seguir mostra os namespaces com suporte por padrão.
| Namespaces com suporte | Description |
|---|---|
System |
Classes do sistema. |
System.Collection |
Classes de coleção. |
System.Text |
Classes de tratamento de texto. |
System.Xml |
Classes XML principais. |
System.Xml.Xsl |
Classes XSLT. |
System.Xml.XPath |
Classes XPath (Linguagem de Caminho XML). |
Os argumentos fornecidos e os valores retornados definidos pelas funções de script devem ser um dos tipos W3C (World Wide Web Consortium) listados abaixo. A tabela a seguir detalha o mapeamento entre os tipos W3C, XPath ou XSLT e as classes .NET Framework correspondentes.
| Tipo W3C | Classe de .NET equivalente |
|---|---|
| Cadeia de caracteres (XPath) | System.String |
| Booliano (XPath) | System.Boolean |
| Número (XPath) | System.Double |
| Fragmento de árvore de resultados (XSLT) | System.Xml.XPath.XPathNavigator |
| Conjunto de Nós (XPath) | System.Xml.XPath.XPathNodeIterator |
Se a função de script utilizar um dos seguintes tipos numéricos: Int16, UInt16, Int32, UInt32, Int64, UInt64, Single ou Decimal, esses tipos serão coagidos a Double, que mapeia para o número de tipo XPath do W3C.
Uma exceção é gerada quando uma função é chamada que não pode converter o resultado do argumento em um dos tipos necessários.
Note
msxsl:script e msxsl:node-list são as únicas funções do urn:schemas-microsoft-com:xslt namespace com suporte da XslTransform classe.
XslTransform tem a capacidade de utilizar o código CLR (Common Language Runtime) como um mecanismo de extensão. Isso é feito passando uma instância de uma classe para a XslTransform classe e chamando seus métodos públicos em uma folha de estilos XSLT. Os métodos definidos com a params palavra-chave, que permite que um número não especificado de parâmetros sejam passados, não funcionam corretamente neste cenário. Confira os parâmetros para obter mais detalhes.
Para obter mais informações, consulte transformações XSLT com a classe XslTransform.
Construtores
| Nome | Description |
|---|---|
| XslTransform() |
Obsoleto.
Inicializa uma nova instância da classe XslTransform. |
Propriedades
| Nome | Description |
|---|---|
| XmlResolver |
Obsoleto.
Define o XmlResolver usado para resolver recursos externos quando o Transform método é chamado. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Obsoleto.
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Obsoleto.
Serve como a função de hash padrão. (Herdado de Object) |
| GetType() |
Obsoleto.
Obtém o Type da instância atual. (Herdado de Object) |
| Load(IXPathNavigable, XmlResolver, Evidence) |
Obsoleto.
Carrega a folha de estilos XSLT contida na IXPathNavigable. Esse método permite limitar as permissões da folha de estilos especificando evidências. |
| Load(IXPathNavigable, XmlResolver) |
Obsoleto.
Carrega a folha de estilos XSLT contida na IXPathNavigable. |
| Load(IXPathNavigable) |
Obsoleto.
Carrega a folha de estilos XSLT contida na IXPathNavigable. |
| Load(String, XmlResolver) |
Obsoleto.
Carrega a folha de estilos XSLT especificada por uma URL. |
| Load(String) |
Obsoleto.
Carrega a folha de estilos XSLT especificada por uma URL. |
| Load(XmlReader, XmlResolver, Evidence) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XmlReader. Esse método permite limitar as permissões da folha de estilos especificando evidências. |
| Load(XmlReader, XmlResolver) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XmlReader. |
| Load(XmlReader) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XmlReader. |
| Load(XPathNavigator, XmlResolver, Evidence) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XPathNavigator. Esse método permite limitar as permissões da folha de estilos especificando evidências. |
| Load(XPathNavigator, XmlResolver) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XPathNavigator. |
| Load(XPathNavigator) |
Obsoleto.
Carrega a folha de estilos XSLT contida na XPathNavigator. |
| MemberwiseClone() |
Obsoleto.
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Obsoleto.
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(IXPathNavigable, XsltArgumentList) |
Obsoleto.
Transforma os dados XML no IXPathNavigable uso do especificado |
| Transform(String, String, XmlResolver) |
Obsoleto.
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída. |
| Transform(String, String) |
Obsoleto.
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML no uso dos XPathNavigator args especificados e gera o resultado em um XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML no uso dos XPathNavigator args especificados e gera o resultado em um XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList) |
Obsoleto.
Transforma os dados XML no XPathNavigator uso do especificado |
Aplica-se a
Acesso thread-safe
XslTransform os objetos são somente thread-safe para operações de transformação. Não há garantia de que outras operações sejam thread-safe. Você deve garantir que nenhum outro método seja chamado no objeto durante operações de carga.