Syntax

We've been kicking syntax around for a bit. Unfortunately, I don't see
consensus forming anywhere in particular. I think I still prefer a
simple, syntactically regular formulation for "ordinary" components:

<p:step name="QName">
  <p:param name="QName" .../>
  <p:input name="QName" href="someURI"/>
  <p:input name="QName" ref="someLabel"/>
  <p:output name="QName" label="aLabel"/>
</p:step>

I'm sticking with the "user names each output label" for the time
being. There are a number of shortcuts we could introduce:

1. Multiple references to the same label implies a "tee"
2. href on a p:output implies a "save"
3. Omitting exactly one required p:output on a step and exactly one
   required p:input on the following step implies that that output
   is connected to that input. (Alternatively, components could nominate
   default inputs and outputs and those could be connected together by
   default.)

There are probably others, but I'm still trying to keep the issue of
syntactic shortcuts somewhat separate.

Some components aren't "ordinary", they're language control
structures. Rather than try to extend the syntax for ordinary
components to include language control structures, or express language
control structures as ordinary components, I propose that we allow
them to have a different regular syntax.

<p:structureName ...>
  <p:param name="QName" .../>
  <p:input name="QName" label="aLabel" href="someURI"/>
  <p:input name="QName" label="anotherLabel" ref="someLabel"/>
  <p:output name="QName" label="label3"/>

  <p:substructureName1/>
  <p:substructureName2/>
  <p:substructureName3/>
</p:structureName>

Note that both p:input and p:output elements have a label attribute in
a language control structure. My thinking is that ref's are scoped
inside a control structure.

In this way, we get components like

  <p:if>
    <p:then/>
    <p:else/>
  </p:if>

  <p:choose>
    <p:when/>
    <p:when/>
    <p:otherwise/>
  </p:choose>

  <p:for-each>
    <p:step/>
  </p:for-each>

  <p:peephole>
    <p:step/>
  </p:peephole>

Does this seem like a workable syntax for a first draft of the
language document?

                                        Be seeing you,
                                          norm

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

Received on Wednesday, 17 May 2006 21:51:16 UTC