- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 11 Jul 2007 21:38:00 +0100
- To: public-xml-processing-model-wg@w3.org
Norman Walsh wrote: > My thinking was that the only point in having a default would be to > set some default params. And I didn't think we needed two ways > to do that. > > This is ok: > > <p:pipeline ...> > <p:parameter name="foo" value="bar"/> > <p:parameter name="bar" value="foo"/> > ... > > And so is this: > > <p:pipeline ...> > <p:input port="parameters" primary="yes"/> > <p:parameter name="foo" value="bar"/> > <p:parameter name="bar" value="foo"/> > ... > > But I didn't think we needed to allow this: > > <p:pipeline ...> > <p:input port="parameters" primary="yes"> > <p:inline> > <c:parameter-list> > <c:parameter name="foo" value="bar"/> > <c:parameter name="bar" value="foo"/> > </c:parameter-list> > </p:inline> > </p:input> > > But if you really feel strongly about it, I could be persuaded. It > might be more consistent to treat it just like a default "ordinary" > input, I guess. I don't think people should be specifying default values for parameters anyway (because if you know the name of a parameter that your pipeline will receive, you should be using an option). So personally I'd vote for mandating parameter inputs be empty and not allowing <p:parameter> here. But if we're going to allow this, I don't see why we shouldn't allow both mechanisms: after all, we allow both when we invoke a step, and it could be described in exactly the same way here. <p:parameter> looks very similar to <p:option>, which could be counted an advantage (though personally I see it as a disadvantage, given that it will help people get very confused about whether to use options or parameters). If we have it, I note that authors should be permitted to have *just* <p:parameter> elements without actually naming the default input; and if there are <p:parameter> elements at this level it should implicitly create an anonymous primary parameter input port. Whatever the mechanism, you have the issue of whether the default parameter set gets overridden en-masse or individually. In other words, given that the pipeline above is invoked with: <...> <p:parameter name="foo" value="baz" /> </...> is the parameters input set to: (a) { foo: baz } (b) { foo: baz, bar: foo } As I said before, I think the latter is more useful, and it's certainly what using individual <p:parameter> elements implies. Anyway, we need to specify it explicitly. One last thing: can we rename <c:parameter-list> to <c:parameter-set> or <c:parameter-bindings> or <c:parameter-map> or something? <c:parameter-list> makes it sound as though the parameters are ordered, which they're not (in the set generated from the <c:parameter-set> element). Cheers, Jeni -- Jeni Tennison http://www.jenitennison.com
Received on Wednesday, 11 July 2007 20:38:15 UTC