![]() |
||
|
aranea.ru || WML - Введение | 10. Модель режимов
10. Модель режимовЯзык 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 Значение переменных может конвертироваться в различную форму во время их подстановки. Преобразование может определяться ссылкой на переменную с последующим двоеточием. Следующая таблица объединяет текущее преобразование и их корректное сокращение:
Использование преобразования во время подстановки не действует на фактическое значение переменной. URL-переход описан подробно в [RFC23 96]. Все лексически чувствительные символы, определенные в WML должны обходится, включая все символы, которые не входят в не зарезервированный (unreserved) набор, установленный в [RFC2396]. Если нет преобразования, то переменная подставляется с использованием формата для преобразования, соответствующего контексту. Все атрибуты, определенные как %HREF;, по умолчанию следуют преобразованию escape, везде где нет преобразования. Определение преобразования noesc отключает переход переменной, чувствительный к контексту. |