- From: Alex Muir <alex.g.muir@gmail.com>
- Date: Thu, 25 Nov 2010 12:46:48 +0000
- To: Philip Fennell <Philip.Fennell@marklogic.com>
- Cc: Tony Rogers <tony@gonk.net>, XProc Dev <xproc-dev@w3.org>
- Message-ID: <AANLkTi=2kA+gS3r2K+9x7YrAqSehWwUE4wWkpMHEGSpB@mail.gmail.com>
I asked this question a while back and based on response from James Sulak
http://markmail.org/search/?q=list%3Axproc-dev+p%3Astore#query:list%3Axproc-dev%20p%3Astore%20from%3A%22Alex%20Muir%22+page:2+mid:ictw4wbiqi5k2bte+state:results
I use the following:
The code uses a declared step which handles the identity and then accepts a
boolean to determine if the output should be written using the passed href
parameter as the file name.
<p:declare-step name="saveDocument" type="mh:save-output">
<p:input port="source" primary="true"/>
<p:output port="result">
<p:pipe port="result" step="ident"/>
</p:output>
<p:option name="step-name" required="true"/>
<p:option name="save" select="'false'"/>
<p:option name="href" required="true"/>
<p:identity name="ident"/>
<p:choose>
<p:when test="$save = 'true'">
<p:store>
<p:with-option name="href" select="$href">
<p:pipe port="result" step="ident"/>
</p:with-option>
</p:store>
</p:when>
<p:otherwise>
<p:sink/>
</p:otherwise>
</p:choose>
</p:declare-step>
And use it in the code.
<mh:save-output step-name="debug1">
<p:with-option name="save" select="~~~debug~~~"/>
<p:with-option name="href"
select="concat($debug-output-
folder,'debug-1.xml')"/>
</mh:save-output>
replace the ~~~debug~~~ with true() or false()
Alex
Some good music
http://www.facebook.com/pages/Bafila-Acoustic-Trio/125611807494851
On Wed, Nov 24, 2010 at 4:41 PM, Philip Fennell <
Philip.Fennell@marklogic.com> wrote:
> Tony,
>
>
>
> As I myself found out recently, the p:store step doesn’t have a primary
> output port so that you don’t have to explicitly bind the following step to
> it. Your subsequent step can use a p:pipe on its input source to bind it to
> the result of the step before the p:store.
>
>
>
> ...
>
> <p:http-request name=”request”/>
>
> <p:store href=”foo.xml”/>
>
> <p:xslt>
>
> <p:input port=”source”>
>
> <p:pipe port=”result” step=”request”/>
>
> </p:input>
>
> ...
>
> </p:xslt>
>
> ...
>
>
>
> Something like that.
>
>
>
> Regards
>
>
>
> Philip
>
>
>
> *From:* xproc-dev-request@w3.org [mailto:xproc-dev-request@w3.org] *On
> Behalf Of *Tony Rogers
> *Sent:* 24 November, 2010 4:17 PM
> *To:* XProc Dev
> *Subject:* p:store and default readable ports
>
>
>
> I know that the p:store step does not have a primary output.
>
>
>
> *My general question:*
>
> Does this mean that in a pipeline that flows in the default
> order (top to bottom of pipeline document), p:store cannot be used in the
> middle of things?
>
>
>
> *My pipeline specifics:*
>
> I have a pipeline that does an HTTP request. I want to store
> the results of that request, AND I also want to perform some further
> processing on those results immediately after storing them.
>
> The problem is that if I store them, p:store does not have a
> primary output, so the automatic flow of my pipeline stops. :(
>
>
>
>
>
> —Tony
>
Received on Thursday, 25 November 2010 12:47:23 UTC