Inherited environment and input/output ports

Hi all,

I just got confused about the visibility of input/output ports in steps.
Two questions:

1. Does a step see its input ports? That is, is the following allowed

<p:pipeline name="main">
  <p:output port="result">
    <p:pipe step="main" port="source"/>
  </p:output>

  ...
</p:pipeline>

Or this (atomic step):

<p:count name="cnt">
  <p:input port="source">
    <p:inline><doc/></p:inline>
  </p:input>
  <p:with-option name="limit" select="...">
    <p:pipe step="cnt" port="source"/>
  </p:with-option>
</p:count>

The definition of the inherited environment says that:
- The declared inputs of the container are added to the readable ports.

But, this has to be read from the perspective of a contained step, not
the container itself. So it seems to me that the container's input ports
are not visible to the step itself. Also, atomic steps can't refer to
their input ports.

...or?

---

2. Does a step see its output ports? That is, is the following allowed:

<p:pipeline name="main">
  <p:input port="source">
    <p:pipe step="main" port="result"/>
  </p:input>

  ...
</p:pipeline>

(Ignore the fact that this pipeline would throw err:XS0001.)

The definition of the inherited environment says that:
- The union of all the declared outputs of all of the containers's
contained steps are added to the readable ports.

Again, this has to be read from the perspective of a contained step, not
the container itself. So, if the contained step is a compound step, it
seems to me that the step sees its output ports (because they are among
the readable ports of the parent). However, if we are in a TOPLEVEL
step, the step will not see its output ports. ...Or am I completely
wrong here?



Regards,
Vojtech

Received on Wednesday, 11 February 2009 15:43:56 UTC