Inputs and outputs

A few design notes and sketches. (Syntax imaginary)

If two pipeline steps occur in sequence (document order) and the first
stage has one output and the second stage has one input, then we can
assume they're joined together:

  <p:step name="xinclude">
    <p:input href="somedocument.xml"/>
    <p:output/>
  </p:step>

  <p:step name="somefilter">
    <p:input/>
    <p:output/>
  </p:step>

If the steps aren't in sequence, or if there are multiple inputs and
outputs in play, then the pipeline has to specify the fittings:

  <p:step name="validate">
    <p:input name="schemas" href="a.xsd b.xsd c.xsd"/>
    <p:input name="document" href="style.xsl"/>
    <p:output label="a"/>
  </p:step>

  <p:step name="xinclude">
    <p:input href="somedocument.xml"/>
    <p:output label="b"/>
  </p:step>

  <p:step name="style">
    <p:input name="stylesheet" use="a"/>
    <p:input name="document" use="b"/>
    <p:output/>
  </p:step>

We could say that a p:input or p:output that is implicit can be omitted,
reducing the last step to:

  <p:step name="style">
    <p:input name="stylesheet" use="b"/>
    <p:input name="document" use="a"/>
  </p:step>

And the somefilter step further above to:

  <p:step name="somefilter"/>

We could extend the idea that stages with a single input and single output
can be implicitly joined together to say that any sequence that has exactly
one unlabeled input and one unlabeled output is also implicitly fitted:

  <p:step name="validate">
    <p:input name="schemas" href="a.xsd b.xsd c.xsd"/>
    <p:input name="document" href="style.xsl"/>
    <p:output label="a"/>
  </p:step>

  <p:step name="xinclude">
    <p:input href="somedocument.xml"/>
    <p:output/>
  </p:step>

  <p:step name="style">
    <p:input name="stylesheet" use="a"/>
    <p:input name="document"/>
    <p:output/>
  </p:step>

Combined with the idea that implicit inputs and outputs are optional,
that would reduce to:

  <p:step name="validate">
    <p:input name="schemas" href="a.xsd b.xsd c.xsd"/>
    <p:input name="document" href="style.xsl"/>
    <p:output label="a"/>
  </p:step>

  <p:step name="xinclude">
    <p:input href="somedocument.xml"/>
  </p:step>

  <p:step name="style">
    <p:input name="stylesheet" use="a"/>
    <p:input name="document"/>
  </p:step>

I don't think the input in the style step is implicit because it has a
name. But we could decide that it was implicit, I suppose. Actually,
having said all that, I'm not sure I like the idea of making any of
the inputs and outputs implicit; it seems like it might lead to
confusion.

                                        Be seeing you,
                                          norm

-- 
Norman.Walsh@Sun.COM / XML Standards Architect / Sun Microsystems, Inc.
NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution is prohibited.
If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

Received on Wednesday, 15 March 2006 14:55:51 UTC