W3C home > Mailing lists > Public > public-xml-processing-model-comments@w3.org > July 2009

Re: Compound steps with unconnected output ports

From: Norman Walsh <ndw@nwalsh.com>
Date: Fri, 17 Jul 2009 13:03:59 -0400
To: public-xml-processing-model-comments@w3.org
Message-ID: <m2skgvz1fk.fsf@nwalsh.com>
"Toman_Vojtech@emc.com" <Toman_Vojtech@emc.com> writes:
> Suppose I have this p:pipeline:
> <p:pipeline>
>   <p:output port="foo" primary="false"/>
>   <p:identity/>
> </p:pipeline>
> The "foo" output port is not connected to anything. Also, because it is
> not primary, it will not get connected to the primary output port of
> p:identity.
> Is this allowed? I can't find anything in the spec that makes this an
> error, or that says what happens when I actually refer to "foo" when I
> call the pipeline.
> Also, would there be any difference if I declared "foo" as
> sequence="true"?

If you don't specify sequence=true, then I think you get an error because
you can't send an empty sequence to a port that doesn't accept sequences.

If you do specify sequence=true, then you just get an empty sequence on
that port.

It's statically valid in either case.

> The only thing I found is in section 2.2:
> "Within a compound step, the declared outputs of the step *can* be
> connected to: ..."
> (Notice that the sentence uses "can", not "must".)

Since that's a p:pipeline, the identity step will get connected to the
primary result port. If it was a declare step, you'd get a static error
because the primary output port of the identity step would be unbound.

                                        Be seeing you,

Norman Walsh <ndw@nwalsh.com> | Nothing ever becomes real till it is
http://nwalsh.com/            | experienced--even a proverb is no
                              | proverb to you until your life has
                              | illustrated it.-- Keats

Received on Friday, 17 July 2009 17:04:40 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:28:26 UTC