- From: Alex Milowski <alex@milowski.com>
- Date: Thu, 20 Feb 2014 12:00:55 +0000
- To: XProc Dev <xproc-dev@w3.org>
OK. I'm curious. Personally, I don't use p:pipeline because I've found that the moment I need to do something a bit more complex, I have to switch to use p:declare-step. Also, the moment I want to make it a callable step within a larger pipeline, I have to switch to p:declare-step. So, I just start with p:declare-step now. On Wed, Feb 19, 2014 at 7:49 AM, Geert J. <geert.josten@dayon.nl> wrote: > A lot has been said, still need to read up most unfortunately. But just a > short reply on the example. My first stab at XProc (if I hadn't taken the > unorthodox approach that I did, building my ebook proc) would have been: > > <p:pipeline> > <p:load href="myinput.xml"/> > <p:xslt href="mytransform.xsl"/> > <p:store href="myoutput.xml"/> > </p:pipeline> First, why not: <p:pipeline> <p:xslt> <p:input port="stylesheet"><p:document href="mytransform.xsl"/></p:input> </p:xslt> </p:pipeline> and then you bind on the command-line: calabash -i source=myinput.xml -o result=myoutput.xml mypipeline.xpl ? Second, here's the p:declare-step version: <p:declare-step> <p:input port="source" primary="true"/> <p:output port="result" primary="true"/> <p:xslt> <p:input port="stylesheet"><p:document href="mytransform.xsl"/></p:input> </p:xslt> </p:declare-step> If you needed parameters, you'd have to add that port now but in V2 it will happen differently. > > Which resembles Cocoon sitemap approach a lot. And anyone used to Cocoon > sitemaps knows how easy it is to tie Cocoon pipes to each other, where in > XProc it involves lots of verbose syntax to point to specific step ports > that need to be in scope as well.. I don't find port binding that verbose and there are a bunch of features packed in there for providing a great deal of flexibility in building the input. Meanwhile, we could make the simple case much easier in V2 and we should consider doing so. > > XProc doesn't do that bad though. The only thing lacking here is the href > on p:xslt. If that were present, you could easily chain lots of xslt's as > well, by simply repeating the p:xslt: > > <p:pipeline> > <p:load href="myinput.xml"/> > <p:xslt href="mytransform.xsl"/> > <p:xslt href="mytransform2.xsl"/> > <p:xslt href="mytransform3.xsl"/> > <p:store href="myoutput.xml"/> > </p:pipeline> Again, this is more of the same. I don't quite understand why you don't use the ports that come with p:pipeline by default (there is already a "source" and "result" port). -- --Alex Milowski "The excellence of grammar as a guide is proportional to the paucity of the inflexions, i.e. to the degree of analysis effected by the language considered." Bertrand Russell in a footnote of Principles of Mathematics
Received on Thursday, 20 February 2014 12:01:22 UTC