Un lenguaje de transformación XML es un lenguaje de programación diseñado específicamente para transformar un documento XML de entrada en un documento de salida que satisface algún objetivo específico.
Hay dos casos especiales de transformación:
- XML a XML : el documento de salida es un documento XML.
- XML a datos : el documento de salida es un flujo de bytes .
XML a XML
A medida que la transformación de XML a XML genera un documento XML , las cadenas de transformación de XML a XML forman canalizaciones XML .
XML a datos
La transformación de XML (lenguaje de marcado extensible) a datos contiene algunos casos importantes. El más notable es XML to HTML (HyperText Markup Language) , ya que un documento HTML no es un documento XML.
Idiomas existentes
- XSLT : XSLT es el lenguaje de transformación XML más conocido. La recomendación XSLT 1.0 W3C se publicó en 1999 junto con XPath 1.0 y se ha implementado ampliamente desde entonces. XSLT 2.0 se ha convertido en una recomendación del W3C desde enero de 2007 y ya están disponibles implementaciones de la especificación como Saxon 8 .
- XQuery : XQuery es un lenguaje completamente funcional, a pesar de tener "consulta" en el nombre. Es un estándar de facto utilizado por Microsoft, Oracle, DB2, MarkLogic, etc., es la base del modelo de programación web XRX y tiene una recomendación del W3C para las versiones 1.0. XQuery no está escrito en XML como XSLT, por lo que su sintaxis es mucho más ligera. El idioma se basa en XPath 2.0 . Los programas XQuery no pueden tener efectos secundarios , al igual que XSLT y proporcionan casi las mismas capacidades (por ejemplo: declarar variables y funciones, iterar sobre secuencias, usar tipos de esquema W3C), aunque la sintaxis del programa es bastante diferente. XQuery es impulsado por lógica, usando FOR, WHERE y la composición de funciones (por ejemplo, fn: concat ("", generate-body (), "")). Por el contrario, XSLT se basa en datos (modelo de procesamiento de inserción) donde ciertas condiciones del documento de entrada desencadenan la ejecución de plantillas en lugar de que el código se ejecute en el orden en que está escrito.
- XProc : XProc es un lenguaje XML Pipeline. La Recomendación XProc 1.0 W3C se publicó en mayo de 2010.
- Transformación de documentos XML : es un estándar de Microsoft para realizar transformaciones simples en documentos XML. Principalmente para crear archivos IIS Web.config (Transformaciones de configuración), otras implementaciones permiten que se use para archivos de configuración genéricos como tiempo de compilación (Slow Cheetah) o desde la línea de comando (CTT).
- STX : STX (Streaming Transformations for XML) está inspirado en XSLT pero ha sido diseñado para permitir un proceso de transformación de un solo paso que nunca impide la transmisión. Las implementaciones están disponibles en Java ( Joost ) y Perl ( XML :: STX ).
- XML Script : XML Script es un lenguaje de programación imperativo inspirado en Perl que utiliza la sintaxis XML. XML Script admite XPath y su DSLPath patentado para seleccionar nodos del árbol de entrada.
- FXT : FXT es una herramienta de transformación XML funcional, implementada en ML estándar .
- XDuce : XDuce es un lenguaje escrito con una sintaxis ligera, en comparación con XSLT. Está escrito en ML.
- CDuce : CDuce extiende XDuce a un lenguaje de programación funcional de propósito general , consulte la página de inicio de CDuce .
- XACT : XACT es un sistema basado en Java para programar transformaciones XML. Las características notables incluyen plantillas XML como valores inmutables y un análisis estático para garantizar la seguridad de los tipos utilizando tipos de esquemas XML ( página de inicio de XACT ).
- XFun : XFun es un lenguaje funcional X-Fun para definir transformaciones entre árboles de datos XML, mientras proporciona instrucciones de destrucción. X-Fun puede entenderse como una extensión del lenguaje XStream de Frisch con trituración de salida, mientras que la coincidencia de patrones se reemplaza por la navegación de árbol con expresiones XPath. ( [1] )
- XStream : XStream es un lenguaje de transformación funcional simple para documentos XML basado en CAML. Las transformaciones XML escritas en XStream se evalúan en streaming: cuando es posible, partes de la salida se calculan y producen mientras el documento de entrada aún se está analizando. De este modo, se pueden aplicar algunas transformaciones a documentos XML de gran tamaño que ni siquiera cabrían en la memoria. El compilador XStream se distribuye bajo los términos de la licencia de software libre CeCILL .
- Xtatic : Xtatic aplica métodos de XDuce a C # , consulte la página de inicio de Xtatic .
- HaXml : HaXml es una biblioteca y colección de herramientas para escribir transformaciones XML en Haskell . Consulte también este artículo sobre HaXml publicado en 1999 y este artículo de IBM developerWorks . Vea también el más reciente HXML y Haskell XML Toolbox ( HXT ), que se basa en las ideas de HaXml y HXML pero adopta un enfoque más general para el procesamiento de XML.
- XMLambda : XMLambda (XMλ) se describe en un artículo de 1999 de Erik Meijer y Mark Shields . No hay implementación disponible. Consulte la página de inicio de XMLambda .
- FleXML : FleXML es un lenguaje de procesamiento XML implementado por primera vez por Kristofer Rose. Su enfoque consiste en agregar acciones a una DTD XML que especifique las instrucciones de procesamiento para cualquier subconjunto de las reglas de la DTD.
- Scala : Scala es un lenguaje orientado a objetos y funcional de propósito general con soporte específico para la transformación XML en forma de coincidencia de patrones XML, literales y expresiones, junto con bibliotecas XML estándar. [1]
- LINQ to XML : LINQ to XML es una API de programación y sintaxis .NET 3.5 disponible en C #, VB y algunos otros lenguajes .NET. LINQ está diseñado principalmente como un lenguaje de consulta, pero también admite transformaciones XML.
Ver también
- Filtro (software)
- Filtro (Unix)
- Plantilla web
- Sistema de plantillas web
- Motor de plantillas (web)
- Tritium (lenguaje de programación)
Referencias
- ^ Fancellu, Dino; Narmontas, William (junio de 2014). "Procesamiento XML en Scala" . XML London 2014 : 63–75. doi : 10.14337 / XMLLondon14.Narmontas01 . ISBN 978-0-9926471-1-7.