Var

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


var — элемент <var> используется для объявления переменной. Кроме того, данный элемент позволяет при объявлении переменной присвоить ей определенное значение.

Синтаксис

<var expr = "CDATA" 
     name = "NMTOKEN"/>

Атрибуты

  • name — атрибут, определяющий имя переменной. При формировании имени могут участвовать буквы, цифры, знак подчеркивания и символ доллара. Иные символы недопустимы. Имя переменной может начинаться только с буквы или символа доллара (в противном случае будет представлена ошибка error.semantic ).
    (Необходимость указания: обязательно)
  • expr — атрибут, используемый в качестве значения, которое присваивается переменной при ее объявлении.
    (Необходимость указания: обязательно)

Области видимости переменных

VoiceXML использует область видимости как в ECMAScript для объявления переменных на разных уровнях иерархии в приложении. Например, на переменную, объявленную в области видимости документа (document scope), можно ссылаться где угодно в пределах данного документа, в то время как локальная переменная элемента <catch> доступна только в пределах данного элемента. Для того чтобы сохранить семантику области видимости, все переменные ECMAScript должны быть объявлены. При использовании необъявленных переменных выдается ошибка error.semantic

Scope Type Description
session Эти переменные доступны только для чтения, которые относятся ко всей сессии. Они объявляются и устанавливаются интерпретатором. Новые переменные этого типа не могут быть объявлены в VoiceXML документе
application Данные переменные объявлены с помощью и <script>, и они являются потомком корневого элемента <vxml> в корневом документе. Они видимы для всех загружаемых документов в данный документ. Обратите внимание, что при выполнение действий внутри корневого документа document.x эквивалентно application.x
document Данные переменные объявлены с помощью <var> и <script>, и они являются потомком корневого элемента <vxml> в некотором документе. Они видимы только внутри данного документа.
dialog Каждый диалог (меню или форма) имеет свою область видимости, которая существует только лишь, когда пользователь обращается к диалогу и видна элементам диалога. Область видимости диалога включает в себя следующие переменные:
  1. переменные, объявленные с помощью <var> и <script>
  2. переменные элементов формы
  3. скрытые переменные элементов формы
(anonymous) каждый элемент <block>, <filled>, <catch> определяет новую анонимную область видимости, которая содержит переменные объявленные в этих элементах

Каждая область видимости содержит предопределенную переменную, имя которой совпадает с именем типа области видимости, которая ссылается сама на себя. Это позволяет разработчику, например для anonymous, dialog, document областей видимости ссылаться на переменную X, находящуюся в области видимости document используя document.X. Также не рекомендуется использовать "session", "application", "document" и "dialog" в качестве имен переменных.

Стандартные переменные session

  • session.connection.local.uri — определяет URI, по которому происходит обращение к устройству локальной интерпретации
  • session.connection.remote.uri — определяет URI, по которому происходит обращение к удаленному устройству абонента
  • session.connection.protocol.name — переменная, определяющая имя протокола
  • session.connection.protocol.version — версия протокола
  • session.connection.redirect — эта переменная массив, определяющий пути переадресации. Первый элемент — номер на который звонит абонент. Последний — последний переадресованный номер. Каждый элемент содержит uri, pi (presentation information), si (screening information) и reason property. Последнее может принимать значение "unknown", "user busy", "no reply", "deflectin during alerting", "deflection immediate response", "mobile sibscriber not reachable"

Стандартные переменные application:

  • application.lastresult$ — данная переменная хранит информацию про последнюю распознанную фразу в пределах данного приложения. Это массив элементов, в котором каждый элемент, application.lastresult$[i], представляет собой возможный результат с помощью следующих переменных
  1. application.lastresult$[i].confidence — переменная, характеризующая качество распознавания текста. Значение переменной лежит в пределах [0; 1]. В случае DTMF значение переменной всегда равно 1.
  2. application.lastresult$[i].utterance — переменная отвечающая за неинтерпретированный текст (то есть как пользователь произнес, так и возвращается значение). Токенизация зависит от данной конкретной платформы("5300" = "5 тысяч 300" = "пять тысяч триста" и т.д.). В случае DTMF-грамматики, переменной возвращается последовательность цифр
  3. application.lastresult$[i].inputmode — определяет как вводили данные. DTMF или речевые.
  4. application.lastresult$[i].interpretation — интерпретированный результат распознавания.

Интерпретированный текст сортируется, согласно вероятности распознавания: от наиболее вероятного к наименее вероятному. Интерпретированный текст с идентичной вероятностью сортируются далее согласно иерархии грамматик. Различные элементы application.lastresult$ будут всегда отличаться в их utterance, interpretation или в обоих показателях. Гарантируется, что число элементов application.lastresult$ будет не меньше одного и не больше, чем свойство системы распознавание "maxnbest". Если не было получено никаких результатов, то значение application.lastresult$ будет undefined. Более того, отметим, что нулевой элемент массива application.lastresult$ содержит свойства confidence, utterance, inputmode, and interpretation. В случае, когда выдается событие <nomatch>, это считается "успешным" распознаванием и влияет на значение application.lastresult$, однако какие именно значения зависит от конкретной платформы. В отличие от <nomatch> <noinput> не влияет на значение application.lastresult$

Родители

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

Потомки

none

Пример

<?xml version="1.0"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" xml:lang="ru-RU">
 <var name="surname" expr="'Ульянов'"/>
 <form>
   <block>
     Первая фамилия <value expr="surname"/>.
     <assign name="surname" expr="'Ленин'"/>
     Новая фамилия <value expr="surname"/>.
   </block>
 </form>
</vxml>



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

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

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