INFO: Guia para transformações de XSLT em execução em aplicações .NET

Traduções de Artigos Traduções de Artigos
Artigo: 313997 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo fornece um plano para apresentar os espaços de nomes do .NET Framework e as classes que pode utilizar para executar programaticamente transformações Extensible Stylesheets Language Transformation (XSLT) nas aplicações .NET. Informações gerais sobre artigos fornecem hiperligações para informações úteis, incluindo documentação on-line, artigos da base de dados de conhecimento da Microsoft e documentação técnica da Microsoft, para o ajudar a obter informações sobre um produto da Microsoft ou tecnologia.

Este artigo não é uma iniciação XSLT. Este artigo pressupõe que está familiarizado com a World Wide Web Consortium (W3C) XSLT standard e tenha experiência com folhas de estilos XSLT para transformar dados XML de escrita.

Descrição geral

XSLT é uma World Wide Web Consortium (W3C) padrão para transformar dados XML. XSLT é normalmente utilizado para escrever folhas de estilo para transformar dados XML para outros formatos, tais como HTML, fixo texto de comprimento, texto separado por vírgulas ou outro formato XML.

Perspectiva programador, o XSLT é uma linguagem de programação com uma sintaxe rich, baseado em XML que implementa os elementos que correspondem a programação construções e elementos para requisitos de transformação comuns.

Folhas de estilos XSLT utilizar frequentemente XML Path Language (XPath) consultas para localizar nós no documento XML de origem e para aplicar os modelos XSLT para transformar esses nós. A eficiência das consultas XPath uma folha de estilos XSLT frequentemente influenciar e afectar o desempenho de transformações utilizá-lo.

De um ponto espera de alto nível, um processador XSLT é um componente de software aplica-se uma folha de estilo especificado a um documento de XML de origem especificado para executar uma transformação XSLT e para gerar o resultado necessário.

A saída final que geram as transformações XSLT são normalmente resultado documentos que apresentam os dados XML originais no formato de destino especificado.

Escrever código de uma aplicação .NET para executar a transformação XSLT

Os artigos da base de dados de conhecimento da Microsoft e tutorial de iniciação rápida ao seguinte demonstram como escrever código numa aplicação .NET para aplicar uma folha de estilos XSLT a um documento XML para executar uma transformação básica:
Como fazer i.. aplicar uma transformação XSL para XML?
http://samples.gotdotnet.com/quickstart/howto/doc/Xml/TransformXml.aspx
307322COMO: Aplicar uma transformação XSL a um documento XML utilizando o Visual C# .NET
300929COMO: Aplicar uma transformação XSL a partir de um documento XML para um documento XML utilizando o Visual Basic .NET

O espaço de nomes System.Xml.xsl

A classe XslTransform no espaço de nomes System.Xml.xsl implementa o processador XSLT do .NET Framework. As instâncias desta classe são criadas e utilizadas para executar XSLT transformações nas aplicações .NET de objecto. A implementação do processador XSLT no .NET Framework é compatível com versão 1.0 da W3C XSLT Recommendation.

O espaço de nomes System.Xml.xsl também implementa as seguintes classes para suportar o processamento de excepções XSLT e opções avançadas que estão relacionados com a execução de XSLT transformações e consultas XPath:
  • XsltArgumentList . Pode utilizar o objecto as instâncias desta classe para fornecer a extensão instâncias do objecto e os valores para parâmetros XSLT que definem as folhas de estilos XSLT e referência.
  • XsltCompileException . Esta classe gera a excepção do .NET Framework quando ocorre um erro durante a compilação de uma folha de estilos XSLT. Uma folha de estilos XSLT é compilada quando o método de carga de um objecto XslTransform é executado.
  • XsltException . Esta classe gera a excepção do .NET Framework quando ocorre um erro de tempo de execução enquanto está a executar uma transformação XSLT.
  • XsltContext IXsltContextFunction e IXsltContextVariable . Estas avançadas componentes são utilizadas para implementar um contexto de execução de consulta XPath personalizado quando existe um requisito para implementar e funções definidas pelo utilizador e variáveis em consultas XPath que são executadas em aplicações .NET utilizando o XPathNavigator classe e classes Document Object Model (DOM) de referência.

    Para implementar mais facilmente funções definidas pelo utilizador e variáveis em expressões de consulta XPath que estão incluídas numa folha de estilos XSLT, é possível utilizar blocos de scripts incorporados, objectos de extensão e XSLT variáveis ou parâmetros.

Funcionalidades avançadas de XSLT

Esta secção descreve várias funcionalidades avançadas de XSLT.

Pipelining XSLT transformações

Pipelining refere-se ao processo de transformação de um documento XML de origem aplicando incrementalmente duas ou mais folhas de estilos XSLT. O resultado que gera cada fase intermédio é fornecido como entrada para a fase seguinte totalmente a para a fase final, que, em seguida, gera a saída adequada.

Este método é útil quando tem de manter o resultado que geram as fases intermédias para processamento adicional que não está ligado directamente no processo de transformação. Para obter informações adicionais sobre este tópico e para obter um exemplo de código ilustra a utilização, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
320847COMO: Tubagem transformações de XSLT em aplicações .NET

Transformações de XSLT parametrizadas

É prática XSLT comum para definir e utilizar parâmetros em folhas de estilos. Folhas de estilos XSLT parametrizadas utilize o elemento <xsl:param> para definir parâmetros que são referenciados em expressões de consulta XPath para localizar e transformar nós na origem de dados XML selectivamente. Os valores para os parâmetros definidos podem ser codificados na folha de estilos ou fornecidos em tempo de execução. O último exercício dinamicamente especificar valores de parâmetro de entrada para controlar o processo de transformação é a utilização mais comum desta funcionalidade.

Nas aplicações .NET, um objecto XsltArgumentList é utilizado para fornecer valores para parâmetros XSLT ao tempo de execução. O método AddParam é utilizado para adicionar um par nome-valor que representa um parâmetro definido na folha de estilos e respectivo valor para um objecto XsltArgumentList . O objecto XsltArgumentList é fornecido como um parâmetro ao executar o método de transformação no objecto XslTransform que é utilizado para executar a transformação.

GetParam e os métodos RemoveParam são utilizados para aceder e remover parâmetros individuais que são adicionados ao objecto XsltArgumentList . Para obter informações adicionais sobre como executar parametrizada transformação XSLT em aplicações .NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
321704COMO: Executar parametrizadas transformações XSL em aplicações .NET

Blocos de script de linha

Funções de script inline são uma das opções que pode utilizar para implementar funções definidas pelo utilizador e sub procedimentos que são referenciados em expressões de consulta XPath que são utilizadas numa folha de estilos XSLT. A capacidade de incluir blocos de script inline em folhas de estilos XSLT é uma extensão W3C.

O .NET Framework, inline personalizado funções e subrotinas são codificadas em blocos de <msxsl:script> na folha de estilos XSLT. Pode utilizar uma linguagem de programação Microsoft Visual Studio .NET como Microsoft Visual Basic .NET ou Microsoft Visual C# .NET para implementar estas rotinas.

Uma das desvantagens associada utilizando blocos de script inline é que fazem as folhas de estilo XSLT não portátil. A tecnologia, as tags e a semântica é utilizada para implementar inline blocos de script é extensões específicas do fornecedor que não normalizar as especificações de XSLT W3C.

Só pode utilizar uma folha de estilos XSLT define e utiliza blocos de script inline com êxito no transformações que são executadas utilizando um processador XSLT que podem interpretar a semântica relacionada e integrar a tecnologia que tem de executar o código.

O .NET Framework, assemblagens geridas são geradas e carregadas implicitamente para executar o código contido no inline <msxsl:script> blocos de script. Existe um problema conhecido no .NET Framework que impede que estes assemblagens correctamente a ser descarregado quando concluir o processo de transformação. Esta anomalia poderá conduzir a um aumento de utilização da memória, se a folha de estilos afectados repetidamente é carregada para executar o XSLT transformações. A memória unreleased é disponibilizada apenas quando o processo de anfitrião é reciclado. Para obter informações adicionais sobre este problema no .NET Framework, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
316775PROBLEMA: Não é possível descarregar assemblagens que criar e carregar utilizando o script no XSLT
Para contornar este problema nas aplicações do Microsoft ASP.NET, pode carregar as folhas de estilo afectado apenas uma vez durante a vida da aplicação, colocar em cache as folhas de estilo afectado (na cache do ASP.NET) e, em seguida, reutilizar as versões em cache para transformações a seguir.

No Windows Forms e aplicações da consola, pode utilizar a instâncias do objecto XslTransform globais para carregar as folhas de estilo afectado quando a aplicação é iniciada e executar transformações posteriores. Estas soluções não se aplicam quando XSLT transformações ser executada em ambientes sem estado (por exemplo, com camada para Serviços componentes).

A Microsoft recomenda que utilize objectos de extensão XSLT para implementar funções personalizadas de extensão de XPath para contornar este problema.

Objectos de extensão XSLT

Microsoft recomenda que utilize objectos de extensão para implementar personalizadas subrotinas e funções que são referenciadas em expressões de consulta XPath que são utilizadas numa folha de estilos XSLT.

Pode criar .NET Framework dll para implementar e utilizar objectos de extensão quando executa transformações nas aplicações .NET. As funções e subrotinas personalizadas são implementadas numa DLL e uma instância de objecto do componente DLL é fornecida como um parâmetro de tempo de execução, utilizando um objecto XsltArgumentList quando executa o método de transformação objecto XslTransform .

O método AddExtensionObject da classe XsltArgumentList é utilizado para adicionar uma instância de objecto de extensão a um objecto XsltArgumentList . Pode utilizar a obter e os métodos Remover o objecto de extensão para aceder e para remover uma instância de objecto de extensão é adicionada a um objecto XsltArgumentList .

A especificação de W3C XSLT resolve o conceito e a utilização de elementos de extensão e funções sem qualquer heed ou referenciam para a tecnologia de base tem de utilizar para implementá-las. Tem de definir e utilizar prefixos de espaço de nomes XML baseado em normas em folhas de estilos para fazer referência a funções e subrotinas implementadas nos objectos de extensão. Fornecedores podem seleccionar uma tecnologia que é mais adequada para a sua plataforma para resolver os aspectos de implementação dos objectos de extensão. Para obter informações adicionais sobre o conceito e a utilização de objectos de extensão XSLT no .NET Framework e para obter passos para criar uma aplicação de ponto-a-ponto que demonstra como utilizar objectos de extensão quando executa o XSLT transformações nas aplicações .NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
321702COMO: Utilizar objectos de extensão quando é executar transformações XSL no Visual Basic .NET Applications

Directrizes gerais para utilizar as classes de Framework .NET para executar o XSLT transformações

  • A classe XPathDocument é altamente optimizada para processamento XSLT e XPath. Para um óptimo desempenho, utilize sempre um objecto XPathDocument para fornecer a origem XML enquanto está a executar uma transformação XSLT.
  • Pode colocar em cache e reutilizar XslTransform objectos que são utilizados para carregar folhas de estilo XSLT são frequentemente utilizadas para executar transformações posteriores.
  • O processador XSLT não coloca automaticamente cache instâncias do objecto extensão utilizados XSLT transformações. Pode colocar em cache e reutilizar XsltArgumentList objectos que são utilizados para fornecer extensão instâncias do objecto para folhas de estilos XSLT frequentemente utilizadas quando executar transformações posteriores. Este é o método para objectos de extensão de cache que são utilizados em transformações XSLT no .NET Framework.
  • Uma folha de estilos XSLT que implementa inline blocos de script só deve ser carregada uma vez e colocados em cache. Deve voltar a utilizar o objecto XslTransform em cache para posteriores transformações. Pode utilizar este procedimento para resolver o problema de gestão de memória que é descrito no artigo da base de dados de conhecimento da Microsoft Q316775 quando deve utilizar funções de script inline numa folha de estilo.
  • A Microsoft recomenda que utilize objectos de extensão para implementar funções personalizadas que são referenciadas em expressões de consulta XPath que são utilizadas em folhas de estilos XSLT. Implemente personalizadas classes XsltContext , IXsltContextFunction e IXsltContextVariable apenas quando tiver para implementar e extensão personalizada funções em expressões de consulta XPath que são executadas em aplicações .NET utilizando o XPathNavigator e as classes DOM de referência.
  • Implementar o código para processar XsltCompileException XsltException e as classes de excepção XmlException .NET Framework quando escrever código para execução XSLT transformações processamento de excepções. Estas classes de excepção fornecem informações sobre quaisquer problemas XSLT específicas ou específico do XML que ocorrer quando tenta executar uma transformação XSLT. Além disso, a Microsoft recomenda que implemente o código para processar outras excepções específicas do .NET Framework e implementar a classe de System.Exception genérica, com base na funcionalidade de outra, não relacionados com o XSLT é implementada no bloco de código que executa a transformação XSLT.

Desempenho de transformações XSLT no .NET Framework

Para obter informações adicionais sobre as causas e soluções para os problemas de desempenho conhecidos quando executa o XSLT transformações nas aplicações .NET, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
325689INFO: O desempenho de transformações XSLT no .NET Framework

Resolução de problemas

Se tiver problemas ou se tiver dúvidas, pode fazer referência aos newsgroups da MSDN, onde pode partilhar as experiências com os seus pares. Também pode utilizar dados de conhecimento onde pode procurar artigos sobre problemas específicos ou contactar o suporte técnico da Microsoft.
Newsgroups da MSDN
http://msdn.microsoft.com/newsgroups/

Procurar na base de dados de conhecimento da
http://support.microsoft.com/search

Suporte técnico da Microsoft
http://support.microsoft.com

Referências

Para mais informações % 1, clique no número de artigo % 2 abaixo para visualizar o artigo % 2 na base de dados de conhecimento da Microsoft:
313651INFO: Guia para XML no .NET Framework

Propriedades

Artigo: 313997 - Última revisão: 12 de agosto de 2005 - Revisão: 4.4
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbarttyperoadmap kbinfo KB313997 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 313997

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com