Re: Scope of step types

>   The scope of the names of step types is the pipeline in which they occur.
>   The in-scope names come from types that are:
> 
>     * Built-in to XProc (e.g., p:pipeline, p:choose, etc.)
>     * Declared with p:declare-step (e.g, p:xslt, p:xinclude, etc.)
>       in the pipeline or in a p:pipeline-library imported into the
>       pipeline.
>     * Defined with p:pipeline imported directly or in a p:pipeline-library
>       imported into the pipeline.
>     * Or built-in as extensions by a particular processor.

I think this still doesn't cover everything.  Surely the body of a
pipeline in a library can see the other steps and pipelines declared
in the library that contains it.

Here's a concrete example:

pipeline.xml:

<p:pipeline xmlns:p="http://www.w3.org/ns/xproc">
  <p:declare-step name="one"/>
  <p:import href="lib1.xml"/>
  <!-- a -->
</p:pipeline>

lib1.xml:

<p:pipeline-library xmlns:p="http://www.w3.org/ns/xproc"
            namespace="http://example.org">
  <p:declare-step name="two"/>
  <p:import href="lib2.xml"/>
  <p:pipeline name="three">
    <p:declare-step name="four"/>
    <!-- b -->
  </p:pipeline>
</p:pipeline-library>

lib2.xml:

<p:pipeline-library xmlns:p="http://www.w3.org/ns/xproc"
            namespace="http://example.org">
  <p:declare-step name="five"/>
  <p:pipeline name="six">
    <p:declare-step name="seven"/>
    <!-- c -->
  </p:pipeline>
</p:pipeline-library>

Which names are in scope at points a, b, and c?

I assume it should be

a: one, two, three, five, six
b: two, three, four, five, six
c: five, six, seven

-- Richard

Received on Tuesday, 2 October 2007 12:45:12 UTC