Data

Материал из VXML
Перейти к: навигация, поиск


<data> — новый элемент в стандарте VoiceXML 2.1, который позволяет получать данные из иных XML-документов без перехода к новому VoiceXML-документу. Для получения данных из XML-документов используется ECMAScript.

Синтаксис

<data ecmaxmltype="CDATA" 
      enctype="CDATA"  
      fetchaudio="CDATA" 
      fetchint="(prefetch|safe)" 
      fetchtimeout="CDATA" 
      maxage="CDATA" 
      maxstale="CDATA" 
      method="(GET|POST)" 
      name="ID" 
      namelist="NMTOKEN" 
      src="string — URI"
      srcexpr="CDATA">

Атрибуты

  • ecmaxmltype — тип программного интерфейса для взаимодействия ECMAScript и XML: E4X (ECMAScript for XML) или DOM (Document Object Model).
    (Необходимость указания: необязательно)
    По умолчанию: dom
  • enctype — тип кодирования представленного документа
    (Необходимость указания: необязательно)
    По умолчанию: application/x-www-form-urlencoded
  • fetchaudio — URI на аудиофайл, который проигрывается, пока не будет произведено взаимодействие с файлом XML. Если адрес не указан и используется данный атрибут или атрибут не указан, никакое аудио проигрываться не будет.
    (Необходимость указания: необязательно)
  • fetchhint — используется, чтобы определить, когда данные должны быть получены во время выполнения работы приложения. Возможные значения и их описания:
  1. prefetch — данные получаются при первом выполнении документа;
  2. safe — данные получаются, только когда они специально запрашиваются в приложении
    (Необходимость указания: необязательно)
    По умолчанию: safe
  • fetchtimeout — время ожидания на возвращение содержимого сценария, до того как будет выдана ошибка error.badfetch.
    (Необходимость указания: необязательно)
    По умолчанию: 5s
  • maxage — указывает максимально допустимое время выполнения сценария. Время указывается в секундах.
    (Необходимость указания: необязательно)
  • maxstale — указывает максимально допустимое "время жизни" сценария, то есть время, в течение которого можно использовать сценарий. Время указывается в секундах.
    (Необходимость указания: необязательно)
  • method — указывает HTTP-метод, который используется, когда отправляется запрос (возможны значения "GET" и "POST").
    (Необходимость указания: необязательно)
    По умолчанию: GET
  • name — наименование элемента. Наименование должно быть уникальным — в противном случае выводится сообщение об ошибке error.badfetch.
    (Необходимость указания: обязательно)
  • namelist — список переменных, значения которых отправляются указанному XML-документу. Переменные должны быть объявлены. В противном случае выдается ошибка error.semantic
    (Необходимость указания: необязательно)
    По умолчанию: список пуст
  • src — URI на XML-документ
    (Необходимость указания: обязательно, если не указан атрибут srcexpr)
  • srcexpr — ECMAScript-выражение для URI на XML-документ
    (Необходимость указания: обязательно, если не указан атрибут src)

ЗАМЕЧАНИЕ: обязательно должен быть указан ровно один из атрибутов src или srcexpr — в противном случае выдается ошибка error.badfetch.

Родители

<block> <catch> <error> <filled> <form> <help> <if> <noinput> <nomatch> <vxml>

Потомки

none

Пример

Пример основного диалога, который обращается к файлу hello.xml с помощью элемента <data>.

 <?xml version="1.0" encoding="UTF-8"?>
 <vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" xml:lang="ru-RU">
   <var name="value1"/>
   <var name="value2"/>
   <form id="form">
     <block>
       <data name="hello" src="hello.xml"/>
       <script>
         <![CDATA[
           value1=hello.getElementsByTagName("test_name_1").item(0).firstChild.data;
           value2=hello.getElementsByTagName("test_name_2").item(0).firstChild.data;
         ]]>
       </script>
       <prompt>
         Значение 1: <value expr="value1"/>.
         Значение 2: <value expr="value2"/>.
       </prompt>
     </block>
   </form>
 </vxml>

Пример дополнительного файла hello.xml:

 <?xml version="1.0" encoding="UTF-8"?>
 <test_name>
   <test_name_1>"4"</test_name_1>
   <test_name_2>"8"</test_name_2>
 </test_name>



Добавить новый комментарий
Если не хотите писать от анонимного пользователя, зарегистрируйтесь или представьтесь системе.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Статьи
Грамматики
Элементы VXML
Элементы SSML
Инструменты