- From: Norman Walsh <ndw@nwalsh.com>
- Date: Tue, 02 Oct 2007 10:16:19 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <m2fy0tob4c.fsf@nwalsh.com>
/ Richard Tobin <richard@inf.ed.ac.uk> was heard to say:
|> 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.
Yes. And the more I think about it, the more I think maybe we really
do want a single, global scope for step type names.
How about:
The scope of the names of step types is global. Step types are:
* Built-in to XProc (e.g., p:pipeline, p:choose, etc.)
* Declared with p:declare-step (e.g, p:xslt, p:xinclude, etc.)
* Defined with p:pipeline
* Or built-in as extensions by a particular processor.
All the step types in a pipeline must have unique names: it is a
static error (err:XS0036) if any step type name is built-in and/or
declared or defined more than once.
I think the only negative consequence of this decision is that two
pipelines in a pipeline library that each import a different
definition for a step type will cause an error where one is not,
perhaps absolutely necessary. But we have namespaces to make such
things unnecessary, right?
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | Few men are so sufficiently discerning
http://nwalsh.com/ | to appreciate all the evil that they
| do.--La Rochefoucauld
Received on Tuesday, 2 October 2007 14:16:31 UTC