Re: Namelist continued

Jon,
   namelist is simple when it works, and useless when it doesn't. 
<param> always gives you more control.

In your first Xpath example, the names of the attributes would be the 
location expressions themselves as strings:
(I'll put them in single quotes to make this explicit):
'$var1'
'$var1/children'
'$var1/children[last()]'
'ancestor::$var1/children[last()]"'

If the invoked process had <data id="var1"/> as a top id, its value 
would _not_ get replaced by the data passed in the invocation since 
'var1' != '$var1'.  (So in this case namelist is not very useful).

In your second ecma script case the attributes would again  be the 
location expressions themselves as strings:
'var1'
'var1.children'
'var1.children.slice(-1)[0]'

In the invoked process had a top level <data id="var1"/> in an ecma 
script data model, it's value _would_ be replaced by the data passed in 
since 'var1' == 'var1'.  The other two expressions would _not_ replace 
anything since, when taken as strings, they do not match the 'id' 
attributes of any top level vars.  (That is, I assume no data model 
would have <data id="var1.children"/>)

The same thing would happen if the invoked process had an XPath data 
model, though the values might be garbage and cause errors.

It may help to explain that SCXML inherited 'namelist' from VoiceXML and 
CCXML, both of which had ecma data models. People who were familiar with 
those languages found namelist useful and wanted it included in SCXML.

- Jim


On 9/26/2015 9:12 AM, Jon Kerny wrote:
> HI,
>
> I saw that there previously has been some discussions about the 
> namelist, and that at least in some parts my questions has been 
> adressed. But I feel that this is quite complicated.
>
> In my understanding, namelist is a shorthand for param, but this name 
> thing makes it more complicated than param where name is set 
> explicitly in code.
>
>
> Here are some examples I'd like to get comments on:
>
> What would be the names in an Xpath scxml if the following location 
> expressions was used in a namelist?
>
> $var1
> $var1/children
> $var1/children[last()]
> ancestor::$var1/children[last()]"
>
> If the target of the invoke/send is an ecmascript scxml with the var1 
> as a top most id what would the result be?
>
> If it instead is a xpath scxml what would be the result?
>
> And in the opposite direction, what would the names of an ecmascript 
> datamodel be for the following location expressions in namelist?
> var1
> var1.children
> var1.children.slice(-1)[0]
> (I don't know how to write something similar to ancestor)
>
> And what would happen if the target of the invoke/send is an 
> ecmascript scxml with the var1 as a top most id what would the result be?
>
> If it instead is a xpath scxml what would be the result?
>
> Best regards,
>
> Jon
>
>

Received on Saturday, 26 September 2015 14:59:09 UTC