Parte del lenguaje de marcado extensible
En el software , se forma una canalización XML 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 se pueden conectar de modo que T 1 transforme un documento XML de entrada y luego la salida de T 1 se envíe como documento de entrada a T 2 . Las tuberías 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 poda del árbol de entrada)
- Wrap : 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 literal de su entrada a la salida
- Comparar : se necesitan dos documentos y compararlos
- Transformar : ejecuta una transformación en el archivo de entrada utilizando un archivo XSLT específico . Se debe especificar la versión 1.0 o 2.0.
- Dividir : tome un único documento XML y divídalo en documentos distintos
Operaciones de secuencia
Se introducen principalmente en XProc y ayudan a manejar la secuencia del documento en su conjunto.
- Contar : toma una secuencia de documentos y los cuenta.
- Transformación de identidad : hace una copia literal de su secuencia de entrada de documentos en la salida.
- secuencia dividida : toma una secuencia de documentos como entrada y los enruta a diferentes salidas dependiendo de las reglas de coincidencia
- secuencia de ajuste : 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 : donde se ejecuta una transformación determinada si se cumple una condición y, en caso contrario, se ejecuta otra transformación.
- 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 de múltiples transformaciones que potencialmente ocurren en paralelo
- Agregaciones : donde se agregan varios documentos en un solo documento
- Manejo de excepciones : donde las fallas en el procesamiento pueden resultar en el procesamiento de una canalización alternativa
Algunos estándares también clasifican la transformación como macro (cambios que afectan a un archivo completo) 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 y finalmente ejecuta el canal. Los lenguajes de canalización XML existentes incluyen:
Estándares
Específico del producto
- El lenguaje de definición de canalización XML del W3C se especifica en una nota del W3C. [2]
- W3C XML Pipeline Language (XPL) Versión 1.0 (borrador) [3] [4] se especifica en un envío 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 canalizaciones complejas con condicionales, bucles, tees, agregaciones y subcanalizaciones. XProc es aproximadamente un superconjunto de XPL. [5]
- Los mapas de sitio de Cocoon permiten, entre otras funciones, la declaración de canalizaciones XML. Los mapas de sitio Cocoon son una de las primeras implementaciones del concepto de canalización XML.
- Las canalizaciones XML de Smallx son utilizadas por el proyecto Smallx.
- ServingXML define un vocabulario para expresar transformaciones XML planas, XML planas, planas y XML-XML en canalizaciones.
- Lenguaje de marcado de circuito PolarLake utilizado por el tiempo de ejecución de PolarLake para definir canalizaciones XML. Los circuitos son colecciones de rutas a través de las cuales se transmiten fragmentos de XML (generalmente como eventos SAX o DOM). Los componentes se colocan en rutas para interactuar con la transmisión (y/o el mundo exterior) en un proceso de baja latencia.
- xmlsh es un lenguaje de secuencias de comandos basado en shells de Unix que admite de forma nativa canalizaciones 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 de XML, elegir, advertencia, detener.
Granularidad de la tubería
Las diferentes implementaciones de XML Pipeline admiten diferentes granularidades de flujo.
- Documento: documentos completos fluyen a través de la tubería como unidades atómicas. Un documento sólo puede estar en un lugar a la vez. Aunque normalmente pueden haber varios documentos en la tubería a la vez.
- Evento: los eventos de los nodos de elemento/texto pueden fluir a través de diferentes rutas. Un documento puede estar fluyendo simultáneamente a través de muchos componentes al mismo tiempo.
Estandarización
Hasta mayo de 2010, no existía ningún estándar ampliamente utilizado para los lenguajes de canalización XML. Sin embargo, con la introducción del estándar W3C XProc como recomendación del W3C en mayo de 2010, [6] se puede esperar una adopción generalizada.
Historia
- 1972 Douglas McIlroy de Bell Laboratories agrega el operador de tubería al shell de comandos de UNIX . Esto permite que la salida de un programa shell vaya directamente a la entrada de otro programa shell sin tener que ir al disco. Esto permitió que programas como UNIX awk y sed se especializaran pero funcionaran juntos [2]. [7] Para obtener más detalles, consulte Pipeline (Unix) .
- 1993 Sean McGrath desarrolló un conjunto de herramientas en C++ para el procesamiento SGML . [8]
- 1998 Stefano Mazzocchi lanza la primera versión de Apache Cocoon , uno de los primeros programas de software en utilizar canalizaciones XML.
- 1998 PolarLake construye el sistema operativo XML, que incluye XML Pipelining.
- Las notas de 2002 presentadas por Norman Walsh y Eve Maler de Sun Microsystems , así como una presentación del W3C presentada en 2005 por Erik Bruchez y Alessandro Vernet de Orbeon, fueron pasos importantes para generar un esfuerzo de estandarización real. Si bien ninguna de las presentaciones 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 .
- Septiembre de 2005 Se inició el grupo de trabajo sobre procesamiento XML del W3C . La tarea de este grupo de trabajo era crear una especificación para un lenguaje de canalización XML.
- Agosto de 2008: xmlsh, un lenguaje de canalización XML, se anunció en Balisage 2008
Ver también
Referencias
- ^ "XProc: un lenguaje de canalización XML". 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 .
- ^ "Lenguaje de definición de canalización XML versión 1.0". W3.org. 2002-02-28 . Consultado el 14 de junio de 2013 .
- ^ "Canalizaciones XML: XPL y XProc". Orbeón. 22 de mayo de 2007 . Consultado el 14 de marzo de 2012 .
- ^ "XProc: un lenguaje de canalización XML". W3.org . Consultado el 14 de junio de 2013 .
- ^ "Historia y evolución temprana de Unix". Cm.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 14 de junio de 2013 .
enlaces externos
Estándares
Recomendaciones
- XProc: un lenguaje de canalización XML, recomendación del W3C del 11 de mayo de 2010
Borradores de trabajo
- Grupo de trabajo sobre el modelo de procesamiento XML del W3C
- Nota sobre el lenguaje de definición de canalización XML del W3C
- Envío de la versión 1.0 (borrador) del lenguaje de canalización XML (XPL) del W3C
Producto específico
- Tutorial y referencia de XPrac
- Implementación del controlador del lenguaje de definición de canalización XML de Oracle Parte del kit del desarrollador XML, sin descarga individual
- mapa del sitio capullo
- Canalizaciones XML de NetKernel
- Gestión de la generación de documentos complejos mediante canalización
- Documentación del lenguaje de canalización XML (XPL)
- Tubo SX
- PolarLake Gestión de datos de referencia Circuitos PolarLake XML y gestión de datos de referencia
- pequeñox
- Sirviendo XML
- Implementación de XML Pipeline desde 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 Stylus Studio XML Pipeline
- 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 web
- xmlsh Un shell para manipular xml basado en los shells de Unix. Admite canalizaciones de procesamiento de texto y xml multiproceso en proceso.
- [3] Cómo implementar XML Pipeline en XSLT
- Calabash es una implementación de XProc
- Calumet es una implementación XProc de EMC
- QuiXProc es una implementación XProc de Innovimax