INFO: Guía para la ejecución de las transformaciones XSLT en aplicaciones .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 313997 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo proporciona una guía básica para presentar los espacios de nombres.NET Framework y las clases que puede utilizar para ejecutar mediante programación Extensible Transformaciones de transformación de lenguaje de hojas de estilo (XSLT) en aplicaciones. NET. Artículos de guía básica proporcionan vínculos a información útil, incluyendo documentación en línea, artículos de Microsoft Knowledge Base y white papers, para ayudarle a aprender acerca de un producto o tecnología.

En este artículo no es un tutorial XSLT. Este artículo se supone que está familiarizado con el Estándar de World Wide Web Consortium (W3C) XSLT y tener experiencia con la escritura de hojas de estilos XSLT para transformar datos XML.

Información general

XSLT es un World Wide Web Consortium (W3C) estándar para transformar los datos XML. XSLT se utiliza normalmente para escribir hojas de estilo para transformar datos XML en otros formatos como HTML, fijada texto de longitud, separados por comas texto o un formato XML diferente.

Desde la perspectiva del desarrollador, XSLT es un lenguaje de programación con una sintaxis enriquecida, basado en XML que implementa los elementos que corresponden a elementos para enfrentar los requerimientos comunes de transformación de construcciones de programación.

Hojas de estilos XSLT utilizar con frecuencia consultas XML Path Language (XPath) para localizar los nodos del documento XML de origen y aplicar plantillas XSLT para transformar estos nodos. La eficacia de las consultas XPath en una hoja de estilos XSLT con frecuencia influyen y afectar al rendimiento de las transformaciones que se utilizan.

Desde un punto de vista de alto nivel, un procesador XSLT es un componente de software que se aplica una hoja de estilo especificado a un documento XML de origen especificado para ejecutar una transformación XSLT y generar el resultado.

El resultado final que generan las transformaciones XSLT normalmente son documentos de resultado que presente los datos XML originales en el formato de destino especificado.

Escribir código en una aplicación .NET para ejecutar la transformación XSLT

El siguiente tutorial rápido de artículos de Microsoft Knowledge Base se muestran cómo escribir código en una aplicación .NET para aplicar una hoja de estilos XSLT a un documento XML para ejecutar una transformación básica:
307322 Cómo: Aplicar una transformación XSL a un documento XML mediante Visual C#.
300929 Cómo: Aplicar una transformación XSL de un documento XML a un documento XML mediante Visual Basic .NET

El espacio de nombres System.Xml.Xsl

La clase XslTransform en el espacio de nombres System.Xml.Xsl implementa el procesador XSLT de.NET Framework. Instancias de objeto de esta clase se crean y se utiliza para ejecutar transformaciones XSLT en aplicaciones. NET. La implementación del procesador XSLT en el.NET Framework es compatible con la versión 1.0 de la Recomendación W3C XSLT.

El espacio de nombres System.Xml.Xsl también implementa las siguientes clases para admitir el control de excepciones de XSLT y opciones avanzadas que están relacionadas con la ejecución de consultas XPath y transformaciones de XSLT:
  • XsltArgumentList. Puede utilizar instancias de objeto de esta clase para proporcionar instancias de objetos de extensión y los valores de referencia y parámetros XSLT que definen las hojas de estilos XSLT.
  • XsltCompileException. Esta clase genera la excepción de.NET Framework cuando se produce un error mientras se compila una hoja de estilos XSLT. Cuando se ejecuta el método Load de un objeto XslTransform , se compila una hoja de estilos XSLT.
  • XsltException. Esta clase genera la excepción de.NET Framework cuando se produce un error en tiempo de ejecución mientras se ejecuta una transformación XSLT.
  • XsltContext, IXsltContextFunctiony IXsltContextVariable. Estos componentes avanzados se utilizan para implementar un contexto de ejecución de consultas XPath personalizado cuando hay un requisito para implementar y hacer referencia a variables en las consultas de XPath que se ejecutan en aplicaciones .NET utilizando las clases de Document Object Model (DOM) y la clase XPathNavigator y funciones definidas por el usuario.

    Para implementar más fácilmente las funciones definidas por el usuario y variables en expresiones de consulta de XPath que se incluyen en una hoja de estilos XSLT, puede utilizar bloques de secuencia de comandos en línea, los objetos de extensión y las variables XSLT o parámetros.

Características avanzadas de XSLT

Esta sección describe varias características avanzadas de XSLT.

La canalización de transformaciones XSLT

La canalización se refiere al proceso de transformar un documento XML de origen mediante la aplicación de forma incremental dos o más hojas de estilos XSLT. El resultado que genera cada fase intermedia se proporciona como entrada a la siguiente fase todo el proceso a la fase final, lo que genera el resultado adecuado.

Este método es útil cuando debe conservar el resultado que generan las fases intermedias para el procesamiento adicional que no está vinculado directamente en el proceso de transformación.Para obtener información adicional acerca de este tema y código de ejemplo que muestra su uso, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
320847 Cómo: Canalización transformaciones XSLT en aplicaciones .NET

Transformaciones XSLT con parámetros

Es una práctica común de XSLT para definir y utilizar los parámetros en las hojas de estilos. Hojas de estilos XSLT con parámetros, utilice el elemento <xsl:param>para definir los parámetros que se hace referencia en las expresiones de consulta de XPath para localizar y transformar los nodos en el origen de datos XML de forma selectiva. Los valores de los parámetros definidos pueden codificados en la hoja de estilos o suministrados en tiempo de ejecución. La práctica de este última de proporcionar dinámicamente los valores de parámetro de entrada para controlar el proceso de transformación es el uso más común de esta característica.

En aplicaciones. NET, se utiliza un objeto XsltArgumentList para proporcionar valores para parámetros XSLT en tiempo de ejecución. El método AddParam se utiliza para agregar un par de nombre y valor que representa un parámetro que se define en la hoja de estilos y su valor a un objeto de XsltArgumentList . El objeto de XsltArgumentList , a continuación, se proporciona como parámetro al ejecutar el método Transform del objeto XslTransform que se utiliza para ejecutar la transformación.

El GetParam y los métodos RemoveParam se utilizan para tener acceso y quitar parámetros individuales que se agregan a un objeto de XsltArgumentList .</xsl:param>Para obtener información adicional acerca de cómo ejecutar con parámetros de transformación de XSLT en aplicaciones. NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
321704 Cómo: Ejecutar transformaciones de XSL con parámetros en aplicaciones .NET

Bloques de secuencia de comandos en línea

Funciones de secuencia de comandos en línea son una de las opciones que puede utilizar para implementar funciones definidas por el usuario y Sub (procedimientos) que se hace referencia en las expresiones de consulta de XPath que se utilizan en una hoja de estilos XSLT. La capacidad de incluir bloques de scripts insertados en hojas de estilos XSLT es una extensión de W3C.

En el.NET Framework, subrutinas y funciones personalizadas en línea están codificadas en bloques de <msxsl:script>en la hoja de estilos XSLT. Puede utilizar un lenguaje de programación .NET de Microsoft Visual Studio como Visual Basic de Microsoft .NET o Microsoft Visual C# .NET para implementar estas rutinas.

Uno de los inconvenientes que está asociado con el uso de bloques de secuencia de comandos en línea es que las hojas de estilos XSLT no portátiles. La tecnología, las etiquetas y la semántica que se utiliza para implementar bloques de scripts insertados es extensiones específicas del proveedor que no estandarizar las especificaciones W3C XSLT.

Sólo se puede utilizar una hoja de estilos XSLT que define y utiliza bloques de scripts insertados correctamente en las transformaciones que se ejecutan con un procesador XSLT que pueden interpretar la semántica relacionada y se integran con la tecnología que debe ejecutar el código.

En el.NET Framework, los ensamblados administrados se generan y se cargan implícitamente para ejecutar el código que está contenido en línea <msxsl:script>bloques de script. Actualmente hay un problema conocido en el.NET Framework que impide que estos ensamblados desde que se descarga correctamente cuando finalice el proceso de transformación. Esta anomalía puede provocar un aumento en el uso de memoria si repetidamente se carga la hoja de estilos afectado para ejecutar transformaciones XSLT. Sólo cuando se recicla el proceso de host, se libera la memoria sin liberar. </msxsl:script></msxsl:script>Para obtener información adicional acerca de este problema en el.NET Framework, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
316775 PRB: No se puede descargar los ensamblados que crear y cargar mediante secuencia de comandos en XSLT
Para evitar este problema en las aplicaciones de Microsoft ASP.NET, cargar sólo una vez durante la vida de la aplicación de las hojas de estilo afectado, almacenar en caché las hojas de estilo afectado (en la caché ASP.NET) y, a continuación, volver a utilizar las versiones en caché para las transformaciones después de eso.

En formularios Windows Forms y aplicaciones de consola, puede utilizar las instancias de objeto XslTransform globales para cargar las hojas de estilo afectado cuando se inicia la aplicación y ejecutar transformaciones posteriores. Estas soluciones no se aplican cuando las transformaciones XSLT tienen que ejecutarse en entornos sin estado (por ejemplo, con componentes de servicios empresariales de nivel medio).

Microsoft recomienda que utilice objetos de extensión XSLT para implementar funciones de extensión de XPath personalizadas para evitar este problema.

Objetos de extensión XSLT

Microsoft recomienda que utilice objetos de extensión para implementar personalizadas subrutinas y funciones que se hace referencia en las expresiones de consulta de XPath que se utilizan en una hoja de estilos XSLT.

Puede crear archivos DLL de.NET Framework para implementar y utilizar objetos de extensión al ejecutar transformaciones de aplicaciones. NET. Las funciones y subrutinas personalizadas se implementan en un archivo DLL y se proporciona una instancia de objeto del componente DLL como un parámetro de tiempo de ejecución mediante el uso de un objeto XsltArgumentList al ejecutar el método de transformación de un objeto XslTransform .

El método AddExtensionObject de la clase XsltArgumentList se utiliza para agregar una instancia de objeto de extensión a un objeto de XsltArgumentList . Puede utilizar los métodos del objeto de extensión y obtener acceso a y para quitar una instancia de objeto de extensión que se agrega a un objeto de XsltArgumentList .

La especificación de W3C XSLT aborda el concepto y el uso de elementos de extensión y funciones sin ninguna cuenta o hacer referencia a la tecnología de base que debe utilizar para implementarlos. Debe definir y utilizar prefijos de espacio de nombres XML basado en estándares en hojas de estilo para hacer referencia a funciones y subrutinas que se implementan en objetos de extensión. Proveedores pueden seleccionar una tecnología que se adapta mejor a su plataforma para abordar los aspectos de implementación de los objetos de extensión.Para obtener información adicional sobre el concepto y el uso de objetos de extensión de XSLT en el.NET Framework y los pasos crear una aplicación end-to-end que se muestra cómo utilizar objetos de extensión al ejecutar transformaciones XSLT en aplicaciones. NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
321702 Cómo: Utilizar objetos de extensión al ejecutar transformaciones XSL en aplicaciones de .NET Visual Basic

Instrucciones generales para utilizar las clases de.NET Framework para ejecutar transformaciones XSLT

  • La clase XPathDocument está optimizada para el procesamiento de XSLT y XPath. Para obtener un rendimiento óptimo, utilice siempre un objeto XPathDocument para suministrar el código fuente XML mientras se ejecuta una transformación XSLT.
  • Puede almacenar en caché y volver a utilizar objetos XslTransform que se utilizan para cargar hojas de estilos XSLT que se utilizan con frecuencia para ejecutar transformaciones posteriores.
  • El procesador XSLT no caché automáticamente instancias de objetos de extensión que se utilizan en las transformaciones XSLT. Puede almacenar en caché y reutilizar los objetos de XsltArgumentList que se utilizan para proporcionar instancias de objetos de extensión para hojas de estilos XSLT utilizadas con frecuencia al ejecutar transformaciones posteriores. Éste es el método a los objetos de extensión de caché que se utilizan en las transformaciones XSLT en el.NET Framework.
  • Una hoja de estilos XSLT que implementa los bloques de script en línea sólo se debe cargar una vez y en caché. Debe volver a utilizar el objeto XslTransform en caché para las transformaciones posteriores. Puede utilizar esta práctica para solucionar el problema de administración de memoria que se describe en el artículo de Microsoft Knowledge Base Q316775 cuando debe utilizar funciones de secuencia de comandos en línea en una hoja de estilos.
  • Microsoft recomienda que utilice objetos de extensión para implementar funciones personalizadas que se hace referencia en las expresiones de consulta de XPath que se utilizan en las hojas de estilo XSLT. Implementar clases personalizadas de XsltContextIXsltContextFunctiony IXsltContextVariable sólo cuando tiene para implementar y hacer referencia a funciones de extensión personalizada en expresiones de consulta de XPath que se ejecutan en aplicaciones .NET utilizando XPathNavigator y las clases DOM.
  • Implementar código para controlar la XsltCompileException, XsltExceptiony las clases de excepción XmlException .NET Framework cuando se escribe código para ejecutar transformaciones XSLT de control de excepciones. Estas clases de excepción proporcionan información acerca de los problemas específicos de XML o XSLT que se producen al intentar ejecutar una transformación XSLT. Además, Microsoft recomienda que implemente el código para controlar otras excepciones específicas de.NET Framework y que implemente la clase System.Exception genérica, basada en la funcionalidad de otra, relacionadas con XSLT que se implementa en el bloque de código que se ejecuta la transformación XSLT.

Rendimiento de las transformaciones XSLT en el.NET Framework

Para obtener información adicional acerca de las causas y las soluciones para los problemas de rendimiento conocidos al ejecutar transformaciones XSLT en aplicaciones. NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
325689 INFO: Rendimiento de las transformaciones XSLT en el.NET Framework

Solución de problemas

Si experimenta problemas o si tiene preguntas, puede hacer referencia a la Grupos de noticias MSDN donde puede compartir sus experiencias con sus colegas. También puede utilizar Microsoft Knowledge Base donde puede buscar artículos sobre asuntos concretos o póngase en contacto con Microsoft Product Support Services.
Grupos de noticias MSDN
http://msdn.Microsoft.com/newsgroups/

Buscar en Knowledge Base
http://support.Microsoft.com/search

Servicios de soporte técnico de Microsoft
http://support.Microsoft.com

Referencias

Para obtener información adicional % 1, haga clic en el número de artículo siguiente para ver el artículo % 2 en Microsoft Knowledge Base:
313651 INFO: Roadmap for XML en el.NET Framework

Propiedades

Id. de artículo: 313997 - Última revisión: miércoles, 24 de octubre de 2012 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Palabras clave: 
kbarttyperoadmap kbinfo kbmt KB313997 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 313997

Enviar comentarios

 

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