p:input vs. p:parameter-input

Given:

  <p:declare-step type="p:xslt">
    <p:input port="source"/>
    <p:input port="stylesheet"/>
    <p:parameter-input port="parameters"/>
    <p:output port="result"/>
  </p:declare-step>

are users { expected | allowed | required } to write

  <p:xslt>
    <p:input port="source"> ... </p:input>
    <p:input port="stylesheet"> ... </p:input>
    <p:parameter-input port="parameters"> ... </p:parameter-input>
  </p:xslt>

and are users { expected | allowed | required } to write

  <p:xslt>
    <p:input port="source"> ... </p:input>
    <p:input port="stylesheet"> ... </p:input>
    <p:input port="parameters"> ... </p:input>
  </p:xslt>

Based on a little bit of use, I'm starting to think that users will
expect to do the latter. Remembering to use p:parameter-input when you
name the parameter input port is tedious.

And on that basis, I'm string to think I'd prefer a "parameters='yes|no'"
attribute on p:input instead of a p:parameter-input element.

The fact that my implementation treates p:parameter-input *exactly* as
if it was a normal input except it has a boolean field set reinforces
that idea.

Keeping the questions separate, I think:

* Users should be required to indicate that a particular input port is
  only for parameters on the p:declare-step (and on p:pipelines that
  they write).

* Users should be forbidden from indicating that a particular input
  port is only for parameters on the "call" to the step. In other
  words, p:input should be used exclusively for both.

And

* I think we should use paramters="yes|no" to indicate whether or not
  a particular input port is only for parameters.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com> | Sometimes in life situations develop
http://nwalsh.com/            | that only the half-crazy can get out
                              | of.--La Rochefoucauld

Received on Wednesday, 20 June 2007 12:08:07 UTC