fbpx
Wikipedia

XML pipeline

In software, an XML pipeline is formed when XML (Extensible Markup Language) processes, especially XML transformations and XML validations, are connected.

For instance, given two transformations T1 and T2, the two can be connected so that an input XML document is transformed by T1 and then the output of T1 is fed as input document to T2. 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.

Linear operations

Linear operations can be divided in at least two parts

Micro-operations

They operate at the inner document level

  • 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)
  • Wrap - wraps elements with additional elements
  • Reorder - changes the order of elements

Document operations

They take the input document as a whole

  • Identity transform - makes a verbatim copy of its input to the output
  • Compare - it takes two documents and compare them
  • Transform - execute a transform on the input file using a specified XSLT file. Version 1.0 or 2.0 should be specified.
  • Split - take a single XML document and split it into distinct documents

Sequence operations

They are mainly introduced in XProc and help to handle the sequence of document as a whole

  • Count - it takes a sequence of documents and counts them
  • Identity transform - makes a verbatim copy of its input sequence of documents to the output
  • split-sequence - takes a sequence of documents as input and routes them to different outputs depending on matching rules
  • wrap-sequence - takes a sequence of documents as input and wraps them into one or more documents

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 in 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:

Standards

Product-specific

  • W3C XML Pipeline Definition Language is specified in a W3C Note.[2]
  • W3C XML Pipeline Language (XPL) Version 1.0 (Draft) [3][4] 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. XProc is roughly a superset of XPL.[5]
  • 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.
  • xmlsh is a scripting language based on the unix shells which natively supports xml and text pipelines [1]
  • Stylus Studio XML Pipeline is a visual grammar which defines the following operations: Input, Output, XQuery, XSLT, Validate, XSL-FO to PDF, Convert To XML, Convert From XML, Choose, Warning, Stop.

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 concurrently flowing through many components at the same time.

Standardization

Until May 2010, there was no widely used standard for XML pipeline languages. However, with the introduction of the W3C XProc standard as a W3C Recommendation as of May 2010,[6] widespread adoption can be expected.

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 [2].[7] For more details see Pipeline (Unix).
  • 1993 Sean McGrath developed a C++ toolkit for SGML processing.[8]
  • 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.
  • August 2008, xmlsh, an XML pipeline language was announced at Balisage 2008

See also

References

  1. ^ "XProc: An XML Pipeline Language". W3.org. Retrieved 2013-06-14.
  2. ^ "W3C XML Pipeline Definition Language".
  3. ^ "XML Pipeline Language (XPL) Version 1.0 (Draft)". W3.org. Retrieved 2013-06-14.
  4. ^ "XML Pipeline Definition Language Version 1.0". W3.org. 2002-02-28. Retrieved 2013-06-14.
  5. ^ "XML pipelines: XPL and XProc". Orbeon. 22 May 2007. Retrieved 14 March 2012.
  6. ^ "XProc: An XML Pipeline Language". W3.org. Retrieved 2013-06-14.
  7. ^ . Cm.bell-labs.com. Archived from the original on April 8, 2015. Retrieved 2013-06-14.
  8. ^ "FAQ". Xpipe.sourceforge.net. 2001-12-09. Retrieved 2013-06-14.

External links

Standards

Recommendations

  • XProc: An XML Pipeline Language, W3C Recommendation 11 May 2010

Working drafts

  • W3C XML Processing Model Working Group
  • W3C XML Pipeline Definition Language Note
  • W3C XML Pipeline Language (XPL) Version 1.0 (Draft) Submission

Product specific

  • XProc tutorial and reference
  • Oracle's XML Pipeline Definition Language Controller Implementation Part of XML Developer's kit, no individual download
  • Cocoon sitemap
  • NetKernel XML Pipelines
  • Managing Complex Document Generation through Pipelining
  • XML Pipeline Language (XPL) Documentation
  • SXPipe
  • PolarLake Reference data management PolarLake XML circuits and reference data management
  • smallx
  • ServingXML
  • 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.
  • IVI XML Pipeline Server XML Pipeline Server is an implementation for the Stylus Studio XML Pipeline language
  • Norman Walsh's XProc web site - Norman Walsh is the chair of the W3C XProc standards committee.
  • yax - an XProc Implementation currently with commandline and Apache ant interface
  • let's users create multi-source data mashups in a web-based visual environment
  • xmlsh A shell for manipulating xml based on the unix shells. Supports in-process multithreaded xml and text processing pipelines.
  • [3] How to implement XML Pipeline in XSLT
  • Calabash is an implementation of XProc
  • Calumet is an XProc implementation from EMC
  • QuiXProc is an XProc implementation of Innovimax

pipeline, software, formed, when, extensible, markup, language, processes, especially, transformations, validations, connected, instance, given, transformations, connected, that, input, document, transformed, then, output, input, document, simple, pipelines, l. In software an XML pipeline is formed when XML Extensible Markup Language processes especially XML transformations and XML validations are connected For instance given two transformations T1 and T2 the two can be connected so that an input XML document is transformed by T1 and then the output of T1 is fed as input document to T2 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 Contents 1 Linear operations 1 1 Micro operations 1 2 Document operations 1 3 Sequence operations 2 Non linear 3 XML pipeline languages 3 1 Standards 3 2 Product specific 4 Pipe granularity 5 Standardization 6 History 7 See also 8 References 9 External links 9 1 Standards 9 1 1 Recommendations 9 1 2 Working drafts 9 2 Product specificLinear operations EditLinear operations can be divided in at least two parts Micro operations Edit They operate at the inner document level 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 Wrap wraps elements with additional elements Reorder changes the order of elementsDocument operations Edit They take the input document as a whole Identity transform makes a verbatim copy of its input to the output Compare it takes two documents and compare them Transform execute a transform on the input file using a specified XSLT file Version 1 0 or 2 0 should be specified Split take a single XML document and split it into distinct documentsSequence operations Edit They are mainly introduced in XProc and help to handle the sequence of document as a whole Count it takes a sequence of documents and counts them Identity transform makes a verbatim copy of its input sequence of documents to the output split sequence takes a sequence of documents as input and routes them to different outputs depending on matching rules wrap sequence takes a sequence of documents as input and wraps them into one or more documentsNon linear EditNon 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 in an alternate pipeline being processedSome standards also categorize transformation as macro changes impacting an entire file or micro impacting only an element or attribute XML pipeline languages EditXML 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 Standards Edit XProc An XML Pipeline Language is a W3C Recommendation 1 for defining linear and non linear XML pipelines Product specific Edit W3C XML Pipeline Definition Language is specified in a W3C Note 2 W3C XML Pipeline Language XPL Version 1 0 Draft 3 4 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 XProc is roughly a superset of XPL 5 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 xmlsh is a scripting language based on the unix shells which natively supports xml and text pipelines 1 Stylus Studio XML Pipeline is a visual grammar which defines the following operations Input Output XQuery XSLT Validate XSL FO to PDF Convert To XML Convert From XML Choose Warning Stop Pipe granularity EditDifferent 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 concurrently flowing through many components at the same time Standardization EditUntil May 2010 there was no widely used standard for XML pipeline languages However with the introduction of the W3C XProc standard as a W3C Recommendation as of May 2010 6 widespread adoption can be expected History Edit1972 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 2 7 For more details see Pipeline Unix 1993 Sean McGrath developed a C toolkit for SGML processing 8 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 August 2008 xmlsh an XML pipeline language was announced at Balisage 2008See also EditApache Cocoon Identity transform NetKernel Pipeline Unix W3C recommendation XSLTReferences Edit XProc An XML Pipeline Language W3 org Retrieved 2013 06 14 W3C XML Pipeline Definition Language XML Pipeline Language XPL Version 1 0 Draft W3 org Retrieved 2013 06 14 XML Pipeline Definition Language Version 1 0 W3 org 2002 02 28 Retrieved 2013 06 14 XML pipelines XPL and XProc Orbeon 22 May 2007 Retrieved 14 March 2012 XProc An XML Pipeline Language W3 org Retrieved 2013 06 14 Early Unix history and evolution Cm bell labs com Archived from the original on April 8 2015 Retrieved 2013 06 14 FAQ Xpipe sourceforge net 2001 12 09 Retrieved 2013 06 14 External links EditStandards Edit Recommendations Edit XProc An XML Pipeline Language W3C Recommendation 11 May 2010Working drafts Edit W3C XML Processing Model Working Group W3C XML Pipeline Definition Language Note W3C XML Pipeline Language XPL Version 1 0 Draft SubmissionProduct specific Edit XProc tutorial and reference Oracle s XML Pipeline Definition Language Controller Implementation Part of XML Developer s kit no individual download Cocoon sitemap NetKernel XML Pipelines Managing Complex Document Generation through Pipelining XML Pipeline Language XPL Documentation SXPipe PolarLake Reference data management PolarLake XML circuits and reference data management smallx ServingXML 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 IVI XML Pipeline Server XML Pipeline Server is an implementation for the Stylus Studio XML Pipeline language Norman Walsh s XProc web site Norman Walsh is the chair of the W3C XProc standards committee yax an XProc Implementation currently with commandline and Apache ant interface Yahoo Pipes let s users create multi source data mashups in a web based visual environment xmlsh A shell for manipulating xml based on the unix shells Supports in process multithreaded xml and text processing pipelines 3 How to implement XML Pipeline in XSLT Calabash is an implementation of XProc Calumet is an XProc implementation from EMC QuiXProc is an XProc implementation of Innovimax Retrieved from https en wikipedia org w index php title XML pipeline amp oldid 1103937078, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.