- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 02 May 2007 09:16:12 +0100
- To: public-xml-processing-model-wg@w3.org
Norman Walsh wrote: > I believe the following proposal addresses this issue: > > 1. Add in-scope options to the environment; treat options and parameters > in exactly the same way with respect to scoping and shadowing. Yes. Specifically, they are lexically scoped and must be passed explicitly into components. > 2. Allow compound steps to declare both options and parameters. I'm kinda happy with this for now. (I'll argue for renaming "p:option" to "p:variable" in this context later.) > 3. Make variable references in XPath expressions refer to *options* > instead of parameters. Yes. > 4. Allow p:import-parameter to change the namespace of parameters. Yes. I think this provides a reasonable way of passing separate bundles of name/value pairs into the pipeline without being stuck with those namespaces later. (If parameter bundles were given names we wouldn't need to do this.) > So, given: > > <p:pipeline xmlns:p="..." xmlns:config="..."> > <p:option name="per-page" value="30"/> > > <p:group> > <p:parameter name="config:items-per-page" select="$per-page"/> > <p:xslt> > <p:import-parameter name="config:*" ns=""/> > ... > </p:xslt> > </p:group> > </p:pipeline> > > The value of $per-page is 30 (or whatever was passed to the pipeline). > The p:group calculates a parameter named config:items-per-page from > the pipeline option value. What gets passed to the XSLT step is a > parameter named "items-per-page" (in no namespace) with the value > specified for config:items-per-page on the group. > > The distinction between options and parameters then becomes simply that > the names of options are all known in advance. The names of parameters > may not be. > > In particular, I might have passed other parameters in the config > namespace to the pipeline and they would all get passed to the XSLT > step even though the pipeline hasn't a clue what their actual names > are before the pipeline is executed. That sounds right to me, except that I think the pipeline should declare that it can accept parameters in the config namespace. Also, it could be rewritten without the <p:group>: <p:pipeline xmlns:p="..." xmlns:config="..."> <p:option name="per-page" value="30"/> <p:parameter name="config:*" /> <p:xslt> <p:parameter name="items-per-page" select="$per-page" /> <p:import-parameter name="config:*" ns=""/> ... </p:xslt> </p:pipeline> but I suspect you just included it to demonstrate a compound step. Jeni -- Jeni Tennison http://www.jenitennison.com
Received on Wednesday, 2 May 2007 08:16:23 UTC