W3C home > Mailing lists > Public > xproc-dev@w3.org > November 2008

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

From: David A. Lee <dlee@calldei.com>
Date: Sat, 22 Nov 2008 11:37:54 -0500
Message-ID: <468B54DAE5E34C71B7963507046B5EEF@calldei.com>
To: "XProc Dev" <xproc-dev@w3.org>

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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 22 November 2008 16:38:43 GMT