Variables and parameters

Similar to the ideas we discussed today, here's my vision for
parameters and variables. I think we want to allow variables
to be set either as literals or as XPath expressions. Syntactically,
there are probably a few ways we could do this, for the moment I'm
going to use a 'value' attribute for literal values and a select
attribute for XPath expressions:

  <p:param name="foo" value="foo"/>
  <p:param name="bar" select="'bar'"/>
  <p:param name="six" select="2+4"/>

I assume that top level variables can be specified by the user (on a
command line, through some API, whatever). Of the variables that
remain unspecified, I propose that that they be evaluated in order.
Each XPath expression is evaluated with the context node set to an
empty document and with the parameters previously declared in its
context. So this works:

  <p:param name="one" value="1"/>
  <p:param name="two" select="$one+$one"/>
  <p:parma name="three" select="$two+$one"/>

But this is an error:

  <p:parma name="three" select="$two+$one"/>
  <p:param name="two" select="$one+$one"/>
  <p:param name="one" value="1"/>

Parameters specified on a component are evaluated by default with the
context node an empty document and the parameters "in scope" available
as variables.

  <p:step name="something">
    <p:param name="limit" select="$three+$two"/>

Optionally, parameters can specify the document that should be the
context node for evaluation:

    <p:param name="destination" ref="somelabel" select="/*/@label"/>

The value of the parameter is always string($expr).

                                        Be seeing you,
                                          norm

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

Received on Thursday, 11 May 2006 19:05:04 UTC