На карте 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 title="Поля"> <p> <fieldset title="О курсе"> Author: <input name="Автор" type="text"/><br/> Content: <input name="Содержание" type="text"/> </fieldset> </p> </card> </wml>
---------------------------------- ------- Поля -------- О курсе Автор: Содержание: ----------------------------------
На первой карте имеется элемент <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>
Созданная в примере выше переменная используется следующим образом:
<card id="second"> <p>Ваш выбор: $(course)</p> </card>
Определение переменной с помощью команды Setvar
При выполнении задачи (такой, как go, prev и refresh) элемент setvar можно использовать для задания переменной с определенным значением. Атрибуты name и value являются обязательными для этого элемента.
В данном примере создается переменная с именем a и значением 100:
<setvar name="a" value="100"/>
Переменная
Карта second выводит значение переменной $(course) с карты first- значения переменных сохраняются при перемещении между картами.
Переменные
Переменные сохраняют необходимые данные, когда пользователь перемещается в колоде с карты на карту. Необходимо помнить, что в именах переменных 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 title="Поля"> <p> Surname: <input name="Фамилия" size="10"/><br/> Name: <input name="Имя" size="10" /><br/> Second name: <input name="Отчество" size="10"/><br/> Age: <input name="Возраст" size="10" format="*N"/> </p> </card> </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 секунды.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card ontimer="next.wml"> <timer value="100"/> <p>Заголовок</p> </card> </wml>
Данный пример выводит заголовок в течение 10 секунд, а затем происходит переход к файлу "next.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 title="Выбор"> <p> <select> <option value="c">Курс по C </option> <option value="c++">Курс по C++</option> <option value="java">Курс по Java </option> </select> </p> </card> </wml>
Данный код может иметь следующее представление на экране мобильного телефона:
---------------------------- --- Выбор--- Курс по C Курс по C++ Курс по Java -----------------------------
В следующем примере показан список выбора, в котором пользователь может отметить более одной позиции:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="Выбор2"> <p> <select multiple="true"> <option value="c">Курс по C </option> <option value="c++">Курс по C++ </option> <option value="java">Курс по Java </option> </select> </p> </card> </wml>
Данный код может иметь следующее представление на экране мобильного телефона:
-------------------------- --- Выбор2--- Курс по C Курс по C++ Курс по Java ---------------------------
Задача Go
Данная задача предписывает переход к новой карте.
<?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> Вперед <go href="next.wml"/> </anchor> </p> </card> </wml>
Задача Noop
Noop является сокращением "no operation" - "нет операции". Таким образом, данная задача указывает, что делать ничего не надо, и используется, например, для переопределения элементов навигации между картами колоды.
Когда пользователь нажимает на экране слово/фразу, задача активизируется - для этого применяется тег <do>:
<?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> <do name="back" type="prev" label="Возврат"> <noop/> </do> </p> <p> Возврата нет </p> </card> </wml>
В данном примере используется тег <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:
<?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> Обновить <go href="first.wml"/> <refresh> <setvar name="a" value="15"/> </refresh> </anchor> </p> </card> </wml>
В приведенном примере используется тег <anchor> для создания на карте ссылки "Обновить". Когда пользователь нажмет эту ссылку, страница будет перерисована и для переменной a будет задано значение 15.
Задачи WML
Задача определяет действие, которое выполняется при наступлении события - например, входа на карту или нажатия ссылки.