- From: <Toman_Vojtech@emc.com>
- Date: Fri, 11 Sep 2009 07:30:31 -0400
- To: <xproc-dev@w3.org>
Hi,
You will need to give the step a type, for instance like this:
<p:declare-step name="myPipeline" type="my:pipeline"
xmlns:c="http://www.w3.org/ns/xproc-step"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:my="http://www.example.com/ns/xproc">
...
You can then call your pipeline recursively like any other XProc step:
<my:pipeline>
...
</my:pipeline>
Also, if you want your pipeline to take the output of the previous
iteration as its input, you probably will have to add an input port to
the pipeline.
Regards,
Vojtech
> -----Original Message-----
> From: xproc-dev-request@w3.org
> [mailto:xproc-dev-request@w3.org] On Behalf Of Manfred Staudinger
> Sent: Friday, September 11, 2009 1:09 PM
> To: xproc-dev
> Subject: How to invoke a step recursively?
>
> I would like to invoke step level-1 of my pipeline [1] recursively. So
> iteration n should invoke this step with using the output from
> iteration n-1 as its input. I need to have also the output from all
> the iterations explicit in result. How can I achive this?
>
> Regards,
> Manfred
>
> [1] xpl:
> <p:declare-step name="myPipeline"
> xmlns:c="http://www.w3.org/ns/xproc-step"
> xmlns:p="http://www.w3.org/ns/xproc">
> <p:option name="dir"/>
> <p:output port="result" sequence="true">
> <p:pipe step="level-0" port="result"/>
> <p:pipe step="level-1" port="result"/>
> </p:output>
> <p:serialization port="result" indent="true"
> omit-xml-declaration="false"/>
> <p:directory-list name="level-0">
> <p:with-option name="path" select="concat($dir,
> '/')"><p:empty/></p:with-option>
> </p:directory-list>
> <p:make-absolute-uris match="*/c:directory/@name">
> <p:with-option name="base-uri"
> select="concat($dir, '/')"/>
> </p:make-absolute-uris>
> <p:for-each name="level-1">
> <p:iteration-source select="/c:directory/c:directory"/>
> <p:output port="result"/>
> <p:variable name="dirpath"
> select="concat(c:directory/@name, '/')"/>
> <p:directory-list>
> <p:with-option name="path" select="$dirpath"/>
> </p:directory-list>
> <p:make-absolute-uris match="*/c:directory/@name">
> <p:with-option name="base-uri"
> select="$dirpath"/>
> </p:make-absolute-uris>
> </p:for-each>
> </p:declare-step>
>
>
>
Received on Friday, 11 September 2009 11:36:26 UTC