XslTransform Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Atenção
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 estilo Extensible Stylesheet Language for Transformations (XSLT).
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
Observações
Note
A classe XslTransform está obsoleta na versão 2.0 do Microsoft .NET Framework. A XslCompiledTransform classe é o novo processador XSLT. Para obter mais informações, consulte Usando a classe XslCompiledTransform e Migrando da classe XslTransform.
XslTransform suporta a sintaxe XSLT 1.0. A folha de estilo XSLT deve usar o espaço http://www.w3.org/1999/XSL/Transformde nomes .
Argumentos adicionais também podem ser adicionados à folha de estilo usando a XsltArgumentList classe. Esta classe contém parâmetros de entrada para a folha de estilos e objetos de extensão que podem ser chamados a partir da folha de estilos.
Para transformar dados XML:
Crie um XslTransform objeto.
Use o Load método para carregar a folha de estilos da transformação. Este método tem várias sobrecargas e pode carregar uma folha de estilo usando um XmlReader, XPathNavigator, IXPathNavigable, ou uma URL com a localização do ficheiro.
Use o Transform método para transformar os dados XML. Este método tem várias sobrecargas e pode lidar com diferentes tipos de entrada e saída. Também pode especificar um XsltArgumentList contendo argumentos adicionais para usar como entrada durante a transformação.
Considerações de 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 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 utilizador malicioso pode explorar isto fornecendo-lhe dados ou folhas de estilo que, quando executadas, farão com que o sistema processe até o computador ficar sem 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.
Estes problemas de segurança podem ser mitigados ao não aceitar XslTransform objetos, folhas de estilo XSLT ou dados de origem XML provenientes de fontes não confiáveis.
Suporte a Scripts
Esta classe suporta scripts embutidos usando o msxsl:script elemento.
Na versão 1.1 do .NET Framework, a evidência da folha de estilos determina que permissões são atribuídas aos scripts embutidos.
Se a folha de estilo foi carregada a partir de um Identificador Uniforme de Recursos (URI), o URI é usado para criar a evidência. Esta evidência inclui o URI, juntamente com o seu local e zona.
Se a folha de estilo foi carregada usando outra fonte, pode fornecer evidência ao passar um System.Security.Policy.Evidence objeto ao Load método. Caso contrário, a montagem do script tem total confiança.
Chamadores semi-confiáveis: UnmanagedCode é necessária permissão para compilar o script incorporado.
ControlEvidence É necessária permissão para fornecer Evidence ao Load método. A SecurityException é lançado 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 utilizar. O valor dolanguageatributo deve ser um dos seguintes: C#, CSharp, VB, VisualBasic, JScript ou JavaScript. Como o nome da linguagem não é sensível a maiúsculas minúsculas, JavaScript e javascript são ambos válidos. Se umlanguageatributo não for especificado, passa a ser JScript por defeito.O
msxsl:scriptelemento deve incluir umimplements-prefixatributo que contenha o prefixo que representa o namespace associado ao bloco de script. Este namespace deve ser definido dentro da folha de estilos. Uma folha de estilos pode incluir múltiplos blocos de script agrupados por namespace. Não podes ter blocos de script com várias línguas dentro do mesmo espaço de nomes. Os blocos de script podem chamar uma função definida noutro bloco de script, desde que os blocos de script residam no mesmo espaço de nomes. O conteúdo de um bloco de script é analisado de acordo com as regras e sintaxe da linguagem de script (fornecida pelolanguageatributo). Por exemplo, se tivesses um bloco de script em C#, os comentários seriam prefixados pelos//caracteres. Os comentários devem ser conteúdo XML válido.
Note
Recomenda-se que envolva blocos de script numa secçã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 seguinte mostra os namespaces suportados por defeito.
| Espaços de Nomes Suportados | Description |
|---|---|
System |
Classes do sistema. |
System.Collection |
Aulas de coleção. |
System.Text |
Aulas de gestão de texto. |
System.Xml |
Classes principais de XML. |
System.Xml.Xsl |
Aulas de XSLT. |
System.Xml.XPath |
Classes da Linguagem de Caminho XML (XPath). |
Os argumentos fornecidos e valores de retorno definidos pelas funções de script devem ser um dos tipos do World Wide Web Consortium (W3C) listados abaixo. A tabela seguinte detalha o mapeamento entre os tipos do W3C, XPath ou XSLT, e as classes correspondentes do .NET Framework.
| Tipo W3C | Classe .NET equivalente |
|---|---|
| String (XPath) | System.String |
| Booleano (XPath) | System.Boolean |
| Número (XPath) | System.Double |
| Fragmento da Á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, estes tipos são coagidos a Double, que corresponde ao número do tipo XPath do W3C.
Uma exceção é lançada quando uma função é chamada que não consegue converter o resultado do argumento para um dos tipos exigidos.
Note
msxsl:script e msxsl:node-list são as únicas funções do urn:schemas-microsoft-com:xslt namespace suportadas pela XslTransform classe.
XslTransform tem a capacidade de utilizar código de execução em linguagem comum (CLR) como mecanismo de extensão. Isto é conseguido passando uma instância de uma classe para a XslTransform classe e chamando os seus métodos públicos dentro de uma folha de estilos XSLT. Métodos definidos com a params palavra-chave, que permite passar um número não especificado de parâmetros, não funcionam corretamente neste cenário. Consulte os parâmetros para mais detalhes.
Para mais informações, consulte Transformações XSLT com a Classe XslTransform.
Construtores
| Name | Description |
|---|---|
| XslTransform() |
Obsoleto.
Inicializa uma nova instância da XslTransform classe. |
Propriedades
| Name | Description |
|---|---|
| XmlResolver |
Obsoleto.
Define o XmlResolver usado para resolver recursos externos quando o Transform método é chamado. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Obsoleto.
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Obsoleto.
Serve como função de hash predefinida. (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 estilo XSLT contida no IXPathNavigablearquivo . Este método permite-lhe limitar as permissões da folha de estilo especificando evidências. |
| Load(IXPathNavigable, XmlResolver) |
Obsoleto.
Carrega a folha de estilo XSLT contida no IXPathNavigablearquivo . |
| Load(IXPathNavigable) |
Obsoleto.
Carrega a folha de estilo XSLT contida no IXPathNavigablearquivo . |
| Load(String, XmlResolver) |
Obsoleto.
Carrega a folha de estilo XSLT especificada por uma URL. |
| Load(String) |
Obsoleto.
Carrega a folha de estilo XSLT especificada por uma URL. |
| Load(XmlReader, XmlResolver, Evidence) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XmlReaderarquivo . Este método permite-lhe limitar as permissões da folha de estilo especificando evidências. |
| Load(XmlReader, XmlResolver) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XmlReaderarquivo . |
| Load(XmlReader) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XmlReaderarquivo . |
| Load(XPathNavigator, XmlResolver, Evidence) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XPathNavigatorarquivo . Este método permite-lhe limitar as permissões da folha de estilo especificando evidências. |
| Load(XPathNavigator, XmlResolver) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XPathNavigatorarquivo . |
| Load(XPathNavigator) |
Obsoleto.
Carrega a folha de estilo XSLT contida no XPathNavigatorarquivo . |
| MemberwiseClone() |
Obsoleto.
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Obsoleto.
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(IXPathNavigable, XsltArgumentList) |
Obsoleto.
Transforma os dados XML em usando IXPathNavigable o especificado |
| Transform(String, String, XmlResolver) |
Obsoleto.
Transforma os dados XML no ficheiro de entrada e exporta o resultado para um ficheiro de saída. |
| Transform(String, String) |
Obsoleto.
Transforma os dados XML no ficheiro de entrada e exporta o resultado para um ficheiro de saída. |
| Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
| Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
| Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
| Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator os args especificados e produz o resultado para um XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator os args especificados e produz o resultado para um XmlWriter. |
| Transform(XPathNavigator, XsltArgumentList) |
Obsoleto.
Transforma os dados XML em usando XPathNavigator o especificado |
Aplica-se a
Segurança de Thread
XslTransform Os objetos são apenas seguros para operações de transformação. Outras operações não garantem ser seguras para threads. Deve garantir que nenhum outro método é chamado ao objeto durante as operações de carga.