Hi Alex,

On Sun, Jan 09, 2005 at 04:44:44PM -0800, Alessandro Vernet wrote:

> Thank you for sending me your pipeline in a private email. Consider this
> example:
> 
>     <p:choose href="#instance">
>         <p:when test="true()">
>             <p:processor name="oxf:null-serializer">
>                 <p:input name="data" href="#instance" debug="x"/>
>             </p:processor>
>             <p:processor name="oxf:identity">
>                 <p:input name="data" href="#instance"/>
>                 <p:output name="data" id="x"/>
>             </p:processor>
>         </p:when>
>     </p:choose>
> 
> In the branch of the <p:choose>, we have a null-serializer (from the pipeline
> engine perspective,, this is a processor with no output, similar to the
> file-serializer in your pipeline) and an identity processor that declares an 
> id
> "x". For the pipeline engine the whole <p:choose> is like a processor that
> declares a output "x". Just like with regular processors, if a processor
> declares one of more outputs and none of the output is used, the processor is
> not executed. So in this case, if "x" is not referenced in the rest of the
> pipeline, the whole <p:choose> is not executed.
> 
> Now if you remove the identity processor for the branch, the <p:choose> will 
> be
> considered as if it was a processor with no output. So it will be always
> executed.
> 
> Does this explain what you are experimenting? To avoid this kind of unexpected
> behavior, we could consider the pipeline invalid if and output is declared but
> never used.

Hmm... I'm afraid you are right ;-).  My problem seemed to be that
I was not (always) using (all) output docs of the subpipeline and
then parts of the subpipeline (or the whole subpipeline) were not
executed.

What I tried to achieve:

Call an "initialization" subpipeline in every model pipeline that
initializes some documents in the session (using scope-serializer)
if needed (or retrieve them) and results in some session documents.

But these documents might not always (all) be used, dependent on the
context (model).  So, I'm afraid having such a generic subpipeline
is only possible if I make sure all output docs are used in every
model pipeline, maybe only in a null-serializer.  Right?

Thanks,

-- 
--    Jos Vos <[EMAIL PROTECTED]>
--    X/OS Experts in Open Systems BV   |   Phone: +31 20 6938364
--    Amsterdam, The Netherlands        |     Fax: +31 20 6948204


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
orbeon-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/orbeon-user

Reply via email to