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 , se pueden conectar de manera que un documento XML de entrada sea transformado por T 1 y, a continuación, el resultado de T 1 se utilice como documento de entrada para T 2. Las secuencias de procesamiento 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 interno del documento.
- 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).
- 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 : realiza una copia exacta de su entrada en la salida.
- Comparar : toma dos documentos y los compara.
- Transformación : ejecuta una transformación en el archivo de entrada utilizando un archivo XSLT especificado . Debe especificarse la versión 1.0 o 2.0.
- Split : toma un único documento XML y lo divide en documentos distintos.
Operaciones de secuencia
Se introducen principalmente en XProc y ayudan a gestionar la secuencia del documento en su conjunto.
- Contar : toma una secuencia de documentos y los cuenta.
- Transformación de identidad : realiza una copia literal de su secuencia de documentos de entrada a 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 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úe como falsa.
- Tees : donde un documento se somete a múltiples transformaciones que potencialmente ocurren en paralelo.
- Agregaciones : donde varios documentos se agrupan en un solo documento.
- Manejo de excepciones : donde los fallos en el procesamiento pueden dar como resultado que se procese una canalización alternativa.
Algunos estándares también clasifican 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. Algunos lenguajes de canalización XML existentes son:
Estándares
- XProc: Un lenguaje de canalización XML es una recomendación del W3C [ 1 ] para definir canalizaciones XML lineales y no lineales.
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 de canalización XML (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 canalizaciones complejas con condicionales, bucles, tees, agregaciones y subcanalizaciones. XProc es, en términos generales, un superconjunto de XPL. [ 5 ]
- Los mapas del sitio de Cocoon permiten, entre otras funcionalidades, la declaración de flujos XML. Los mapas del sitio de Cocoon son una de las primeras implementaciones del concepto de flujo XML.
- El proyecto smallx utiliza las canalizaciones XML .
- ServingXML define un vocabulario para expresar transformaciones de XML plano, XML plano, plano plano y XML-XML en flujos de trabajo.
- PolarLake Circuit Markup Language ( archivado el 30 de agosto de 2010 en Wayback Machine) es utilizado por el entorno de ejecución de PolarLake para definir canalizaciones XML . Los circuitos son conjuntos de rutas a través de las cuales fluyen fragmentos de XML (generalmente 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 scripting basado en los shells de Unix que admite de forma nativa flujos de datos XML y de texto.Archivado el 25 de junio de 2024 en Wayback Machine.
Granularidad de la tubería
Las distintas implementaciones de XML Pipeline admiten diferentes niveles de granularidad de flujo.
- Documento: Los documentos completos fluyen a través del sistema como unidades atómicas. Un documento solo puede estar en un lugar a la vez. Aunque normalmente puede haber varios documentos en el sistema simultáneamente.
- Evento: Los eventos de los nodos de elementos/texto pueden fluir por diferentes rutas. Un documento puede estar pasando simultáneamente por muchos componentes al mismo tiempo.
Normalización
Hasta mayo de 2010, no existía un 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
- En 1972, Douglas McIlroy, de los Laboratorios Bell, añadió el operador de tubería al intérprete de comandos de UNIX . Esto permitió que la salida de un programa de shell se conectara directamente a la entrada de otro programa de shell sin necesidad de acceder al disco. Esto posibilitó que programas como awk y sed de UNIX se especializaran y, al mismo tiempo, funcionaran conjuntamente.. [ 7 ] Para obtener más detalles, consulte Pipeline (Unix) .
- En 1993, Sean McGrath desarrolló un conjunto de herramientas en C++ para el procesamiento de SGML . [ 8 ]
- En 1998, Stefano Mazzocchi lanzó la primera versión de Apache Cocoon , uno de los primeros programas informáticos en utilizar flujos de trabajo XML.
- 1998 PolarLake Archivado el 18-04-2008 en la Wayback Machine compilación Sistema operativo XML Archivado el 30-08-2010 en la Wayback Machine , que incluye XML Pipelining Archivado el 30-08-2010 en la Wayback Machine .
- Las notas presentadas en 2002 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 para impulsar un esfuerzo de estandarización real. 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 consistía en crear una especificación para un lenguaje de procesamiento en paralelo XML.
- Agosto de 2008, xmlsh Archivado el 25/06/2024 en Wayback Machine , se anunció un lenguaje de canalización XML en Balisage 2008.
Véase también
Referencias
- ↑ "XProc: Un lenguaje de canalización XML" . W3.org . Consultado el 14 de junio de 2013 .
- ↑ "Lenguaje de definición de canalizaciones 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 .
- ↑ "Pipelines XML: XPL y XProc" . Orbeon. 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" . www.bell-labs.com. Archivado del original el 8 de abril de 2015. Consultado el 14 de junio de 2013 .
- ↑ "Preguntas frecuentes" . Xpipe.sourceforge.net. 09/12/2001 . Consultado el 14/06/2013 .
Enlaces externos
Estándares
Recomendaciones
- XProc: Un lenguaje de canalización XML , Recomendación del W3C, 11 de mayo de 2010
Borradores de trabajo
- Grupo de trabajo del modelo de procesamiento XML del W3C
- Nota sobre el lenguaje de definición de canalizaciones XML del W3C
- Presentación del lenguaje de canalización XML (XPL) del W3C, versión 1.0 (borrador)
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 XML, no se requiere descarga individual.
- Mapa del sitio de Cocoon
- Canalizaciones XML de NetKernel
- Gestión de la generación de documentos complejos mediante la creación de flujos de trabajo. Archivado el 28/10/2005 en Wayback Machine.
- Documentación del lenguaje de canalización XML (XPL) archivada el 12 de diciembre de 2004 en Wayback Machine.
- Tubo SX
- Gestión de datos de referencia de PolarLake Archivado el 18/04/2008 en Wayback Machine Circuitos XML de PolarLake y gestión de datos de referencia
- smallx Archivado el 8 de julio de 2007 en la Wayback Machine
- Servir XML
- Implementación de la canalización XML desde Stylus Studio : este programa permite encadenar transformaciones XML junto con otras operaciones en archivos XML, como la validación y la limpieza de HTML.
- IVI XML Pipeline Server XML Pipeline Server es una implementación del 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 que actualmente cuenta con interfaz de línea de comandos y 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 Archivado el 25/06/2024 en Wayback Machine. Un intérprete de comandos para manipular XML basado en los intérpretes de comandos de Unix. Admite procesos de procesamiento de XML y texto multihilo dentro del mismo proceso .
- Archivado el 11 de marzo de 2009 en Wayback Machine: 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.
- Estándares basados en XML
- Comunicación entre procesos