Pipelining - a very poor man's XProc

Inspired by a discussion on the MulberryTech XSLT list about the definition of the term Micro Pipelining, I decided to add a URI resolver for URIs of the form stdin:[#fragment-identifier] for reading from the standard input stream, to the Gobo XML library (there is already an XSLT output resolver for stdout: to signify writing to the standard output stream, although it is not used explicitly normally).

This enables a very poor mans XProc - multiple uses of the gestalt command-line processor connected by pipes. Either the principal source document for the second transformation, or the second transformation itself, can be generated by the first step in the pipeline.

E.g. gestalt generate.xsl skeleton.xml | gestalt stdin: data.xml

would be a pipeline that generates a transformation from a skeleton and then pipes it to be applied to a data file.

Note that this is exactly the pattern used by Schematron:

gexslt schematron-basic.xsl wai.xml | gexslt stdin: evil_wai.xml

produces the schematron report of all that is bad with evil_wai.xml