![]() |
||
|
aranea.ru || WML - Введение | 10.3.2 Анализ синтаксиса подстановки переменных
10.3.2 Анализ синтаксиса подстановки переменныхСинтаксис подстановки переменных (например, $X) анализируется после того, как завершится анализ всего XML. В XML-терминологии подстановка переменной анализируется после того, как процессор XML (XML processor) проанализирует документ и предоставит результирующую форму анализа для приложения XML (XML application). В контексте этой спецификации, синтаксический анализатор WML и устройство вывода являются приложениями XML. Это упрощает процесс, так как весь синтаксис переменных анализируется после конструкций XML, таких как теги и примитивы. В контексте анализа переменных весь синтаксис XML имеет наибольший приоритет, чем синтаксис переменных, например, подстановка примитивов осуществляется пред тем, как анализируется синтаксис подстановки переменных. Следующие примеры являются идентичными ссылками на переменную с именем X: $X & #x24;X $ X & #36; & #x58; 10.3.3 Символ доллараПобочный эффект правил синтаксического анализа состоит в том, что знак доллара должен кодироваться парой примитивов знака доллара в любом тексте #PCDATA или значений атрибута CDATA. Единственный примитив знака доллара, даже определенный как & #x2 4;, в результате дает подстановку переменной. Чтобы включить символ '$' в деку WML, он должен явно обходиться. Это можно сделать со следующим синтаксисом: $$ Два знака доллара в ряду заменяются одним символом '$'. Например: This is a $$ character. Эту будет выводится на экране, как: This is a $ character. Чтобы включить символ '$' в строку URL-перехода, определите его в форме обхода URL: %24 10.3.4 Установка переменныхЕсть несколько способов установки значений переменной. Когда переменная устанавливается, и она уже определена в контексте обозревателя, то текущее значение обновляется. Элемент setvar позволяет автору устанавливать состояние переменной, как побочный эффект навигации. Setvar может определяться в элементах задач, включая go, prev и refresh. Элемент setvar определяет имя и значение переменной, например: <setvar name="location" value="$ (X) "/> Переменная, определенная в атрибуте name (например, location) устанавливается как побочный эффект навигации. Смотрите обсуждение обработки событий (раздел 8.8 и раздел 12.5) для получения подробной информации по обработке элемента setvar. Элементы ввода устанавливают переменную, идентифицированную атрибутом name, для любой информации, получаемой пользователем. Например, элемент input присваивает вводимому тексту переменную, а элемент select присваивает значение, находящееся в атрибуте value выбранного элемента option. Ввод пользователя записывается в переменные, когда пользователь отправляет ввод элементов input или select. Зафиксированный ввод не зависит от MMI (человеко-машинный интерфейс), и автор WML не должен полагаться на частный интерфейс пользователя. Например, некоторые выполнения будут обновлять переменную с каждым символом, введенным в элемент input, а другие будут задерживать обновление переменной до того, как элемент input не потеряет фокус. Устройство вывода должно обновлять все переменные до выполнения любой задачи. Устройства вывода могут обновить вывода на дисплей текущей карты, когда устанавливаются переменные, но автор не должен допускать, что такое действие будет происходить. 10.3.5 Проверка правильностиВнутри WML-документа любая строка с предшествующим знаком доллара ('$') должна интерпретироваться как ссылка на переменную и проверяться, пока этот знак доллара не будет знаком обхода в соответствии с разделом 10.3.3. Каждая ссылка должна использовать правильный синтаксис имен переменных в соответствии с разделом 10.3.1. Каждая ссылка должна размещаться внутри текста карты (#PCDATA) или в значениях атрибутов %vdata или %HREF. Другие значения атрибутов CDATA должны использовать знак доллара для обхода, как требуется для защиты создания другой корректной ссылки переменной. Дека будет ошибочной, если любая ссылка на переменную использует некорректный синтаксис или помещается в некорректное место. Примеры некорректного использования переменных: <!-- bad variable syntax --> Balance left is $10.00 <!-- bad placement (in the type attribute) --> <do type="x-$ (type)" label="$type"> Пример знака доллара для обхода в атрибуте типа CDATA: <!-- Dollar sign escaped in type attribute --> <do type="x-$$ (type)" label="$type"> 10.4 Ограничения контекстаУстройства вывода могут предоставлять пользователям средства для ссылки или навигации по ресурсам, независимых от текущего содержания. Например, устройства вывод могут предоставлять закладки, диалог ввода URL и так далее. Везде устройство вывода осуществляет навигацию к ресурсу, который не являлся результатом взаимодействия с содержанием текущего контекста, устройство вывода должно учреждать другой контекст для такой навигации. Устройство вывода может завершать текущий контекст перед учреждением другого для новой попытки навигации. |