Re: XProc Editors Draft 2007-07-19: Section 3.2 Comments

Jeni Tennison wrote:
> 
> Norman Walsh wrote:
>> / Jeni Tennison <jeni@jenitennison.com> was heard to say:
>> | Norman Walsh wrote:
>> |> / Jeni Tennison <jeni@jenitennison.com> was heard to say:
>> |> | I think this section needs to talk about the scope of pipeline 
>> type names in a
>> |> | pipeline library: say that each pipeline in a pipeline library 
>> must have a
>> |> | unique type, and talk about the scope of those pipeline names. A 
>> reference to
>> |> | another section that talks about this in detail would be sufficient.
>> |>
>> |> Hmmm. I changed the first paragraph of 3.2 to read:
>> |>
>> |>   The scope of the names of step types is the pipeline. Each pipeline
>> |>   processor has some number of built in step types and may declare
>> |>   (directly, or by reference to an external library) additional step
>> |>   types. All the step types in a pipeline must have unique names: it
>> |>   is a static error (err:XS0036) if two declarations for the same step
>> |>   type name appear in the same scope.
>> |>
>> |> I wonder if that helps.
>> |
>> | Not really :) It focuses on the step types in a (single) pipeline
>> | rather than the step types in a pipeline *library*. Perhaps we can say
>> | (not necessarily in this section) that a pipeline document with a
>> | <p:pipeline> document element is equivalent to a <p:pipeline-library>
>> | with all <p:import>s and <p:declare-step>s (and so on) moved into the
>> | <p:pipeline-library>, and otherwise containing that (single)
>> | <p:pipeline>. Then every pipeline document can be considered a
>> | pipeline library, and we can say:
>>
>> That's not immediately appealing.
>>
>> Is this better:
>>
>>    The scope of the names of step types is the union of all the pipelines
>>    and pipeline libraries available. Each pipeline...
> 
> No, because pipeline libraries don't have names that are step types.

Sorry, perhaps the rest of the paragraph would have made it clearer. 
Basically I think there are two problems with the paragraph:

1. It talks about individual pipelines rather than pipeline libraries.

2. It doesn't make clear that when an author defines a pipeline that 
pipeline's type is added to the set of step types, and therefore that a 
pipeline type cannot be the same as any other pipeline type in the 
pipeline library (and imported pipelines), and cannot be the same as a 
declared step type or a built-in step type.

Perhaps it would be useful to break it down like that:

   The scope of the names of the step types is the union of all the
   pipelines and pipeline libraries available directly or via import.
   Step types are:

   * built-in to XProc, or
   * declared using <p:declare-step> and implemented by the processor, or
   * defined using <p:pipeline>

   All the step types must have unique names: it is a static error
   (err:XS0036) if any step type name appears twice in the same scope.

Jeni
-- 
Jeni Tennison
http://www.jenitennison.com

Received on Saturday, 4 August 2007 08:02:12 UTC