Ordering of steps in a subpipeline

Hi all,

I got a bit confused about the exact behavior of the processor when it
orders the steps based on the connections between them...

Am I right that the following pipeline will produce a static error,
because the steps cannot be executed in the desired order (that is:
identity2, identity1)? As I understand it, "identity2" is "locked" by
the p:group because it is the last step in the document order and
p:group has an unbound primary output port. But which error should be
reported? err:XS0001?

...
<p:group>
  <p:identity name="identity1">
    <p:input port="source">
      <p:pipe step="identity2" port="result"/>
    </p:input>
  </p:input>
  <p:identity name="identity2"/>
</p:group>
...

But (correct me if I am wrong) the following pipeline will run just
fine, because "identity2" is no longer "locked" by p:group, and it can
therefore be run before "identity1" with no problems.

...
<p:group>
  <p:output port="result">
    <p:inline><doc/><p:inline>
  </p:output>
  <p:identity name="identity1">
    <p:input port="source">
      <p:pipe step="identity2" port="result"/>
    </p:input>
  </p:input>
  <p:identity name="identity2"/>
</p:group>
...

Or did I completely misunderstand how the "last step in the subpipeline"
should be treated?

Regards,
Vojtech

Received on Thursday, 22 January 2009 14:45:56 UTC