XML pipeline

XML pipeline

In computer science, an XML Pipeline is formed when XML (Extensible Markup Language) processes, sometimes called XML transformations, are connected together.

For instance, given 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.

* Linear Operations

Simple pipelines like the one described above are called "linear"; a single input document always goes through the same sequence of transformations to produce a single output document.

Examples of operations on linear pipeline may include:
* Identity transform - makes a verbatim copy of its input to the output
* Transform - execute a transform on the input file using a specified XSLT file. Version 1.0 or 2.0 should be specified.
* Rename - renames elements or attributes without modifying the content
* Replace - replaces elements or attributes
* Insert - adds a new data element to the output stream at a specified point
* Delete - removes an element or attribute (also known as pruning the input tree)
* Split - take a single XML document and split it into distinct documents
* Wrap - wraps elements with additional elements
* Reorder - changes the order of elements

Non-linear

Non-linear operations on pipelines may 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

Some standards also categorize transformation as macro (changes impacting an entire file) or micro (impacting only an element or attribute)

XML Pipeline languages

XML pipeline languages are used to define pipelines. A program written with an XML pipeline language is implemented by software known as an XML pipeline engine, which creates processes, connects them together and finally executes the pipeline. Existing XML pipeline languages include:

* is currently a W3C Working Draft [http://www.w3.org/TR/xproc]
* W3C XML Pipeline Definition Language is specified in a W3C Note and Sun provides an implementation.Fact|date=October 2007
* W3C XML Pipeline Language (XPL) Version 1.0 (Draft) [http://www.w3.org/Submission/xpl/] [http://www.w3.org/TR/xml-pipeline/] is specified in a W3C Submission and a component of Orbeon Presentation Server OPS (now called Orbeon Forms). This specification 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 XML Pipelines are used by the smallx project.
* ServingXML defines a vocabulary for expressing flat-XML, XML-flat, flat-flat, and XML-XML transformations in pipelines.
* PolarLake Circuit Markup Language used by PolarLake's runtime to define XML pipelines. Circuits are collections of paths through which fragments of XML stream (usually as SAX or DOM events). Components are placed on paths to interact with the stream (and/or the outside world) in a low latency process.

Pipe Granularity

Different XML Pipeline implementations support different granularity of flow.

* Document: Whole documents flow through the pipe as atomic units. A document can only be in one place at a time. Though usually multiple documents may be in the pipe at once.
* Event: Element/Text nodes events may flow through different paths. A document may be in concurrently flowing through many components at the same time.

Standardization

There is currently no widely used standard for XML pipeline languages. However the W3C XProc standard was in Working Draft stage as of November 2006 [http://www.w3.org/TR/xproc/] [http://norman.walsh.name/2006/09/28/xprocfpwd] . This work is considered on-going.

XML Pipeline History

* 1972 Douglas McIlroy of Bell Laboratories adds the pipe operator to the UNIX command shell. This allows the output from one shell program to go directly into input of another shell program without going to disk. This allowed programs such as the UNIX awk and sed to be specialized yet work together [http://www.cs.dartmouth.edu/~doug/] [http://cm.bell-labs.com/cm/cs/who/dmr/hist.html] . For more details see Pipeline (Unix).
* 1993 [http://seanmcgrath.blogspot.com Sean McGrath] developed a C++ toolkit for SGML processing [http://xpipe.sourceforge.net/Articles/Miscellaneous/fog0000000020.html] .
* 1998 Stefano Mazzocchi releases the first version of Apache Cocoon, one of the first software programs to use XML pipelines.
* 1998 PolarLake build XML Operating System, which includes XML Pipelining.
* 2002 Notes submitted by Norman Walsh and Eve Maler from Sun Microsystems, as well as a W3C Submission submitted in 2005 by Erik Bruchez and Alessandro Vernet from Orbeon, were important steps toward spawning an actual standardization effort. While neither submission directly became a W3C recommendation, they were considered key sources of inspiration for the W3C XML Processing Working Group.
* September 2005 W3C XML Processing Working Group started. The task of this working group was to create a specification for an XML pipelining language.

See also

* Apache Cocoon
* Identity transform
* NetKernel
* Pipeline (Unix)
* W3C recommendation
* XSLT

External links

* [http://www.w3.org/TR/xml-pipeline/ W3C XML Pipeline Definition Language Note]
* [http://www.w3.org/Submission/xpl/ W3C XML Pipeline Language (XPL) Version 1.0 (Draft) Submission]
* [http://www.w3.org/XML/Processing/ W3C XML Processing Model Working Group]
* [http://www.oracle.com/technology/tech/xml/xdkhome.html Oracle's XML Pipeline Definition Language Controller Implementation] "Part of XML Developer's kit, no individual download"
* [http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html Cocoon sitemap]
* [http://www.1060research-server-1.co.uk/docs/3.2.0/book/tutorial/doc_guide_xml_pipelines_main.html NetKernel XML Pipelines]
* [http://idealliance.org/proceedings/xtech05/papers/04-03-01/ Managing Complex Document Generation through Pipelining]
* [http://www.orbeon.com/ois/doc/reference-xpl-pipelines XML Pipeline Language (XPL) Documentation]
* [http://norman.walsh.name/2004/06/20/sxpipe SXPipe]
* [http://www.polarlake.com/ PolarLake] PolarLake XML circuits
* [https://smallx.dev.java.net/ smallx]
* [http://servingxml.sourceforge.net/ ServingXML]
* [http://www.stylusstudio.com/xml/pipeline.html XML Pipeline Implementation from Stylus Studio] - This program allows XML transforms to be chained together along with other operations on XML files such as validation and HTML tidy.
* [http://xproc.org/ Norman Walsh's XProc web site] - Norman Walsh is the chair of the W3C XProc standards committee.
* [http://yax.sourceforge.net/ yax - an XProc Implementation] currently with commandline and Apache ant interface
* [http://pipes.yahoo.com/ Yahoo! Pipes] let's users create multi-source data mashups in a web-based visual environment


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • XML Pipeline — Eine XML Pipeline wird gebildet, wenn mehrere XML (Extensible Markup Language) Prozesse wie Transformationen und Validierungen miteinander verbunden werden. Zum Beispiel können zwei Transformationen, T1 und T2, so miteinander verbunden werden,… …   Deutsch Wikipedia

  • Pipeline — may refer to:* Classic RISC pipeline, a five stage hardware based computer instruction set. * Pipeline transport, a conduit made from pipes connected end to end for long distance fluid transport * Plastic pressure pipeline, for fluid handling *… …   Wikipedia

  • Pipeline XML — Un pipeline XML, ou chaîne de transformation XML, représente la mise bout à bout de transformation XML, avec éventuellement en bout de chaîne, une transformation finale vers un format quelconque (dialecte XML, HTML, texte, etc.). Outils Il existe …   Wikipédia en Français

  • .xml — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • XML — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • Xml — Extensible Markup Language Extensible Markup Language Extension de fichier .xml Type MIME application/xml, text/xml Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • Pipeline (software) — In software engineering, a pipeline consists of a chain of processing elements (processes, threads, coroutines, etc .), arranged so that the output of each element is the input of the next. Usually some amount of buffering is provided between… …   Wikipedia

  • Pipeline (Unix) — In Unix like computer operating systems, a pipeline is the original software pipeline : a set of processes chained by their standard streams, so that the output of each process ( stdout ) feeds directly as input ( stdin ) of the next one. Each… …   Wikipedia

  • Pipeline (Begriffsklärung) — Eine Pipeline (Englisch „Rohrleitung“, von pipe „Rohr, Röhre“ und line „Linie, Leitung, Verbindung“) ist: ein Rohrleitungssystem zum Transport von Flüssigkeiten oder Gasen, siehe Pipeline, in der Massenproduktion eine „Bearbeitungsröhre“, siehe… …   Deutsch Wikipedia

  • Pipeline (computing) — In computing, a pipeline is a set of data processing elements connected in series, so that the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time sliced fashion; in that case,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”