- From: Romain Deltour <rdeltour@gmail.com>
- Date: Tue, 5 Jun 2012 16:32:29 +0200
- To: Yves Forkl <Y.Forkl@srz.de>
- Cc: XProc Dev <xproc-dev@w3.org>
p:declare-step is used to *declare* the step, it's p:input and p:output declare it's signature and default bindings. Once you declared these steps (usually in a XProc library), you will be able to invoke them in your main pipeline using their declared types:
<srz:step1>
... declare connections...
</srz:step1>
<src:step1>
... declare connections...
</srz:step2>
<srz:step2>
... declare connections...
</srz:step2>
Hope this helps,
Romain.
On 5 juin 2012, at 16:21, Yves Forkl wrote:
> I have trouble setting up a pipeline of 3 steps which should connect roughly like this:
>
> pipeline input -> STEP 1 -> non-primary input to step 3
>
> external document -> STEP 2 -> primary input to step 3
>
> primary output from step 2 + output from step 1 -> STEP 3 -> multiple files
>
>
> Here is a sketch of the 3 step definitions I have come up with:
>
> <p:declare-step name="step1" type="srz:step1">
> <p:input port="source"/>
> <p:output port="result" primary="false"/>
> <!-- . . . -->
> </p:declare-step>
>
> <p:declare-step name="step2" type="srz:step2">
> <p:input port="source" primary="false">
> <p:document href="input_step2.xml"/>
> </p:input>
> <p:output port="result"/>
> <!-- . . . -->
> </p:declare-step>
>
> <p:declare-step name="step3" type="srz:step3">
> <p:input port="source" primary="true"/>
> <p:input port="result_from_step1" primary="false">
> <p:pipe step="step1" port="result"/>
> </p:input>
> <p:output port="result" sequence="true">
> <p:pipe step="store-each" port="result"/>
> </p:output>
> <!-- . . . -->
> <p:for-each name="store-each">
> <p:variable name="position" select="p:iteration-position()" />
> <p:store name="store"
> omit-xml-declaration="false"
> indent="false">
> <p:with-option name="href"
> select="concat('outputfile', $position, '.xml')"/>
> </p:store>
> <!-- . . . -->
> </p:for-each>
> </p:declare-step>
>
> When I try to run these steps sequentially in a pipeline, Calabash (V. 0.9.44.94) complains about binding port result_from_step1 in step 3 saying: "Default input bindings cannot use p:pipe"
>
> It does not occur to me why binding that non-primary input port interferes with default input bindings.
>
> What am I missing? How can I achieve the desired flow of information?
>
> (If the code fragment above doesn't reveal my mistake to you in an obvious way, I could try to rework my real and more complex pipeline together with the data files into a complete test case.)
>
> Yves
>
Received on Tuesday, 5 June 2012 16:28:45 UTC