Re: still confused about event counters...

> From: Jean-Michel Reghem <reghem@babeltech.com>

> >   <catch event="nomatch noinput" count="3" cond="some-expression">
> >       ...
> >   </catch>
> >
> >Should the counter associated with this catcher increment if event
> >matches, but the cond evaluates to false? Or, increment count only if
> >both event matches and cond is true?

> normally, it is incremented all the time, but the catch is only interpreted 
> when condition is matched ...

Perhaps. The latter interperation might be useful for something like

   <catch count="3" cond="_event != 'nomatch'>
     ..
     .. catch would fire on any 3rd event, which is NOT 'nomatch'
     ..
   </catch>


However, I'm *still* questioning the sanity of the event counting
semantics. In "5.2.2 Catch":

event	 The event or events to catch. This may be an empty string
	 indicating that all events are to be caught. Alternatively, a
	 space-separated list of events may be specified, indicating
	 that this <catch> element catches all the events named in the
	 list. In such a case a separate event counter (see "count"
	 attribute) is maintained for each event. If the attribute is
	 unspecified, all events are to be caught. count

This seems to require that in case of

   <catch event="noinput nomatch" count="3">

we should keep a separate counter for 'noinput' and 'nomatch', and
catch doesn't fire until one of them separately gets to 3 (e.g. a
sequence "noinput + nomatch + nomatch + noinput" does not fire the
catch?). In my view it should.

  What does the VoiceXML draft mean? I cannot figure it out.

To me, a much cleaner semantic description would be:

  A counter is associated with each currently *active* catch element,
  and incremented every time when, an event matching the catch element
  occurs. Counter starts from zero, when catch is activated (like
  entering form/menu or form item etc.). [the "matching" includes the
  cond expression, too]

Received on Tuesday, 5 February 2002 03:37:41 UTC