- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 12 Nov 2007 11:36:14 -0500
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <m2d4ufmnep.fsf@nwalsh.com>
In the minutes of the 25 Oct 2007 telcon, the editor is instructed to adopt the following resolution for top-level p:pipelines only, leaving p:pipelines in libraries and p:declare-step open: | |> I propose that we add the following, probably in 5.1, but perhaps in both | |> 5.1.1 and 5.1.2, whatever seems best editorially. | |> | |> An input declaration may include a default binding. If no binding is | |> provided for an input port which has a default binding, then the | |> input is treated as if the default binding appeared. | |> | |> It is a static error to provide a default binding for a primary input | |> port. The editor is concerned that this creates extra work that may need to be undone in the future and extra complexity in the spec. He'd prefer to resolve all of the cases at once. To that end, the following proposal is offered: In 5.1, add: An input declaration may include a default binding. If no binding is provided for an input port which has a default binding, then the input is treated as if the default binding appeared. A default binding does not satisfy the requirement that a primary input port is automatically connected by the processor, nor is it used when no default readable port is defined. Consequently, it is pointless to provide a default binding for any primary input port except on a p:pipeline that is invoked directly by the processor. It is a static error for a p:pipe to appear in a default binding. Mohamed, I think, pushed back on making the use of p:pipe a static error becase he envisioned using a p:input inside a p:option to provide a default binding for option select attributes. But that doesn't work anyway because a p:input inside a p:option is not a declaration, it's a binding. So you can't do that. It seems to me that forbidding p:pipe simplifies things significantly. I think the consequences of this proposal are: 1. A top-level p:pipeline can provide defaults for all of its inputs, be they primary or not. 2. A p:declare-step or a p:pipeline in a library can define defaults for all of its inputs, be they primary or not, but defining a default for a primary input is a no-op. It's never used since the the step, when it's called, will always bind the primary input port to the default readable port (or cause a static error). 3. You can't establish default bindings for p:option or p:parameters because p:input in those cases isn't a declaration. Be seeing you, norm -- Norman Walsh <ndw@nwalsh.com> | Everything should be made as simple as http://nwalsh.com/ | possible, but no simpler.
Received on Monday, 12 November 2007 16:36:30 UTC