Required assertions

IDSpec. ReferenceAbstract
1[sec-grammar_expr] Grammar element may include a srcexpr attribute to dynamically generate grammar URL
2[sec-grammar_expr] If both src and srcexpr are included, error.badfetch is thrown
3[sec-grammar_expr] If both srcexpr and inline grammar are included, error.badfetch is thrown
4[sec-grammar_expr] If none of src, srcexpr nor inline grammar are included, error.badfetch is thrown
5[sec-grammar_expr] srcexpr must be evaluated every time the grammar element needs to be executed
7[sec-grammar_expr] If srcexpr cannot be evaluated, an error.semantic is thrown
8[sec-grammar_expr] If both src and inline grammar are included, error.badfetch is thrown
9[sec-script_expr] Script element may include an srcexpr attribute to dynamically generate script URL
10[sec-script_expr] If both src and srcexpr are included, error.badfetch is thrown
11[sec-script_expr] If none of src, srcexpr nor inline script are included, error.badfetch is thrown
12[sec-script_expr] srcexpr must be evaluated every time the script element needs to be executed
13[sec-script_expr] If both srcexpr and inline script are included, error.badfetch is thrown
14[sec-script_expr] If both src and inline script are included, error.badfetch is thrown
15[sec-script_expr] If srcexpr cannot be evaluated, an error.semantic is thrown
16[sec-mark] When a <mark> is executed during the processing of a form item, the interpreter sets shadow variables, the names of which correspond to the properties of the application.lastresult$ object. The value of each shadow variable must be identical to the value of the corresponding application.lastresult$ property.
17[sec-mark] VoiceXML 2.1 extends the <mark> element to support the nameexpr attribute, which is an ECMAScript expression that evaluates to the name of the <mark>.
18[sec-mark] Exactly one of "name" and "nameexpr" must be specified; otherwise, an error.badfetch event is thrown.
19[sec-mark] The markname and marktime properties of the application.lastresult$ object must be set whenever the application.lastresult$ object is assigned and a <mark> has been executed.
20[sec-mark] If no <mark> was executed, the markname and marktime properties of application.lastresult$ are undefined.
21[sec-data] If content is not returned within the specified fetchtimeout, an error.badfetch event is thrown.
22[sec-data] The interpreter fetches the URI specified by the src attribute.
24[sec-data] If the name attribute is present, and the interpreter doesn't support DOM, the interpreter must throw error.unsupported.data.name.
25[sec-data] The interpreter evaluates the srcexpr attribute as an ECMAScript expression when the <data> element needs to be executed. The result of evaluating the srcexpr attribute is the URI to be fetched.
26[sec-data] If srcexpr cannot be evaluated, error.semantic is thrown.
27[sec-data] Exactly one of "src" or "srcexpr" must be specified; otherwise, an error.badfetch event is thrown.
28[sec-data] Interpreters must support the methods GET and POST when submitting an HTTP request. GET is the default method.
29[sec-data] Specifying a URL that points to a non-existent resources causes the interpreter to throw a catchable error.badfetch event.
30[sec-data] If the name attribute is specified, the interpreter supports the DOM, and the interpreter retrieves an XML document that is not well-formed, the interpreter must throw a catchable error.badfetch.
31[sec-data] The <data> element can occur in executable content or as a child of <form> or <vxml>.
32[sec-data] The <data> element shares the same scoping rules as the <var> element.
33[sec-data] If a <data> element has the same name as a variable already declared in the same scope, the variable is assigned a reference to the DOM exposed by the <data> element.
34[sec-data] If use of the DOM causes a DOMException to be thrown, but the DOMException is not caught by an ECMAScript catch handler, the VoiceXML interpreter throws error.semantic.
35[sec-data] When an ECMAScript variable is submitted to the server its value is first converted into a string before being submitted.
36[sec-data] The default encoding type of the submitted document is "application/x-www-form-urlencoded".
37[sec-data] If the enctype attribute is set to "multipart/form-data", the interpreters must submit the document using that encoding type.
38[sec-data] If the namelist is not specified, no variables are submitted.
39[sec-data] If <data> has a namelist attribute, all and only those variables are submitted.
40[sec-data] If a namelist is supplied, it may contain individual variable references which are submitted with the same qualification used in the namelist.
41[sec-data] If specified, fetchaudio plays during a long fetch.
88[sec-foreach] The <foreach> element can occur as a child of a <prompt> element.
89[sec-foreach] The array attribute must be an ECMAScript expression that evaluates to an array; otherwise an error.semantic is thrown.
90[sec-foreach] The item variable stores each array item upon iteration of the loop. A new variable will be declared if it is not already defined within the parent's scope.
92[sec-reco_reco] When the "recordutterance" property is set to true, the "recording" shadow variable of an input item (e.g. field) stores a reference to the recording when audio is collected from the user. Utterance recordings can be played back using the expr attribute of the audio element.
94[sec-reco_reco] when property "recordutterance" is set to true, an input item has been filled and has its shadow variables assigned, "recordingsize" must be set in the shadow variable for that input item variable
95[sec-reco_reco] When the shadow variable "recordingsize" is set, it must contain the size of the recorded audio in bytes
96[sec-reco_reco] when property "recordutterance" is set to true, an input item has been filled and has its shadow variables assigned, "recordingduration" must be set in the shadow variable for that input item variable
97[sec-reco_reco] When the shadow variable "recordingduration" is set, it must contain the duration of the recorded audio in milliseconds
98[sec-reco_reco] application.lastresult$ must have the shadow variable "recording" set to the same value as the form item shadow variable
99[sec-reco_reco] application.lastresult$ must have the shadow variable "recordingsize" set to the same value as the form item shadow variable
100[sec-reco_reco] application.lastresult$ must have the shadow variable "recordingduration" set to the same value as the form item shadow variable
101[sec-reco_reco] In the case of <link> and <menu>, the interpreter only sets the application.lastresult$ properties.
103[sec-reco_reco] enctype must be "multipart/form-data" when sending the recording on the namelist
104[sec-reco_reco] type must be "POST" when sending the recording on the namelist
105[sec-reco_reco-type] set the media format of recorded audio during recognition using the recordutterancetype property
106[sec-reco_reco-type] The platform must support the audio file format 'audio/basic' as specified in Appendix E of the VoiceXML 2.0 specification.
108[sec-disconnect] The default for namelist of a disconnect element is to return no variables; this means the interpreter context will receive an empty ECMAScript object.
109[sec-disconnect] The variables specified in the namelist attribute of the disconnect element are returned to the interpreter context. (The precise mechanism by which these variables are made available to the interpreter context is platform specific.)
111[sec-disconnect] If the namelist attribute of a disconnect element contains one or more undeclared variables, the interpreter throws error.semantic.
127[sec-reco_reco] If recordutterance property is set to false, recording shadow variable will be set to undefined after filling a <field> using speech input
128[sec-reco_reco] If recordutterance property is set to false, recordingsize shadow variable will be set to undefined after filling a <field> using speech input
129[sec-reco_reco] If recordutterance property is set to false, recordingduration shadow variable will be set to undefined after filling a <field> using speech input
136[sec-reco_reco] Recorded utterance may be posted using <submit>
137[sec-reco_reco] Recorded utterance may be posted using <subdialog>
138[sec-reco_reco] Recorded utterance may be posted using <data>
141[sec-mark] If nameexpr cannot be evaluated, an error.semantic event is thrown.
142[sec-data] If the datafetchhint property is set to "safe", content of that type is never fetched until it is needed
143[sec-data] A cached data resource must be reloaded if the datamaxage property for its type is less than its current age.
144[sec-data] A cached data resource must be reloaded if the datamaxstale property for its type is less than its current staleness.
145[sec-disconnect] The <disconnect> namelist and the <exit> namelist are processed independently. If the interpreter executes both a <disconnect> namelist and an <exit> namelist, both sets of variables are available to the interpreter context. (The precise mechanism by which these variables are made available to the interpreter context is platform specific.)
147[sec-reco_reco-type] platform must support audio file format audio/x-alaw-basic from VXML 2.0
148[sec-reco_reco-type] platform must support audio file format audio/x-wav from VXML 2.0
149[sec-foreach] The array attribute must evaluate to an ECMAScript Array; otherwise, an error.semantic event is thrown. (Tests various data types from foreach appearing within a block.)
150[sec-foreach] The array attribute must evaluate to an ECMAScript Array; otherwise, an error.semantic event is thrown. (Tests various data types from foreach appearing within a prompt in a block.)
151[sec-foreach] The array attribute must evaluate to an ECMAScript Array; otherwise, an error.semantic event is thrown. (Tests various data types from foreach appearing within a prompt in a field.)
152[sec-foreach] The assigned value could be undefined for a sparse array. (Tests sparse array handling.)
153[sec-foreach] The foreach element operates on a shallow copy of the array specified by the array attribute.
154[sec-foreach] A shallow copy of the corresponding array element is assigned to the item variable.
155[sec-foreach] Executable content is not allowed within foreach contained within a prompt. (This tests a prompt inside block.)
156[sec-foreach] Executable content is not allowed within foreach contained within a prompt (this test includes the prompt in a field).




Optional assertions

IDSpec. ReferenceAbstract
23[sec-data] If the name attribute is specified, the interpreter exposes the DOM through the ECMAScript variable corresponding to the value of the name attribute.
42[sec-data-dom] The DOM exposed by the <data> tag must support the code property of the DOMException object as specified in DOM Level 2 .
43[sec-data-dom] The DOM exposed by the <data> tag must support the documentElement property of the Document object as specified in DOM Level 2 .
44[sec-data-dom] The DOM exposed by the <data> tag must support the getElementsByTagName method of the Document object as specified in DOM Level 2 .
45[sec-data-dom] The DOM exposed by the <data> tag must support the getElementsByTagNameNS method of the Document object as specified in DOM Level 2 .
46[sec-data-dom] The DOM exposed by the <data> tag must support the getElementById method of the Document object as specified in DOM Level 2 .
47[sec-data-dom] The DOM exposed by the <data> tag must support the nodeName property of the Node object as specified in DOM Level 2 .
48[sec-data-dom] The DOM exposed by the <data> tag must support the nodeValue property of the Node object as specified in DOM Level 2 .
49[sec-data-dom] The DOM exposed by the <data> tag must support the nodeType property of the Node object as specified in DOM Level 2 .
50[sec-data-dom] The DOM exposed by the <data> tag must support the parentNode property of the Node object as specified in DOM Level 2 .
51[sec-data-dom] The DOM exposed by the <data> tag must support the childNodes property of the Node object as specified in DOM Level 2 .
52[sec-data-dom] The DOM exposed by the <data> tag must support the firstChild property of the Node object as specified in DOM Level 2 .
53[sec-data-dom] The DOM exposed by the <data> tag must support the lastChild property of the Node object as specified in DOM Level 2 .
54[sec-data-dom] The DOM exposed by the <data> tag must support the previousSibling property of the Node object as specified in DOM Level 2 .
55[sec-data-dom] The DOM exposed by the <data> tag must support the nextSibling property of the Node object as specified in DOM Level 2 .
56[sec-data-dom] The DOM exposed by the <data> tag must support the attributes property of the Node object as specified in DOM Level 2 .
57[sec-data-dom] The DOM exposed by the <data> tag must support the ownerDocument property of the Node object as specified in DOM Level 2 .
58[sec-data-dom] The DOM exposed by the <data> tag must support the namespaceURI property of the Node object as specified in DOM Level 2 .
59[sec-data-dom] The DOM exposed by the <data> tag must support the prefix property of the Node object as specified in DOM Level 2 .
60[sec-data-dom] The DOM exposed by the <data> tag must support the localName property of the Node object as specified in DOM Level 2 .
61[sec-data-dom] The DOM exposed by the <data> tag must support the hasChildNodes method of the Node object as specified in DOM Level 2 .
63[sec-data-dom] The DOM exposed by the <data> tag must support the hasAttributes method of the Node object as specified in DOM Level 2 .
64[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the NodeList object as specified in DOM Level 2 .
65[sec-data-dom] The DOM exposed by the <data> tag must support the item method of the NodeList object as specified in DOM Level 2 .
66[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the NamedNodeMap object as specified in DOM Level 2 .
67[sec-data-dom] The DOM exposed by the <data> tag must support the getNamedItem method of the NamedNodeMap object as specified in DOM Level 2 .
68[sec-data-dom] The DOM exposed by the <data> tag must support the item method of the NamedNodeMap object as specified in DOM Level 2 .
69[sec-data-dom] The DOM exposed by the <data> tag must support the getNamedItemNS method of the NamedNodeMap object as specified in DOM Level 2 .
70[sec-data-dom] The DOM exposed by the <data> tag must support the data property of the CharacterData object as specified in DOM Level 2 .
71[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the CharacterData object as specified in DOM Level 2 .
72[sec-data-dom] The DOM exposed by the <data> tag must support the substringData method of the CharacterData object as specified in DOM Level 2 .
73[sec-data-dom] The DOM exposed by the <data> tag must support the name property of the Attr object as specified in DOM Level 2 .
74[sec-data-dom] The DOM exposed by the <data> tag must support the specified property of the Attr object as specified in DOM Level 2 .
75[sec-data-dom] The DOM exposed by the <data> tag must support the value property of the Attr object as specified in DOM Level 2 .
76[sec-data-dom] The DOM exposed by the <data> tag must support the ownerElement property of the Attr object as specified in DOM Level 2 .
77[sec-data-dom] The DOM exposed by the <data> tag must support the tagName property of the Element object as specified in DOM Level 2 .
78[sec-data-dom] The DOM exposed by the <data> tag must support the getAttribute method of the Element object as specified in DOM Level 2 .
79[sec-data-dom] The DOM exposed by the <data> tag must support the getAttributeNode method of the Element object as specified in DOM Level 2 .
80[sec-data-dom] The DOM exposed by the <data> tag must support the getElementsByTagName method of the Element object as specified in DOM Level 2 .
81[sec-data-dom] The DOM exposed by the <data> tag must support the getAttributeNS method of the Element object as specified in DOM Level 2 .
82[sec-data-dom] The DOM exposed by the <data> tag must support the getAttributeNodeNS method of the Element object as specified in DOM Level 2 .
83[sec-data-dom] The DOM exposed by the <data> tag must support the getElementsByTagNameNS method of the Element object as specified in DOM Level 2 .
84[sec-data-dom] The DOM exposed by the <data> tag must support the hasAttribute method of the Element object as specified in DOM Level 2 .
85[sec-data-dom] The DOM exposed by the <data> tag must support the hasAttributeNS method of the Element object as specified in DOM Level 2 .
86[sec-data-dom] The DOM exposed by the <data> tag must support the target property of the ProcessingInstruction object as specified in DOM Level 2 .
87[sec-data-dom] The DOM exposed by the <data> tag must support the data property of the ProcessingInstruction object as specified in DOM Level 2 .
102[sec-reco_reco] <record> may record user utterances while attempting recognition
112[sec-transfer] If type is specified and bridge not specified, type takes precedence over the default value of the bridge attribute.
113[sec-transfer] If type="consultation" an outgoing call is attempted to the specified destination.
114[sec-transfer] If type="consultation" and the caller disconnects while the outgoing call is attempted, connection.disconnect.hangup is thrown.
115[sec-transfer] If type="consultation" and the caller cancels the transfer attempt while the outgoing call is attempted by using a DTMF command, the transfer form item variable is filled with near_end_disconnect.
116[sec-transfer] If type="consultation" and the caller cancels the transfer attempt while the outgoing call is attempted by using a voice command, the transfer form item variable is filled with near_end_disconnect.
117[sec-transfer] If type="consultation" and an outgoing call is attempted to a specified destination that is busy, the transfer form item variable will be filled with busy.
118[sec-transfer] If type="consultation" and an outgoing call is attempted to a specified destination but an intermediate network is busy, the transfer form item variable will be filled with network_busy.
119[sec-transfer] If type="consultation" and the outgoing call is not answered within the time specified by connecttimeout, the transfer attempt terminates, and the transfer form item variable is filled with noanswer.
120[sec-transfer] If type="consultation" and the transfer attempt ends but the reason is not known, the transfer form item variable is filled with unknown.
121[sec-transfer] If type="consultation" and the outgoing call is answered, the platform disconnects from the conversation, connection.disconnect.transfer is thrown, the transfer form item variable is undefined, and the calling and called parties remain connected.
122[sec-transfer] If type="consultation" and the platform does not support consultation transfer, error.unsupported.transfer.consultation is thrown.
123[sec-transfer] The transfer element's "connecttimeout" value is not honored unless either "bridge" is set to true or "type" is set to "bridge" or "consultation".
124[sec-transfer] Exactly one of "bridge" or "type" may be specified; otherwise an error.badfetch event is thrown.
125[sec-transfer] The "maxtime" value will only be honored if the "bridge" attribute is set to "true", or the "type" is set to "bridge"
126[sec-transfer] When "transferaudio" is specified, and the audio file has not completed playing, the audio will cease upon a far-end connection.
130[sec-reco_reco] If recordutterance property is set to false, recording shadow variable will be set to undefined after terminating a <record> with speech
131[sec-reco_reco] If recordutterance property is set to false, recordingsize shadow variable will be set to undefined after termininating a <record> using speech
132[sec-reco_reco] If recordutterance property is set to false, recordingduration shadow variable will be set to undefined after terminating a <record> using speech
133[sec-reco_reco] If recordutterance property is set to false, recording shadow variable will be set to undefined after terminating a <transfer> using speech
134[sec-reco_reco] If recordutterance property is set to false, recordingsize shadow variable will be set to undefined after terminating a <transfer> using speech
135[sec-reco_reco] If recordutterance property is set to false, recordingduration shadow variable will be set to undefined after terminating a <transfer> using speech
146[sec-reco_reco] <transfer> may record user utterances while attempting recognition
157[sec-data-dom] The DOM exposed by the <data> tag must support the data property of the Comment object as specified in DOM Level 2 .
158[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the Comment object as specified in DOM Level 2 .
159[sec-data-dom] The DOM exposed by the <data> tag must support the substringData method of the Comment object as specified in DOM Level 2 .
160[sec-data-dom] The DOM exposed by the <data> tag must support the data property of the Text object as specified in DOM Level 2 .
161[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the Text object as specified in DOM Level 2 .
162[sec-data-dom] The DOM exposed by the <data> tag must support the substringData method of the Text object as specified in DOM Level 2 .
163[sec-data-dom] The DOM exposed by the <data> tag must support the data property of the CDATASection object as specified in DOM Level 2 .
164[sec-data-dom] The DOM exposed by the <data> tag must support the length property of the CDATASection object as specified in DOM Level 2 .
165[sec-data-dom] The DOM exposed by the <data> tag must support the substringData method of the CDATASection object as specified in DOM Level 2 .
166[sec-data-dom] The DOM exposed by the <data> tag must support the nodeName property of the Entity Relationship Node object as specified in DOM Level 2 .
167[sec-data-dom] The DOM exposed by the <data> tag must support the nodeValue property of the Entity Relationship Node object as specified in DOM Level 2 .
168[sec-data-dom] The DOM exposed by the <data> tag must support the nodeType property of the Entity Relationship Node object as specified in DOM Level 2 .
169[sec-data-dom] The DOM exposed by the <data> tag must support the parentNode property of the Entity Relationship Node object as specified in DOM Level 2 .
170[sec-data-dom] The DOM exposed by the <data> tag must support the childNodes property of the Entity Relationship Node object as specified in DOM Level 2 .
171[sec-data-dom] The DOM exposed by the <data> tag must support the firstChild property of the Entity Relationship Node object as specified in DOM Level 2 .
172[sec-data-dom] The DOM exposed by the <data> tag must support the lastChild property of the Entity Relationship Node object as specified in DOM Level 2 .
173[sec-data-dom] The DOM exposed by the <data> tag must support the previousSibling property of the Entity Relationship Node object as specified in DOM Level 2 .
174[sec-data-dom] The DOM exposed by the <data> tag must support the nextSibling property of the Entity Relationship Node object as specified in DOM Level 2 .
175[sec-data-dom] The DOM exposed by the <data> tag must support the attributes property of the Entity Relationship Node object as specified in DOM Level 2 .
176[sec-data-dom] The DOM exposed by the <data> tag must support the ownerDocument property of the Entity Relationship Node object as specified in DOM Level 2 .
177[sec-data-dom] The DOM exposed by the <data> tag must support the hasChildNodes method of the Entity Relationship Node object as specified in DOM Level 2 .
178[sec-data-dom] The DOM exposed by the <data> tag must support the hasAttributes method of the Entity Relationship Node object as specified in DOM Level 2 .
200[sec-transfer] (SIP version of assertion 113) If type="consultation" an outgoing call is attempted to the specified destination.
201[sec-transfer] (SIP version of assertion 119) If type="consultation" and the outgoing call is not answered within the time specified by connecttimeout, the transfer attempt terminates, and the transfer form item variable is filled with noanswer.




Copyright 2005 VoiceXML Forum. All Rights Reserved.