Деки
Дека определяется элементом wml
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> <wml> <card> <p>Hello World!</p> </card> </wml>
Элемент:
Do
Атрибуты:
type - указывает микроброузеру назначение кнопки. В WML определяется девять типов, но в подавляющем большинстве случаев используются "accept" и "options".
label - значение этого атрибута используется для замены названия кнопки. Это помогает кастомизировать приложения. Количество символов на кнопке ограничено возможностями устройства.
name - установка этого атрибута дает возможность разработчику воспользоваться преимуществами иерархической структуры WML-документа. Элемент "do" с именем "one" унаследует свойства определенные элементу с таким же именем в элементе "template" этой деки.
optional - указывает микроброузеру на необязательность показа этой кнопки в случае если атрибуту присвоено значение true.
Элемент
Go
Атрибуты:
href - URL.
sendreferer - этот атрибут необходим серверу в списках контроля доступа. Его значение указывает броузеру на то, что необходимо отослать на сервер URL минимально возможной длины.
method - может принимать значение либо "post" либо "get". Значение аналогично HTML.
accept-charset - указывает кодировку, в которой микроброузер должен посылать ссылку.
Небольшой пример простейшей навигации.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> <wml> <card id="Start"> <do type="accept"> <go href="#nextCard"/> </do> <p>Hello World!</p> </card> <card id="nextCard"> <do type="options"> <prev/> </do> <p>Next Card!</p> </card> </wml>
Элемент
Setvar
Атрибуты:
name - имя, присваемое переменной. Переменная так же может выполнять эту функцию, например:
<setvar name=$bogus value=$bear>.
value - значение, присваемое переменной.
Элемент
Postfield
Атрибут:
name имя, присваемое переменной. Переменная так же может выполнять эту функцию, например:
<postfield name=$bogus value=$bear>.
value - значение, присваемое переменной.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> <wml> <card id="Start" label="Bob's CGI"> <do type="accept"> <setvar name="lastExecuted" value="bob.cgi"/> <go href="bob.cgi" method="post"> <postfield name="one" value="one one"/> <!-- the server should be able to tell that there are two values for the key one. --> <postfield name="one" value="one"/> <postfield name="two" value="two two"/> </do> <p>Hello World!</p> </card> </wml>
Элемент
Anchor
Атрибуты:
title - имя элемента. Микроброузер может воспользоваться этим атрибутом по своему усмотрению. При перемещении курсора на анкор, микроброузер может вывести его имя в софт-кнопке.
Элемент
A
Атрибут:
href - URL на который ссылается анкор. У этого элемента нет дополнительных атрибутов позволяющих указать статус ссылки или ее метод. Если необходимы эти опции можно воспользоваться элементом "anchor" с внедренным в него элементом "go":
<anchor> click me <go href="#clickedMe"/> </anchor> <a href="#clickedMe">click me</a>
Элемент
Onevent
Атрибуты:
type - Тип события, которое будет обрабатываться
Существует четыре типа событий:
onenterbackward
Сработает при выборе элемента "prev"
onenterforward
Сработает при вызове карты
onpick
Сработает при выборе опции в списке элемента
"select"
ontimer
Сработает по истечении времени у элемента
"timer".
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> <wml> <card id="start"> <do type="accept"> <go href="two"/> </do> <p>Choose Accept.</p> </card> <card id="two"> <do type="accept"> <go href="three"/> </do> <onevent type="onenterbackward"> <prev/> </onevent> <p>Choose Accept</p> </card> <card id="three"> <do type="accept"> <prev/> </do> <p>Choose Accept.</p> </card> </wml>
Элемент
Access
Атрибуты:
domain - имя домена для запрета доступа. Микроброузер будет просматривать и сравнивать со значением этого атрибута все имена доменов встречающиеся в документе. Так если "<access domain="motorola.com"/>" броузер сможет зайти на "http://www.motorola.com/", но не сможет зайти на "http://www.rola.com/" или на "http://www.motorola.net/".
path - путь для сравнения. Работает примерно так же как и атрибут домен. Так если "<access path="/internal"/>" путь "/internal/wml" пройдет проверку, в то время как "/internal-wml" - нет.
Элемент "access" с примерно такими атрибутами: "<access domain="motorola.com" path="/spin"/>" разрешит ссылку на деку только со следующих адресов:
http://www.motorola.com/spin/getuid.cgi
https://www.motorola.com/spin/index.wml
http://www.motorola.com/spin/madk/create_index.cgi?x=123&y=234
А с этих запретит:
http://www.mot.com/spin/getuid.cgi
http://www.motorola.com/internal/spin/getuid.cgi
Элемент
Card
События:
onenterbackward
Сработает при выборе элемента "prev"
onenterforward
Сработает при вызове карты
ontimer
Сработает по истечении времени у элемента
"timer".
Атрибуты:
id - атрибут, позволяющий сослаться на эту карточку из других элементов. Ссылка на карточку состоит из символа "#" и значения ее атрибута id (#nextcard).
title - значение этого атрибута может быть использовано для озаглавливания экрана, в котором отображается карточка, а также может появится в списке ранее посещенных страниц, а также в любом другом месте по усмотрению микроброузера.
newcontext - может быть использован для того, чтобы сбросить состояние деки. Этот атрибут может иметь значение "true" или "false".
ordered - сообщает микроброузеру принадлежит ли эта карта к упорядоченному списку карт или нет. Разработчики могут использовать этот атрибут по своему усмотрению и разрабатывать либо деку с последовательным просмотром карточек, либо состоящую из одной большой карточки.
Немного более сложная дека в качестве примера:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <access domain="motorola.com" path="/spin"/> </head> <template> <do type="accept" name="accept1" label="OK"> <go href="#accept"/> </do> </template> <card id="start" title="Start Here"> <p> Start Here. </p> </card> <card id="accept" title="Okay Card"> <do type="accept" name="accept1" label="Okay"> <go href="#accept2"/> </do> <p> Card Accept </p> </card> <card id="accept2" title="OK Card" > <do type="accept" > <go href="#start" /> </do> <p> Card Accept2 </p> </card> </wml>
Управляющими элементами в WML являются элементы "select" и "input". У каждого есть несколько подэлементов, а также механизм группировки, для приведения нескольких относящихся друг к другу элемементов ввода к одной логике. Также тут присутствует атрибут tabindex. этот атрибут определяет последовательность в которой происходит передвижение по элементам.
Элемент
Select
Атрибуты
multiple - по умолчанию равно "off". При включении этого атрибута пользователь может выбрать несколько элементов из предложенного списка.
name - обозначает имя переменной в которой будет храниться значение введенной в этом поле информации.
value - значение элемента по умолчанию.
iname - имя выбранного элемента(ов) списка. Значение "0" означает, что в списке нет элементов. Нумерация элементов списка начинается с "1" и постепенно увеличивается.
ivalue - имя переменной, в которой содержится значение(я) выбранных элементов списка. Несколько значений можно ввести, разделяя их ";", например (1;2) . Нельзя вводить пустое значение переменной. Так значение (1;;2) - неправильно.
title - заголовок. Указывается для того, что бы микроброузер определил тип навигационного элемента.
tabindex - очередь следования этого элемента относительно других. Реализация зависит от броузера.
Элемент:
Option
Атрибуты:
value - значение, присваемое переменной элемента select, в случае выбора этой опции
title - заголовок. В зависимости от микроброузера может не выводиться на экран.
onpick - URL на который пойдет микроброузер, в случае выбора этой опции.
Элемент:
Optgroup
Атрибуты:
title - заголовок. В зависимости от микроброузера может не выводиться на экран.
<?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> Bogus: <select name="bogus"> <optgroup title="one"> <option value="uno">uno</option> <option value="eins">eins</option> </optgroup> <optgroup title="two"> <option value="dos">dos</option> <option value="zwei">zwei</option> </optgroup> </select> </p> </card> </wml> <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="options" label="Back"> <prev/> </do> </template> <card id="lists"> <p> <select title="Pick Lists"> <option onpick="#single">Single</option> <option onpick="#multiple">Multiple</option> </select> </p> </card> <card id="single"> <onevent type="onenterbackward"> <prev/> </onevent> <do type="accept"> <go href="#display_fav"/> </do> <p> Pick your fav Stooge: <select name="fav" title="Stooges"> <option value="Moe">Moe</option> <option value="Shemp">Shemp</option> <option value="Larry">Larry</option> <option value="Curley">Curley</option> <option value="Curley Joe">Curley Joe</option> </select> </p> </card> <card id="multiple"> <onevent type="onenterbackward"> <prev/> </onevent> <do type="accept"> <go href="#display_fav"/> </do> <p> Pick your fav Marx Bro. <select multiple="true" title="Marx Bros" name="fav" > <option value="Groucho">Groucho</option> <option value="Harpo">Harpo</option> <option value="Chico">Chico</option> <option value="Zeppo">Zeppo</option> </select> </p> </card> <card id="display_fav"> <p> Your fav was $fav. </p> </card> </wml>
Элемент:
Input
Атрибуты:
name - то же, что и в элементе select. обозначает имя переменной в которой будет храниться значение введенной в этом поле информации.
value - значение поля по-умолчанию.
type - имеет значение либо "text" либо "password". В зависимости от микроброузера поле типа "password" может отображаться на дисплее видимым текстом.
format - маска ввода.
A - Любая буква в верхнем
регистре [A-Z]
a Любая буква в нижнем регистре и пунктуация [a-z]
N - любая цифра [0-9]
X - любой символ в верхнем регистре [A-Z,0-9]
x - любой символ в нижнем регистре [a-z,0-9]
M - любой символ
m - любой символ
*f - любое количество символов определенного
формата, например *N -любое количество цифр
nf - "n" это целое число так например "3A"
означает 3 буквы в верхнем регистре или
пунктуации.
\c - символ ввода, так например "\(3N\)\ \3N\-4N"
означает номер телефона с кодом местности в
американском формате.
emptytok - разрешает пустой ввод
size - ширина поля ввода. Реализация зависит от броузера.
Maxlength - определяет максимальное количество вводимых.
Title - заголовок, показывается броузером в некоторых случаях. Рекомендуется использовать атрибут title во всех элементах, которые им располагают, потому что в некоторых телефонах заполнение поля ввода реализовано в виде отдельного окошка, при этом title будет выводится в качестве напоминания, какое именно поле в настоящий момент заполняет пользователь.
Элемент:
Fieldset - Использование зависит от микроброузера.
Атрибуты:
title - Заголовок
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <template> <do type="options" label="Back"> <prev/> </do> </template> <card id="fields"> <p> Field Type: <select title="Field type"> <option onpick="#nested">Nested</option> <option onpick="#password">Password</option> </select> </p> </card> <card id="nested"> <onevent type="onenterbackward"> <prev/> </onevent> <do type="accept" label="Done"> <go href="#done"/> </do> <p> First Name: <input title="First" name="fname"/> Last Name: <input title="Last" name="lname"/> Gender: <select title="Gender" name="gender"> <option value="male">Male</option> <option value="female">Female</option> </select> </p> </card> <card id="done"> <p> $fname $lname is a $gender. </p> </card> <card id="password"> <onevent type="onenterbackward"> <prev/> </onevent> <do type="accept" label="Done"> <go href="#passwd_done"/> </do> <p> Input a password:<br/> Min 3 chars. <input title="Password" name="passwd" type="password" format="*m"/> </p> </card> <card id="passwd_done"> <p> Password was $passwd. </p> </card> </wml>
Элемент:
timer
Атрибуты:
value - промежуток времени в десятых долях секунды.
<?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" ontimer="#next"> <timer value="100"/> <p>Wait ten seconds</p> </card> <card id="next"> <timer value="10"/> <onevent type="timer"> <go href="#first"/> </onevent> <p>Подождите минутку</p> </card> </wml>
У элемента p нет атрибутов
У элемента br нет атрибутов