15 リンク

<link>要素は1つ以上の文法を持ち、それらの文法はすべて<link>要素を有効範囲とする。<link>内に含まれる文法は有効範囲を指定できない。入力がどれか1つの文法にマッチするとlinkはアクティブになる。そして以下のうち1つが実行される。

  1. 新しいドキュメントか対話に遷移する(<goto>と同様)
  2. イベントを投げ掛ける(<throw>と同様)

以下の例ではユーザが"本"と発話するか"2"キーを押すことでlinkがアクティブになる。

 
     <link next="http://www.voicexml.org/books/main.vxml">
      <grammar type="application/x-jsgf">
       本 | VoiceXMLの本
      </grammar>
      <dtmf> 2 </dtmf>
     </link>
 

以下の例では、遷移先が現在のドキュメント内で動的に決定される。

 
     <link expr="'#' + document.helpstate">
      <grammar type="application/x-jsgf"> help </grammar>
     </link>
 

<link>要素は、<vxml>、<form>、またはフォーム項目の子になることができる。<vxml>階層にあるlinkはドキュメント全体を通じてアクティブである文法を持つ。<form>階層にあるlinkはユーザがformにいる間、アクティブである文法を持つ。もし、アプリケーションルートドキュメントがdocument階層のlinkを持つなら、その文法はどんなアプリケーションのドキュメントが実行されていてもアクティブである。

モーダルなフォーム項目を実行している時には、formまたはdocument階層にあるlink文法は非アクティブとなる。

linkは、新しいドキュメントに移動する代わりにイベントを投げるように定義することもできる。このイベントはlinkが指定した場所でなく、現在実行中の場所に投げる。例えば、ユーザの入力が以下のlinkの文法にマッチすれば、現在ユーザが訪れているフォーム項目にhelpイベントを投げる。

 
     <link event="help">
      <grammar type="application/x-jsgf">
       arrgh | alas all is lost | fie ye froward machine | I don't get it
      </grammar>
     </link>
 

<link>の属性

next URIへ移動。このURIはドキュメント、またはカレントドキュメント内の対話である。
expr 与えられたECMAScript表現を評価することによりURIが動的に決定されることを除けば、nextと同じである。
event ユーザが1つのlink文法に適合したときに投げるイベント。(注)next,exprまたはeventのどれか1つだけ指定できる。
caching 12.1.参照
fetchaudio 12.1.参照
fetchhint 12.1.参照 デフォルトはdocumentfetchhintプロパティ。
fetchtimeout 12.1.参照