Page 1 of 1

subdialog not validating

Posted: Thu Sep 28, 2006 5:48 pm
by bluematrix
Hi guys,

I've been trying to validate this vxml with the online plum validator to no avail. This works in other validators and I dont see anything wrong.

This is the error message
Validation Results:

Error at line 38, char 11
Message: Element 'subdialog' is not valid for content model: '(#PCDATA|audio|enumerate|value|assign|clear|data|disconnect|exit|foreach|goto|if|log|prompt|reprompt|return|script|submit|throw|var|elseif|else)*'


and his is my vxml

<?xml version="1.0" ?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">



<meta name="maintainer" content="" />

<property name="universals" value="all" />

<property name="inputmodes" value="dtmf" />

<var name="callerid" expr="session.telephone.ani"/>





<form id="m1">

<!--

-->

<field name="choice" type="number">

<prompt>

Welcome to the blue matrix voice message system.

Please select from the folowing options:

to listen to an existing recording, press 1.

to create a non material recording, press 2.

to create a material recording, press 3.

to repeat this menu, press 0.



</prompt>

<filled>

<if cond="choice==1">

<subdialog src="http://audio.bluematrix.com/bluematrix/ ... ode=select"/>

<elseif cond="choice==2"/>

<subdialog src="http://audio.bluematrix.com/bluematrix/ ... _msg_nm.pl"/>

<elseif cond="choice==3"/>

<subdialog src="http://audio.bluematrix.com/bluematrix/ ... ice_msg.pl"/>

<elseif cond="choice==0"/>

<goto next="#m1"/>

<else />

<prompt>unrecognizable option</prompt>

<goto next="#m1"/>

</if>

<goto next="#m1"/>

</filled>

</field>



<help>I'm sorry. There's no help available here. <reprompt /></help>

<noinput>I'm sorry. I didn't hear anything. <reprompt /></noinput>

<nomatch>I do not understand. <reprompt /></nomatch>

<error>There was an error processing. Please try again. <reprompt /></error>

</form>

</vxml>

Any help much appreciated Thanks...

Posted: Fri Sep 29, 2006 6:11 am
by adriannaude
Hi,

What you need to do is to split the <subdialog> tags into their own little forms and call the forms from your <if> tag. If your little forms have the <goto next="#m1"/> at the end of each one then you'll achieve the same result as you've laid out above.

Cheers,
Adrian

<subdialog> tag is form-level field tag in IVR

Posted: Fri Sep 29, 2006 11:43 am
by support
Adrian's suggestion is excellent. Another alternative is to use the executable tag <submit> instead of <subdialog> in your IVR application.

The <subdialog> tag is a form-level field tag as specified in the official VoiceXML DTD: http://www.w3.org/TR/voicexml20/vxml.dtd. As such, it can't be used within an <if> block.

Posted: Wed Oct 04, 2006 9:12 am
by bluematrix
Thank you much guys.
I'll create more forms...