In computer science, an XML Pipeline is formed when XML (Extensible Markup Language) processes, sometimes called XML transformations, are connected together.
For instance, given a two transformations T1 and T2, the two can be connected together so that an input XML document is transformed by T1 and then the output of T1 is fed as input document to T2. Simple pipeline like this one are called linear, as a single input document always goes through the same sequence of transformation to produce a single output document. Non-linear pipelines can include:
- Conditionals — where a given transformation is executed if a condition is met while another transformation is executed otherwise
- Loops — where a transformation is executed on each node of a node set selected from a document or a transformation is executed until a condition evaluates to false
- Tees — where a document is fed to multiple transformations potentially happening in parallel
- Aggregations — where multiple documents are aggregated into a single document
- Exception Handling — where failures in processing can result an alternate pipeline being processed
XML Pipeline languages
XML pipeline languages are used to define pipelines. A program written with an XML pipeline language is interpreted by software known as an XML pipeline engine, which creates processes, connects them together and finally executes the pipeline. Existing XML pipeline languages include:
- W3C XML Pipeline Definition Language is specified in a W3C Note and Sun provides an implementation (now obsolete?).
- W3C XML Pipeline Language (XPL) Version 1.0 (Draft) is specified in a W3C Submission and Orbeon PresentationServer (OPS) provides an implementation of an earlier version of the language. XPL allows the declaration of complex pipelines with conditionals, loops, tees, aggregations, and sub-pipelines.
- Cocoon sitemaps allow, among other functionality, the declaration of XML pipelines. Cocoon sitemaps are one of the earliest implementations of the concept of XML pipeline.
smallX is a tool which has pipelines as their main focus
Standardization
There is currently no standard for XML pipeline languages. However a W3C Note submitted in 2002 by Norman Walsh and Eve Maler, as well as a W3C Submission submitted in 2005 by Erik Bruchez and Alessandro Vernet from Orbeon, are important steps toward spawning an actual standardization effort. While neither submission is a W3C recommendation, it is hoped that they will serve as a source of inspiration for a W3C Working Group. As of September 2005, W3C is in the process of forming the XML Processing Model Working Group, whose main task will be the specification of an XML pipelining language.
External links
- W3C XML Pipeline Definition Language Note
- W3C XML Pipeline Language (XPL) Version 1.0 (Draft) Submission
- Sun's XML Pipeline Definition Language Controller Implementation [Link broken, 22 Dec 04]
- Oracle's XML Pipeline Definition Language Controller Implementation Part of XML Developer's kit, no individual download
- Cocoon sitemap
- Managing Complex Document Generation through Pipelining
- XML Pipeline Language (XPL) Documentation
- SXPipe