- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 11 Jul 2007 12:04:10 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <877ip79bb9.fsf@nwalsh.com>
The following proposal is essentially Henry's revised proposal with
the amendments that seemed to garner support in email. I believe it
provides a concrete answer for all of the open questions.
1) We add the concept of a 'primary parameter input port'. By analogy
with "ordinary" primary input ports: a step can have at most one;
if it has exactly one parameter input then that's the primary by
default.
2) If a pipeline contains a step which has a parameter input port and
if the pipeline has no parameter input ports declared, then it gets
an anonymous, primary parameter input port by default.
3) We add an optional 'port' attribute to p:parameter. If the port is
specified, then the parameter goes to the named parameter input
port. It's an error if no such parameter input port is declared. If
the port is not specified, then the parameter goes to the primary
parameter input port. It is an error if the step has no primary
parameter input port.
4) How an implementation determines what parameters are passed to the
initial pipeline is implementation defined.
5) Normal binding rules apply to the use of a step (including a
named pipeline step)
6) If a step has a primary parameter input port and if no binding is
specified for that port then the default binding is to the
primary parameter input port of the pipeline which contains it.
If the pipeline which contains it has no PPI, then it is bound
to p:empty. This can only arise in cases like this:
<p:pipeline ...>
<p:input port="parameters" primary="no"/>
...
Alternatively, we could make it an error to leave an unbound PPI
on a step in this case.
7) If a binding is manufactured for the primary parameter input port,
it occurs logically "last" among the bindings on the step. In
other words, parameters specified on that parameter port will
override explicit p:parameter elements on that step.
8) If a step has a parameter input port that is not primary and if no
binding is specified for that port then the default binding is to
p:empty.
9) Allow p:parameter elements on p:pipeline.
10) The declaration of a parameter input port must be empty. It is a
static error to attempt to define a default input.
Have I missed anythin?
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | An ill-humoured man is a prisoner at
http://nwalsh.com/ | the mercy of an enemy from whom he can
| never escape.-- Sa'di
Received on Wednesday, 11 July 2007 16:04:27 UTC