Данный код может иметь следующее представление на экране мобильного телефона:
---------------------------------- ------- Поля -------- О курсе Автор: Содержание: ----------------------------------
Элемент <do>
Теги - <do> ... </do>
На первой карте имеется элемент <do>, который определяет запускаемое событие. Использование атрибута type="accept" данного элемента приводит к выводу в левом нижнем углу экрана метки "Выбор".
Элементы задач:
Начальный тег Назначение WML
<go>
Переход к новой карте
1.1
<noop>
Говорит, что ничего не надо делать. Используется для переопределения элементов уровня формы
1.1
<prev>
Переход к предыдущей карте
1.1
<refresh>
Обновляет некоторые определенные переменные карты
1.1
Карты
Теги - <card> ...... </card>
Карты всегда выводятся по одной. Колода WML из примера выше содержит две карты - одну для ввода пользователя и одну для вывода результатов.
Колода
Теги - <wml> ...... </wml>
Колода является документом WML и помещается между тегами <wml>.
Компиляция кода WML
Для тестирования и компилирования кода WML можно применять бесплатный пакет Nokia Mobile Internet Toolkit (см..http://forum.nokia.com/). Данное программное обеспечение полностью поддерживает спецификацию WAP 2.0, включая XHTML и CSS.
Если код WML размещается на сервере IIS или Apache, то его не требуется компилировать, т.к. эту работу выполнит шлюз WAP. В этом случае нужно только поместить на сервер исходный код WML.
Все права
Определение переменной с помощью элемента ввода
Переменные можно задавать также с помощью элемента ввода (например, input, select, option и т.д.).
В данном примере создается переменная с именем course:
<card id="first"> <select name="course"> <option value="c">Курс по C </option> <option value="c++">Курс по C++ </option> <option value="c#">Курс по C# </option> <option value="java">Курс по Java </option> </select> </card>
Созданная в примере выше переменная используется следующим образом:
При выполнении задачи (такой, как go, prev и refresh) элемент setvar можно использовать для задания переменной с определенным значением. Атрибуты name и value являются обязательными для этого элемента.
В данном примере создается переменная с именем a и значением 100:
<setvar name="a" value="100"/>
Переменная
Карта second выводит значение переменной $(course) с карты first- значения переменных сохраняются при перемещении между картами.
Переменные
Переменные сохраняют необходимые данные, когда пользователь перемещается в колоде с карты на карту. Необходимо помнить, что в именах переменных WML учитывается регистр символов.
Поля ввода
На карте WML можно определить поля для ввода пользователем данных, как показано в следующем примере:
Данный код может иметь следующее представление на экране мобильного телефона:
----------------------- ----- Поля ---------- Фамилия: Имя : Отчество : Возраст : ----------------------
Пример WML
В данном примере показано создание колоды WML с двумя картами: одной для ввода пользователя и одной - для вывода результатов.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="first" title="Курс"> <do type="accept" label="Выбор"> <go href="#second"/> </do> <p> <select name="course"> <option value="c">Курс по C </option> <option value="c++">Курс по C++ </option> <option value="c#">Курс по C# </option> <option value="java">Курс по Java </option> </select> </p> </card> <card id="second" title="Выбор"> <p> Курс: $(course) </p> </card> </wml>
Данный код может иметь следующий вывод на экране мобильного телефона (первая карта):
---------------------------- ----- Курс ---------- Курс по C Курс по C++ Курс по C# Курс по Java Выбор -----------------------------
Вторая карта может выглядеть следующим образом:
-------------------------- ----- Выбор ---------- Курс: C++ ---------------------------
Пролог
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
Первые строки документа WML называются прологом. Пролог указывает, что это документ XML, затем определяет версию XML и используемый DTD.
Проверка кода WML
Для проверки правильности кода WML можно использовать синтаксический анализатор XML компании Microsoft.
когда пользователь нажимает на метку
Элемент <go> срабатывает, когда пользователь нажимает на метку "Выбор". Атрибут href="#second" данного элемента приводит к выводу на экран карты second.
Таймер
На карте WML можно использовать функцию таймера WML. Единица измерения времени в таймере равна 1/10 секунды.
Noop является сокращением "no operation" - "нет операции". Таким образом, данная задача указывает, что делать ничего не надо, и используется, например, для переопределения элементов навигации между картами колоды.
Когда пользователь нажимает на экране слово/фразу, задача активизируется - для этого применяется тег <do>:
В данном примере используется тег <do>, чтобы создать на карте ссылку "Возврат". Когда пользователь нажимает ссылку "Возврат", на экране должна была бы появиться предыдущая страница, но тег <noop> отменяет эту операцию. Таким образом, когда пользователь нажмет ссылку "Возврат", ничего не произойдет.
Задача Prev
Данная задача предписывает возврат к предыдущей карте.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card> <p> <anchor> Назад <prev/> </anchor> </p> </card> </wml>
Задача Refresh
Данная задача обновляет некоторые определенные переменные карты. При этом, если какая-либо из переменных выводится на экране, то экран будет обновлен. Следующий пример использует тег <anchor> для создания на карте ссылки "Обновить страницу". Когда пользователь нажмет эту ссылку, страница будет перерисована и для переменной a будет задано значение 15:
В приведенном примере используется тег <anchor> для создания на карте ссылки "Обновить". Когда пользователь нажмет эту ссылку, страница будет перерисована и для переменной a будет задано значение 15.
Задачи WML
Задача определяет действие, которое выполняется при наступлении события - например, входа на карту или нажатия ссылки.