Parte del lenguaje de marcado extensible
En software , una canalización XML se forma cuando se conectan procesos XML (lenguaje de marcado extensible), especialmente transformaciones XML y validaciones XML .
Por ejemplo, dadas dos transformaciones T 1 y T 2 , las dos pueden conectarse de modo que un documento XML de entrada sea transformado por T 1 y luego la salida de T 1 se introduzca como documento de entrada en T 2 . Las canalizaciones simples como la descrita anteriormente se denominan lineales ; un único documento de entrada siempre pasa por la misma secuencia de transformaciones para producir un único documento de salida.
Operaciones lineales
Las operaciones lineales se pueden dividir en al menos dos partes
Microoperaciones
Operan a nivel de documento interno.
- Cambiar nombre : cambia el nombre de elementos o atributos sin modificar el contenido
- Reemplazar : reemplaza elementos o atributos
- Insertar : agrega un nuevo elemento de datos al flujo de salida en un punto específico
- Eliminar : elimina un elemento o atributo (también conocido como podar el árbol de entrada)
- Envolver : envuelve elementos con elementos adicionales
- Reordenar : cambia el orden de los elementos.
Operaciones de documentos
Toman el documento de entrada como un todo
- Transformación de identidad : hace una copia textual de su entrada en la salida.
- Comparar : toma dos documentos y los compara
- Transformar : ejecuta una transformación en el archivo de entrada utilizando un archivo XSLT especificado . Se debe especificar la versión 1.0 o 2.0.
- Dividir : tomar un solo documento XML y dividirlo en documentos distintos
Operaciones de secuencia
Se introducen principalmente en XProc y ayudan a gestionar la secuencia del documento en su totalidad.
- Contar : toma una secuencia de documentos y los cuenta.
- Transformación de identidad : realiza una copia textual de su secuencia de entrada de documentos en la salida.
- secuencia dividida : toma una secuencia de documentos como entrada y los dirige a diferentes salidas según las reglas de coincidencia
- wrap-sequence : toma una secuencia de documentos como entrada y los envuelve en uno o más documentos
No lineal
Las operaciones no lineales en tuberías pueden incluir:
- Condicionales : una transformación determinada se ejecuta si se cumple una condición, mientras que otra transformación se ejecuta en caso contrario.
- Bucles : donde se ejecuta una transformación en cada nodo de un conjunto de nodos seleccionado de un documento o se ejecuta una transformación hasta que una condición se evalúa como falsa
- Tees : donde un documento se alimenta a múltiples transformaciones que pueden ocurrir en paralelo
- Agregaciones : donde varios documentos se agregan en un solo documento
- Manejo de excepciones : cuando las fallas en el procesamiento pueden provocar que se procese una canalización alternativa
Algunos estándares también categorizan la transformación como macro (cambios que afectan a todo un archivo) o micro (que afectan solo a un elemento o atributo).
Lenguajes de canalización XML
Los lenguajes de canalización XML se utilizan para definir canalizaciones. Un programa escrito con un lenguaje de canalización XML se implementa mediante un software conocido como motor de canalización XML, que crea procesos, los conecta entre sí y, finalmente, ejecuta la canalización. Los lenguajes de canalización XML existentes incluyen:
Normas
Específico del producto
- El lenguaje de definición de canalización XML del W3C se especifica en una nota del W3C. [2]
- El lenguaje XML Pipeline (XPL) del W3C, versión 1.0 (borrador) [3] [4] se especifica en una presentación del W3C y es un componente de Orbeon Presentation Server OPS (ahora llamado Orbeon Forms). Esta especificación proporciona una implementación de una versión anterior del lenguaje. XPL permite la declaración de pipelines complejos con condicionales, bucles, tees, agregaciones y subpipelines. XProc es, en líneas generales, un superconjunto de XPL. [5]
- Los mapas de sitio Cocoon permiten, entre otras funciones, la declaración de canales XML. Los mapas de sitio Cocoon son una de las primeras implementaciones del concepto de canalización XML.
- El proyecto smallx utiliza pipelines XML de smallx .
- ServingXML define un vocabulario para expresar transformaciones XML plano, XML-plano, plano-plano y XML-XML en canalizaciones.
- Lenguaje de marcado de circuitos de PolarLake utilizado por el entorno de ejecución de PolarLake para definir canales XML. Los circuitos son conjuntos de rutas a través de las cuales se transmiten fragmentos de XML (normalmente como eventos SAX o DOM). Los componentes se colocan en las rutas para interactuar con el flujo (y/o el mundo exterior) en un proceso de baja latencia.
- xmlsh es un lenguaje de programación basado en los shells de Unix que admite de forma nativa canales de texto y XML [1]
- Stylus Studio XML Pipeline es una gramática visual que define las siguientes operaciones: Entrada, Salida, XQuery, XSLT, Validar, XSL-FO a PDF, Convertir a XML, Convertir desde XML, Elegir, Advertencia, Detener.
Granularidad de la tubería
Distintas implementaciones de XML Pipeline admiten diferentes granularidades de flujo.
- Documento: Los documentos completos fluyen a través de la tubería como unidades atómicas. Un documento solo puede estar en un lugar a la vez, aunque normalmente puede haber varios documentos en la tubería a la vez.
- Evento: Los eventos de los nodos de elementos/texto pueden fluir a través de diferentes rutas. Un documento puede fluir simultáneamente a través de muchos componentes al mismo tiempo.
Normalización
Hasta mayo de 2010, no existía ningún estándar ampliamente utilizado para lenguajes de pipeline XML. Sin embargo, con la introducción del estándar XProc del W3C como recomendación del W3C a partir de mayo de 2010 [6] , se puede esperar una adopción generalizada.
Historia
- 1972 Douglas McIlroy de Bell Laboratories añade el operador pipe al shell de comandos de UNIX . Esto permite que la salida de un programa de shell vaya directamente a la entrada de otro programa de shell sin pasar por el disco. Esto permitió que programas como awk y sed de UNIX se especializaran y, sin embargo, funcionaran juntos [2]. [7] Para más detalles, consulte Pipeline (Unix) .
- En 1993 Sean McGrath desarrolló un kit de herramientas C++ para el procesamiento de SGML . [8]
- 1998 Stefano Mazzocchi lanza la primera versión de Apache Cocoon , uno de los primeros programas de software en utilizar pipelines XML.
- 1998 PolarLake crea un sistema operativo XML que incluye canalización XML.
- Las notas de 2002 presentadas por Norman Walsh y Eve Maler de Sun Microsystems , así como una propuesta presentada al W3C en 2005 por Erik Bruchez y Alessandro Vernet de Orbeon, fueron pasos importantes hacia el inicio de un verdadero esfuerzo de estandarización. Si bien ninguna de las propuestas se convirtió directamente en una recomendación del W3C, se consideraron fuentes clave de inspiración para el Grupo de trabajo de procesamiento XML del W3C .
- En septiembre de 2005 se creó el Grupo de trabajo de procesamiento XML del W3C . La tarea de este grupo de trabajo era crear una especificación para un lenguaje de canalización XML.
- En agosto de 2008, se anunció xmlsh, un lenguaje de canalización XML, en Balisage 2008
Véase también
Referencias
- ^ "XProc: un lenguaje XML pipeline". W3.org . Consultado el 14 de junio de 2013 .
- ^ "Lenguaje de definición de canalización XML del W3C".
- ^ "XML Pipeline Language (XPL) Versión 1.0 (borrador)". W3.org . Consultado el 14 de junio de 2013 .
- ^ "XML Pipeline Definition Language Version 1.0". W3.org. 28 de febrero de 2002. Consultado el 14 de junio de 2013 .
- ^ "Trayectorias XML: XPL y XProc". Orbeon. 22 de mayo de 2007. Consultado el 14 de marzo de 2012 .
- ^ "XProc: un lenguaje XML pipeline". W3.org . Consultado el 14 de junio de 2013 .
- ^ "Historia y evolución de los primeros Unix". www.bell-labs.com. Archivado desde el original el 8 de abril de 2015. Consultado el 14 de junio de 2013 .
- ^ "Preguntas frecuentes". Xpipe.sourceforge.net. 2001-12-09 . Consultado el 2013-06-14 .
Enlaces externos
Normas
Recomendaciones
- XProc: un lenguaje XML pipeline, recomendación del W3C del 11 de mayo de 2010
Borradores de trabajo
- Grupo de trabajo sobre modelos de procesamiento XML del W3C
- Nota sobre el lenguaje de definición de canalización XML del W3C
- Presentación de la versión 1.0 (borrador) del lenguaje XML Pipeline (XPL) del W3C
Específico del producto
- Tutorial y referencia de XProc
- Implementación del controlador del lenguaje de definición de canalización XML de Oracle Parte del kit para desarrolladores de XML, sin descarga individual
- Mapa del sitio de Cocoon
- Canalizaciones XML de NetKernel
- Gestión de la generación de documentos complejos mediante pipeline
- Documentación del lenguaje XML Pipeline (XPL)
- Tubo SX
- Gestión de datos de referencia de PolarLake Gestión de datos de referencia y circuitos XML de PolarLake
- pequeñax
- ServirXML
- Implementación de XML Pipeline de Stylus Studio: este programa permite encadenar transformaciones XML junto con otras operaciones en archivos XML, como validación y HTML Tidy .
- IVI XML Pipeline Server XML Pipeline Server es una implementación para el lenguaje XML Pipeline de Stylus Studio
- Sitio web XProc de Norman Walsh: Norman Walsh es el presidente del comité de estándares XProc del W3C.
- yax - una implementación de XProc actualmente con línea de comandos e interfaz Apache ant
- Yahoo! Pipes permite a los usuarios crear combinaciones de datos de múltiples fuentes en un entorno visual basado en la web
- xmlsh Un shell para manipular XML basado en los shells de Unix. Admite canales de procesamiento de XML y texto multiproceso en proceso.
- [3] Cómo implementar XML Pipeline en XSLT
- Calabash es una implementación de XProc
- Calumet es una implementación de XProc de EMC
- QuiXProc es una implementación XProc de Innovimax