- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 27 May 2009 19:42:35 -0400
- To: XProc Dev <xproc-dev@w3.org>
- Message-ID: <m28wkicduc.fsf@nwalsh.com>
> Yuck! But can we really live with this...
Here, for the record, is a a recursive-directory-list step.
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step"
xmlns:pxp="http://exproc.org/proposed/steps"
type="pxp:recursive-directory-list">
<p:output port="result"/>
<p:option name="path" required="true"/>
<p:option name="depth" select="0"/>
<p:option name="include-filter"/>
<p:option name="exclude-filter"/>
<p:try>
<p:group>
<p:directory-list>
<p:with-option name="path" select="$path">
<p:empty/>
</p:with-option>
<p:with-option name="include-filter" select="$include-filter">
<p:empty/>
</p:with-option>
<p:with-option name="exclude-filter" select="$exclude-filter">
<p:empty/>
</p:with-option>
</p:directory-list>
</p:group>
<p:catch>
<p:try>
<p:group>
<p:directory-list>
<p:with-option name="path" select="$path">
<p:empty/>
</p:with-option>
<p:with-option name="exclude-filter" select="$exclude-filter">
<p:empty/>
</p:with-option>
</p:directory-list>
</p:group>
<p:catch>
<p:try>
<p:group>
<p:directory-list>
<p:with-option name="path" select="$path">
<p:empty/>
</p:with-option>
<p:with-option name="include-filter" select="$include-filter">
<p:empty/>
</p:with-option>
</p:directory-list>
</p:group>
<p:catch>
<p:directory-list>
<p:with-option name="path" select="$path">
<p:empty/>
</p:with-option>
</p:directory-list>
</p:catch>
</p:try>
</p:catch>
</p:try>
</p:catch>
</p:try>
<p:viewport match="c:directory[parent::*]">
<p:choose>
<p:when test="$depth != 0">
<p:try>
<p:group>
<pxp:recursive-directory-list>
<p:with-option name="path" select="concat($path,'/',/c:directory/@name)"/>
<p:with-option name="depth" select="$depth - 1">
<p:empty/>
</p:with-option>
<p:with-option name="include-filter" select="$include-filter">
<p:empty/>
</p:with-option>
<p:with-option name="exclude-filter" select="$exclude-filter">
<p:empty/>
</p:with-option>
</pxp:recursive-directory-list>
</p:group>
<p:catch>
<p:try>
<p:group>
<pxp:recursive-directory-list>
<p:with-option name="path" select="concat($path,'/',/c:directory/@name)"/>
<p:with-option name="depth" select="$depth - 1">
<p:empty/>
</p:with-option>
<p:with-option name="exclude-filter" select="$exclude-filter">
<p:empty/>
</p:with-option>
</pxp:recursive-directory-list>
</p:group>
<p:catch>
<p:try>
<p:group>
<pxp:recursive-directory-list>
<p:with-option name="path" select="concat($path,'/',/c:directory/@name)"/>
<p:with-option name="depth" select="$depth - 1">
<p:empty/>
</p:with-option>
<p:with-option name="include-filter" select="$include-filter">
<p:empty/>
</p:with-option>
</pxp:recursive-directory-list>
</p:group>
<p:catch>
<pxp:recursive-directory-list>
<p:with-option name="path" select="concat($path,'/',/c:directory/@name)"/>
<p:with-option name="depth" select="$depth - 1">
<p:empty/>
</p:with-option>
</pxp:recursive-directory-list>
</p:catch>
</p:try>
</p:catch>
</p:try>
</p:catch>
</p:try>
</p:when>
<p:otherwise>
<p:identity/>
</p:otherwise>
</p:choose>
</p:viewport>
</p:declare-step>
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | We are at the very beginning of time
http://nwalsh.com/ | for the human race. It is not
| unreasonable that we grapple with
| problems. But there are tens of
| thousands of years in the future. Our
| responsibility is to do what we can,
| learn what we can, improve the
| solutions, and pass them on.--Richard
| Feynman
Received on Wednesday, 27 May 2009 23:43:14 UTC