Re: Difference between 'contained steps' and 'subpipeline'

The first part makes sense now.  I'm looking at some of the test cases and 
its obvious in hindsight.
The second part about user defined pipelines I dont quite understand, but 
I'll get back to those later.  Thanks for your help !



>
> David,
>
> On 22 Nov 2008, at 14:39, David A. Lee wrote:
>> I'm a little (ok a LOT) confused between the difference of  'contained 
>> steps' and 'subpipeline'
>>
>> E.g in the spec in this part:
>> 4.1
>>
>> <p:pipeline
>>   name? = NCName
>>   type? = QName
>>   psvi-required? = boolean
>>   xpath-version? = string
>>   exclude-inline-prefixes? = prefix list>
>>     (p:input |
>>      p:output |
>>      p:option |
>>      p:log |
>>      p:serialization)*,
>>     (p:declare-step |
>>      p:import)*,
>>     subpipeline
>> </p:pipeline>
>>
>>
>> What's the difference between the sequence of p:declare-step and 
>> subpipeline ?
>
> It's the same as the difference between the declaration of a function  in 
> your programming language of choice, and the code that makes up the  body 
> of a function. A <p:declare-step> is a declaration of a pipeline  that you 
> can later invoke within the subpipeline. The subpipeline is  the sequence 
> of steps that is performed when the pipeline is called.
>
>> What really confuses me is this comment : from 2.1
>> ------
>> Note
>> User-defined pipelines (identified with pfx:user-pipeline in the 
>> preceding syntax summary) are atomic. A pipeline declaration may  contain 
>> a subpipeline, but the invocation of that pipeline does not.
>>
>> ------
>>
>> So that last sentance ... is it saying the "subpipeline" in the  above 
>> p:pipeline is not executed ?
>>
>> If so what is done with it ?
>>
>
> This is the same as asking whether the code within a function  definition 
> is executed. It is executed, but only when the function  (pipeline) is 
> invoked. The note you quote is saying that you can't  create user-defined 
> pipelines that hold subpipelines *when you invoke  them*, so you can't 
> create user-defined pipelines that work like the  compound steps 
> <p:for-each>, <p:viewport>, <p:choose> and so on. But  you can create 
> user-defined pipelines that work like the various  atomic steps such as 
> <p:replace> or <p:xslt>.
>
> Does that make any more sense?
>
> Jeni
> -- 
> Jeni Tennison
> http://www.jenitennison.com
>
> 

Received on Saturday, 22 November 2008 16:38:42 UTC