ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || WML - Введение | 10. Модель режимов

10. Модель режимов

Язык WML включает поддержку контроля режимов устройства вывода, включая:

  • Переменные – параметры, используемые для изменения характеристик и содержания WML-карты или деки;
  • История – история навигации, которая может использоваться для облегчения эффективной обратной навигации; и
  • Режим, зависимый от выполнения – состояние, связанное с частными выполнениями и поведением устройства вывода.

10.1 Контекст обозревателя

Режим WML сохраняется в одних границах, известных как контекст обозревателя (browser context). Контекст обозревателя используется для обращения со всеми параметрами и режимом устройства вывода, включая переменные, историю навигации и другую информацию, зависимую от выполнения и связанную с текущим состоянием устройства вывода.

10.2 Атрибут Newcontext

Контекст обозревателя можно инициализировать с хорошо отформатированным режимом с помощью атрибута newcontext элемента card (смотрите раздел 11.5). Этот атрибут указывает, что контекст обозревателя должен быть повторно инициализирован и должен выполнять следующие операции:

  • Отмена всех переменных, определенных в текущем контексте обозревателя,
  • Очистка состояния истории навигации, и
  • Переустановка режима, особого для выполнения, к хорошо известной величине.

Атрибут newcontext выполняется только как часть задачи go. Смотрите раздел 12.5 для получения подробной информации по обработке режима в течение навигации.

10.3 Переменные

Все WML-содержание может иметь параметры, что предоставляет авторам большую гибкость в создании карт и дек с улучшенным поведением кеширования и взаимодействием. Переменные в WML могут использоваться на месте строк и заменяться во время выполнения на текущее значение.

Переменная устанавливается, если она имеет величину, не равную пустой строке. Значение не устанавливается, если оно равное пустой строке, или не известно или не определено в текущем контексте обозревателя.

10.3.1 Подстановка переменных

Значения переменных могут вставляться в текст (#PCDATA) карты и в значения атрибутов %vdata и %HREF в элементах WML. Только текстовая информация может подставляться; не возможна подстановка элементов или атрибутов. Подстановка значений переменных происходит во время выполнения в устройстве вывода. Подстановка не воздействует на текущее значение переменной и не определяется как операция подстановки строки. Если ссылаются на неопределенную переменную, то это приводит в результате к подстановке пустой строки.

Имена переменных в WML состоят из букв US-ASCII или подчеркивания и последующими ноль или больше букв, цифр или подчеркиваний. Любые другие символы не корректны и приводят к ошибке. Имена переменных чувствительны к регистру.

Следующее описание синтаксиса подстановки переменных используется в расширенной форме Бекуса - Наура (the Extended Backus-Naur Form (EBNF)), установленной в [XML].

var = ( "$" varname ) |
               ( "$(" varname ( conv )? ")" ) |
               ( deprecated-var )
conv = ":" ( "escape" | "noesc" | "unesc" )
varname = ( "_" | alpha ) ( "_" | alpha | digit )*
alpha = lalpha | halpha
lalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" |
                        "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" |
                        "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
halpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" |
                        "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" |
                        "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
                     "8" | "9"
deprecated-var = "$(" varname deprecated-conv ")"

deprecated-conv = ":"( escape | noesc | unesc )
escape = ("E" | "e") ( ( "S" | "s" ) ( "C" | "c" )
                        ( "A" | "a" ) ( "P" | "p" )
                        ( "E" | "e" ) )?
noesc = ( "N" | "n" ) ( ( "O" | "o" ) ("E" | "e")
                     ( "S" | "s" ) ( "C" | "c" ) )?
unesc = ( "U" | "u" ) ( ( "N" | "n" ) ("E" | "e")
                      ( "S" | "s" ) ( "C" | "c" ) )?

Смешенный регистр и сокращенные преобразования являются устаревающими. Авторы должны использовать только нижний регистр.

Круглые скобки требуются везде, где конец переменной не ясен из окружающего контекста, например, некорректный символ, такой как пробел.

Например:

This is a $var
This is another $ (var).
This is an escaped $(var:escape). 
This is an unescape $(var:unesc).
Other legal variable forms: $_X $X32 $Test_9A

Значение переменных может конвертироваться в различную форму во время их подстановки. Преобразование может определяться ссылкой на переменную с последующим двоеточием. Следующая таблица объединяет текущее преобразование и их корректное сокращение:

Таблица 3. Методы обхода переменных
Преобразование Эффект
Noesc Нет изменений в значении переменной.
Escape URL-переход значения переменных.
Unesc URL-непереход значения переменной.

Использование преобразования во время подстановки не действует на фактическое значение переменной.

URL-переход описан подробно в [RFC23 96]. Все лексически чувствительные символы, определенные в WML должны обходится, включая все символы, которые не входят в не зарезервированный (unreserved) набор, установленный в [RFC2396].

Если нет преобразования, то переменная подставляется с использованием формата для преобразования, соответствующего контексту. Все атрибуты, определенные как %HREF;, по умолчанию следуют преобразованию escape, везде где нет преобразования. Определение преобразования noesc отключает переход переменной, чувствительный к контексту.

← Назад | Вперед →
Copyright © 2006 -  aranea.ru