Re: Variables and parameters

On 5/24/06, Jeni Tennison <jeni@jenitennison.com> wrote:
> Yep, although the p:pipeline/p:output needs to go at the end, after the
> steps, so that it can refer to variables set higher up.

Jeni/Norm,

I am conflicted here: I agree that it would make more sense to have
the <p:output> at the end of the pipeline if it makes a reference to a
label, since in all the other cases references to a label always come
after the declaration of that label.

However, I like having the input/output of the pipeline defined at the
top: those define the interface of the pipeline and it is good to see
that first.

Norm suggests to reference the pipeline output from a with-output.
This is what we do in XPL, so I am tempted to like that proposal ;).
However our users repeatedly found this confusing, so I'd like to try
something else. Let me suggest another option: adding a <p:return>, as
in:

<p:pipeline xmlns:p="http://www.w3.org/2006/XProc/Pipeline">

    <p:input name="request"/>
    <p:output name="response"/>

    <p:step name="process-request">
        <p:with-input name="document" select="$request"/>
        <p:with-output name="result" label="result"/>
    </p:step>

    <p:return output="response" select="$result"/>

</p:pipeline>

This way:

1) We avoid the confusion created by saying that you must either have
a href/select or an ref on the p:with-output.
2) We don't have a reference to a label that comes in document order
before the declaration of that label.
3) We keep the declaration of the "interface" for the pipeline at the
beginning of the pipeline.

Alex
-- 
Blog (XML, Web apps, Open Source):
http://www.orbeon.com/blog/

Received on Wednesday, 24 May 2006 23:48:26 UTC