<filled>要素は、いくつかのフィールドの値がユーザ入力によって埋められたときに実行するアクションを指定する。<form>要素の子として、もしくはフィールド項目の子として使用可能である。<form>要素の子としては、<filled>要素は1つまたは複数のfieldが満たされたときアクションを実行するために使用できる。例えば、以下の<filled>要素はend_cityフィールドとstart_cityフィールドを確実に異なるものにするためにクロスチェックを実行している。
<form id="get_starting_and_ending_cities"> <field name="start_city"> <grammar src="http://www.grammars.example/voicexml/city.gram"/> <prompt> 出発地はどこですか? </prompt> </field> <field name="end_city"> <grammar src="http://www.grammars.example/voicexml/city.gram"/> <prompt> 目的地はどこですか? </prompt> </field> <filled mode="any" namelist="start_city end_city"> <if cond="start_city == end_city"> <prompt> 同じ都市間を飛ぶことはできません。 </prompt> <clear/> </if> </filled> </form>
もし<filled>要素がフィールド項目内に存在するなら、それはユーザ入力によりフィールドの値が満たされた場合に実行するアクションを指定する。これは単一のフィールド項目に対してトリガされるフォームレベルの<filled>要素のための簡略記法である。
<form id="get_city"> <field name="city"> <grammar src="http://www.ship-it.example/grammars/served_cities.gram"/> <prompt> どこの都市ですか? </prompt> <filled> <if cond="city == '松ヶ崎空港'"> <prompt> 松ヶ崎空港への業務は来年終了するので注意してください。 </prompt> </if> </filled> </field> </form>
ユーザ入力の収集後、すべての名前があがっているfieldがセットされると、処理系はドキュメントオーダ内のそれぞれの<filled>要素を見る。(field内のものとform内のものとはより好みしない)発言によりマッチされたコンディションを持つそれらは、残っていないか、制御が移るもしくはイベントを投げ掛けるまでオーダ内で実行される。
属性:
mode | all(デフォルト)かanyのどちらかである。anyの場合、アクションは指定されたフィールドのいずれかが直前のユーザ入力により満たされたとき実行される。allの場合、アクションは指定された全てのフィールドが満たされており、少なくとも1つのフィールドが直前のユーザ入力で満たされたとき実行される。フィールド項目内の<filled>要素はmodeを指定できない。 |
namelist | トリガするためのfield。form内の<filled>にとって、namelistデフォルトはformのfield項目の名前(明示と暗示)である。field項目内の<filled>要素はnamelistを指定できない。;この場合namelistはfield項目名である。 |