ВСЕ О WAP&WML

TanaT (TanaT@yes.ru)

Спецвыпуск Xakep, номер #020, стр. 020-018-3


Теперь посмотрим, из каких же основных частей состоит любой корректный WML-код. А состоит он из заголовка и карт, объединенных в колоды. С заголовком все достаточно просто: это три стандартные строчки, содержащие информацию о номере версии XML, идентификаторе SGML-описания языка WML и веб-адресе DTD-определения WML-документа. Чаще всего кодеры пользуются WML-редакторами, которые вставляют эти данные в страницу автоматически. Так что запоминать это не обязательно. Для полноты картины надо отметить, что заголовок обычно имеет следующий вид:

<!-- Это номер версии XML -->

<?xml version="1.0"?>

<!-- Идентификатор SGML-описания языка WML -->

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

<!-- Веб-адрес DTD-определения WML-документа -->

"http://www.wapforum.org/DTD/wml_1.1.xml">

Кстати, комментарии в WML вводятся точно так же, как и в HTML: между двумя тегами <!-- и -->. Также обрати внимание на адрес: http://www.wapforum.org/DTD/wml_1.1.xml. Надеюсь, теперь ты понимаешь всю роль компании WAP Forum в организации связи между Интернетом и мобильными средствами связи :))) ?

После заголовка следуют карты, объединенные в колоды (или деки). Это уже абсолютно новые понятия, появившиеся в WML и отличающие его и от HTML, и от XML. Карта это совокупность страничек, а колода это совокупность карт, загружаемых за один раз. Зачем они нужны? Дело в том, что экран микробраузера достаточно мал, поэтому грузить страницы раздельно друг от друга просто невыгодно, так как на это будет тратиться много времени. А загружать страницы "пачками" намного быстрее. Такими пачками и являются карты. Далее поднимаемся еще на один уровень выше: карты тоже легче грузить не по одной, а колодами. В этих двух понятиях и состоит основное отличие WML-документов. Для каждого микробраузера (мобильного телефона) существует свой собственный максимальный размер колоды. Обычно он не превышает 8 кб (помни, ведь маленькие "мозги" твоего мобильника - это не CPU от Intel с КЭШами трех уровней). Все карты должны отделяться друг от друга заголовками, включающими в себя идентификатор карты и ее имя. Идентификатор служит лишь для вызова этой карты, например, из другой карты. Вот пример такого заголовка:

<!-- Пример заголовка карты -->

<card id="CardID" title="MyCard">

<!-- Здесь идет код -->

</card>

Как видишь, карта является контейнером, в котором размещаются элементы. Идентификатор карты и ее имя (в нашем примере это CardID и MyCard соответственно) являются атрибутами контейнера. Тэги форматирования практически совпадают с аналогичными из HTML (и по синтаксису, и по назначению). Например, выравнивание абзацев производится так:

Назад на стр. 020-018-2  Содержание  Вперед на стр. 020-018-4