Re: p:pipeline

/ Jeni Tennison <jeni@jenitennison.com> was heard to say:
| FWIW, this is my favoured design at the moment:
|
| 1. All components are identified through a QName

Yep.

| 2. Pipelines are components (and are thus identified by a QName, and
| called using the <p:step> syntax)

Yep.

| 3. Pipelines are all defined at the same level (no nested pipelines),
| with a <p:pipelines> wrapper (if necessary; if a document only defines
| one pipeline, then it shouldn't be necessary)

That's one choice. But it means you can't easily grab someone else's
pipeline and stick it into yours (because it might already have it's
own nested pipelines).

I'm inclined to say that a p:pipeline that occurs as a child of
another p:pipeline is local to the parent p:pipeline and acts like a
function definition when encountered (it's parsed and squirreled away
somewhere but has no effect unless it's called by some p:step).

| 4. We have a <p:import> to import pipeline definitions kept in
| separate physical files

Yep.

| 5. Pipeline invocation uses a component library, a component name, and
| a set of inputs and parameters. The component library includes the
| built-in components, pipeline components defined in XProc files, and
| implementation-defined components (which might be web services etc.)

I think that's right.

I'm still imagining that there'll be some XML vocabulary for defining
the "signatures" of components. We'll publish a bunch which
implementations must support (and maybe some that they can optionally
support, if we must) but they're free to add their own. From a users
point of view, a component is just a QName so whether it's a web
service or not is irrelevant.

I think we'll probably want to allow such declarations to occur in
pipelines as well.

  <p:pipeline name="my:pipe">
    <p:declare-input ...
    <p:declare-output ...

    <p:declare-component name="my:ouiji"
                         my:javaClass="com.nwalsh.xproc.OuijiBoard">
      <p:declare-input ...
      <p:declare-input ...
      <p:declare-input ...
      <p:declare-output ...
    </p:declare-component>

    <p:step kind="my:ouiji">
      <p:input ...
      <p:input ...
      <p:input ...
      <p:output ...
    </p:step>
  </p:pipeline>

                                        Be seeing you,
                                          norm

-- 
Norman Walsh
XML Standards Architect
Sun Microsystems, Inc.

Received on Friday, 21 July 2006 14:00:43 UTC