- From: Norman Walsh <ndw@nwalsh.com>
- Date: Tue, 12 Jun 2007 13:40:42 -0400
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87odjlm5ph.fsf@nwalsh.com>
As reluctant as I am to bring parameters up again... I've been thinking about how to implement the decisions we made last week. Given that we allow <p:parameter-set name="foo"> <p:pipe step="somewhere" port="something"/> </p:parameter-set> I think an implementation basically has to treat p:parameter-set as a mostly ordinary step step with an arbitrary number of inputs. What's more, given that the parameter set can contain document references, I think it follows that in <p:xslt> <p:use-parameter-set name="foo"/> <p:input port="source">...</p:input> <p:input port="stylesheet">...</p:input> </p:xslt> the p:use-parameter-set is effectively an input. It has to be considered an input, certainly, when searching for loops in the graph. Does it not follow that we can (should?) lose the p:parameters step and simply describe p:parameter-set and p:use-parameter-set in the terms I've outlined above? Parameter sets that load several documents are just like other steps that load several documents. Two steps that use the same parameter set are just like two steps that read the same output from some other step. If you're persuaded by my reasoning above, would you also be persuaded that: <p:xslt> <p:use-parameter-set name="foo"/> <p:use-parameter-set name="bar"/> <p:use-parameter-set name="#pipeline-parameters"/> </p:xslt> is basically just the same as <p:xslt> <p:source port="paramters"> <p:pipe step="foo" port="result"/> <p:pipe step="bar" port="result"/> <p:pipe step="#pipeline-parameters" port="result"/> </p:source> </p:xslt> And if you've gone that far, why would you not continue with the observation that: <p:parameter-set name="foo"> <p:use-parameter-set port="foo"/> <p:use-parameter-set port="bar"/> <p:use-parameter-set port="#pipeline-parameters"/> <p:parameter name="somename" value="1"/> </p:parameter-set> is basically just the same as <p:parameter-set name="foo"> <p:input port="parameters"> <p:pipe step="foo" port="result"/> <p:pipe step="bar" port="result"/> <p:pipe step="#pipeline-parameters" port="result"/> </p:input> <p:parameter name="somename" value="1"/> </p:parameter-set> And then we simply have a new port named "parameters" on (some|all) steps and a new step called "p:parameter-set". 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 Tuesday, 12 June 2007 17:41:23 UTC