Re: Options or parameters

Henry S. Thompson wrote:
> Having read through this thread, I want to ask a perhaps naive
> question:  why are we requiring parameter declarations at all?

The minutes also report that Henry said that XSLT was the only component 
that would accept parameters. If that were the case, because XSLT 
ignores stylesheet parameters that it doesn't know about, then I would 
be OK with this.

However, I anticipate that the p:http-request component will also accept 
parameters, with a signature something like:

<p:declare-step type="p:http-request">
   ...
   <p:option name="href" required="yes" />
   <p:option name="method" value="GET" />
   <p:option name="version" value="1.1" />
   <p:option name="Authorisation" />
   ... various other options for relevant HTTP headers ...
   <p:parameter name="*" />
</p:declare-step>

The parameters will be used to supply extension headers that aren't 
defined in the HTTP spec.

Now, if *all* parameters in the pipeline get passed into the 
p:http-request component, then you'll end up with a load of extra 
headers being passed with all the HTTP requests, which isn't something 
you want (and might well cause bad behaviour).

Any component where all supplied parameters were processed would run 
into the same problem. For example, say that someone created a component 
to create a URI from a base URI, a relative URI and some request 
parameters. Or a specialised SAX parse component that used parameters to 
set features on the SAX parser.

I don't think we should extend the assumption that unknown parameters 
will be silently ignored to all components, just because XSLT does it. 
Given that, I do think we need a method to explicitly pass only a subset 
of the parameters passed into a pipeline on into a step (ie 
<xsl:import-parameters>).

As far as parameter declarations go, as Alessandro says, I think that 
the vast majority of pipelines won't accept arbitrary parameters. 
Identifying those that do might stop unnecessary information from being 
passed between pipelines. Those pipelines that do accept arbitrary 
parameters may well use namespaces to distinguish between parameters 
targetted at different components,and as such I think it is useful for 
components to declare at least the namespaces of the parameters that 
they accept, to aid error reporting.

Cheers,

Jeni
-- 
Jeni Tennison
http://www.jenitennison.com

Received on Friday, 4 May 2007 18:58:56 UTC