En software , una canalización XML se forma cuando los procesos XML (Lenguaje de marcado extensible), especialmente las transformaciones XML y las validaciones XML , están conectados.
Por ejemplo, dadas dos transformaciones T 1 y T 2 , las dos se pueden conectar de modo que un documento XML de entrada sea transformado por T 1 y luego la salida de T 1 se alimente como documento de entrada a T 2 . Las tuberías simples como la descrita anteriormente se denominan lineales ; un solo documento de entrada siempre pasa por la misma secuencia de transformaciones para producir un solo 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 los 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 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 especificado . Se debe especificar la versión 1.0 o 2.0.
- Dividir : tome un solo documento XML y divídalo en distintos documentos
Operaciones de secuencia
Se introducen principalmente en XProc y ayudan a manejar la secuencia del documento como un todo.
- Recuento : toma una secuencia de documentos y los cuenta.
- Transformación de identidad : realiza una copia literal de su secuencia de entrada de documentos a la salida
- secuencia dividida : toma una secuencia de documentos como entrada y los enruta 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 : donde se ejecuta una transformación dada 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 potencialmente suceden 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 tubería 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 la canalización. Los lenguajes de canalización XML existentes incluyen:
Estándares
- XProc: un lenguaje de canalización XML es una recomendación del W3C [1] para definir canalizaciones XML lineales y no lineales.
Producto específico
- 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 de W3C y 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 tuberías complejas con condicionales, bucles, tees, agregaciones y subprocesos. XProc es aproximadamente un superconjunto de XPL. [5]
- Los sitemaps de Cocoon permiten, entre otras funcionalidades, la declaración de pipelines XML. Los mapas de sitio de Cocoon son una de las primeras implementaciones del concepto de canalización XML.
- Smallx XML Pipelines son utilizados por el proyecto smallx.
- ServingXML define un vocabulario para expresar transformaciones XML-flat, XML-flat, flat-flat y XML-XML en canalizaciones.
- Lenguaje de marcado de circuitos PolarLake utilizado por el tiempo de ejecución de PolarLake para definir tuberías XML . Los circuitos son colecciones de rutas a través de las cuales fluyen 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 scripting basado en los shells de Unix que soporta de forma nativa xml y canalizaciones de texto [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 una granularidad de flujo diferente.
- 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 por lo general pueden estar varios documentos en proceso a la vez.
- Evento: Los eventos de nodos de elemento / texto pueden fluir a través de diferentes rutas. Un documento puede fluir simultáneamente a través de muchos componentes al mismo tiempo.
Estandarizació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 a partir de 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 de shell vaya directamente a la entrada de otro programa de shell sin ir al disco. Esto permitió que programas como UNIX awk y sed estuvieran especializados pero trabajaran juntos [2] . [7] Para obtener más detalles, consulte Pipeline (Unix) .
- 1993 Sean McGrath desarrolló un conjunto de herramientas 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 pipelines XML.
- 1998 PolarLake construyó el sistema operativo XML , que incluye XML Pipelining .
- 2002 Las notas enviadas por Norman Walsh y Eve Maler de Sun Microsystems , así como una presentación al W3C enviada 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 de Procesamiento XML del W3C . La tarea de este grupo de trabajo fue crear una especificación para un lenguaje de canalización XML.
- Agosto de 2008, xmlsh , se anunció un lenguaje de canalización XML 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 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 .
- ^ "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" . 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 del modelo de procesamiento XML del W3C
- Nota sobre el lenguaje de definición de canalización XML del W3C
- Envío de W3C XML Pipeline Language (XPL) versión 1.0 (borrador)
Producto específico
- Tutorial y referencia de XProc
- Implementación del controlador de lenguaje de definición de canalización XML de Oracle Parte del kit del desarrollador XML, sin descarga individual
- Mapa del sitio de Cocoon
- Canalizaciones XML de NetKernel
- Gestión de la generación de documentos complejos mediante canalización
- Documentación de XML Pipeline Language (XPL)
- SXPipe
- Gestión de datos de referencia de PolarLake Gestión de datos de referencia y circuitos XML de PolarLake
- viruela
- ServingXML
- 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 ordenación HTML.
- IVI XML Pipeline Server XML Pipeline Server es una implementación del 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 mashups 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 de XProc de EMC
- QuiXProc es una implementación XProc de Innovimax