[closed] Re: Primary parameter input port?

/ Norman Walsh <ndw@nwalsh.com> was heard to say:
| 7.1.17 says:
|
|   Note
|
|   Since the parameters port is not primary, any explicit p:parameter
|   settings must include a port attribute with value parameters, per
|   the last paragraph of Section 5.7.2, “p:parameter”.
|
| And 5.7.2 says:
|
|   If the optional port attribute is specified, then the parameter
|   appears on the named port, otherwise the parameter appears on the
|   step's primary parameter input port. It is a static error
|   (err:XS0034) if the specified port is not a parameter input port or
|   if no port is specified and the step does not have a primary
|   parameter input port.
|
| Why can't the port default to the only parameter input port, if there is
| only one? Why does it have to be the primary input port?
|
| Consider:
|
|   <p:xslt>
|     <p:parameter name="foo" value="bar"/>
|     ...
|   </p:xslt>
|
| Don't we want that to work?

*blush*

It does work. Because 2.5 says:

  [Definition: If a step has a parameter input port which is
  explicitly marked “primary='true'”, or if it has exactly one
  parameter input port and that port is not explicitly marked
  “primary='false'”, then that parameter input port is the primary
  parameter input port of the step.] If a step has a single parameter
  input port and that port is explicitly marked “primary='false'”, or
  if a step has more than one parameter input port and none is
  explicitly marked as the primary, then the primary parameter input
  port of that step is undefined.

So a 'primary parameter input port' doesn't have to be a step's
'primary input port'.

Confusing, perhaps, but does the right thing.

                                        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 Friday, 9 November 2007 14:57:09 UTC