Zbiory odczytywane przez telefony WAP to pliki przypominające budową dokumenty HTML. Jednak do ich tworzenia nie używa się HTML-a, lecz języka o nazwie Wireless Markup Language. Zawiera on dużo mniej elementów niż HTML, co nie znaczy, że jest bardzo prosty. W przeciwieństwie do HTML-a, opracowanego w SGML-u, WML napisano w XML-u (CHIP 11/98, s. 267). Konsekwencją jest trochę inny sposób używania znaczników. W HTML-u w niektórych elementach zawierających treść (np. definiujące akapit nie zawsze musiało się kończyć) można było opuszczać znacznik zamykający. W WML-u jest to niedopuszczalne. Inna jest też budowa znaczników pustych (nie zawierających treści). Przedostatnim znakiem zawsze jest w nich ukośnik: <br/>. Ponadto elementy oraz ich atrybuty muszą być pisane małymi literami, a wartości atrybutów zawsze powinny być ujęte w cudzysłów. Nowością, której opanowanie sprawia początkowo dużą trudność, są zdarzenia oraz zadania (patrz strona 183: Nie ma “Wstecz”).
Dokumenty WAP nie są nazywane stronami, ale taliami (deck). W pliku zawierającym talię może znajdować się wiele kart (cards), choć na ekranie przeglądarki wyświetlana jest jedna karta naraz. WML umożliwia definiowanie mechanizmów poruszania się zarówno pomiędzy kartami jednej talii, jak i różnymi taliami. Wygląda to identycznie jak w przypadku stron WWW – wybieramy odnośnik (wyróżniony fragment tekstu lub obrazek) lub naciskamy przycisk. Z punktu widzenia nawigacji nie ma większej różnicy, czy przechodzimy właśnie do nowej talii czy poruszamy się w obrębie tej samej. Jednak jeżeli karty znajdują się w tej samej talii, wyświetlane są natychmiast. W przypadku nowej talii odpowiedni zbiór musi zostać pobrany z Internetu.
Szkielet
Struktura dokumentu WML przypomina budowę strony WWW. Oto przykład:
<?xml version="1.0"?> <!doctype wml public "-//wapforum//dtd wml 1.2//en" "http://www.wapforum.org/ddt/wml 1.2.xml"> <head></head> <wml> <card id="jeden"> <p>to jest pierwsza karta.<br/> <a href="#dwa">Tu</a> można przejść dalej.</p> </card> <card id="dwa"> <p>druga karta.</p> </card> </wml>
Na samym początku znajduje się fragment określający typ dokumentu. Zgodnie ze specyfikacją te dwie komendy muszą znaleźć się w każdym pliku WML. Dalej umieszczony jest element HEAD. W naszym przykładzie jest on pusty, ale mogą być tam elementy META oraz ACCESS. Pierwszy z nich pozwala dołączać dodatkowe informacje dotyczące dokumentu, a drugi określać, z jakich adresów można na niego przechodzić. ACCESS może zawierać atrybuty DOMAIN oraz PATH:
<head> <access domain="chip.pl" path="/konkurs"/> </head>
Wymienione instrukcje spowodują, że na dany dokument będzie można przejść wyłącznie z kart umieszczonych na serwerach *.chip.pl (www.chip.pl, bsa.chip.pl) i w katalogach zaczynających się na “konkurs” (/konkurs/, /konkurs99/).
Pomiędzy znacznikami i umieszczone są definicje poszczególnych kart. Grupowanie kart w talie ma na celu skrócenie czasu ładowania danych z Sieci. Aby zoptymalizować ten proces jeszcze bardziej, wymyślono szablon. Jest on definiowany przez element TEMPLATE, umieszczany za znacznikiem przed definicją pierwszej karty. Szablon zawiera informacje wspólne dla wszystkich kart danej talii. Jeśli chcemy, aby każda karta zaczynała się nagłówkiem, wystarczy go umieścić w szablonie:
<wml> <template> <p><b>CHIP on-line</b></p> </template> <card id="jeden"><!-- tresc --></card> <card id="dwa"><!-- tresc --></card> </wml>
Formatowanie tekstu
Karty mogą przedstawiać treść, pobierać informacje od użytkownika lub reagować na zdarzenia. Wyświetlacze urządzeń WAP mają ograniczone możliwości, więc w WML-u znajdziemy tylko niektóre elementy formatujące tekst, znane twórcom stron WWW:
– P – akapit;
– BIG – duży font;
– SMALL – mały font;
– EM – tekst ważny;
– STRONG – tekst bardzo ważny;
– B – wytłuszczenie tekstu;
– I – kursywa;
– U – podkreślenie;
– PRE – tekst preformatowany;
– BR – przejście do nowej linii.
Wszystkie elementy, z wyjątkiem ostatniego, muszą składać się ze znacznika otwierającego oraz zamykającego. Podobnie jak w HTML-u, tekst akapitu może być wyrównany do prawej strony, lewej lub wyśrodkowany. W WML-u możemy dodatkowo określić, czy zawartość akapitu ma być wyświetlana w jednej linii czy w wielu.
WML pozwala tworzyć tabele. Ich konstrukcja jest podobna jak w HTML-u. Do dyspozycji mamy elementy TABLE, TR oraz TD. Ważna różnica dotyczy liczby kolumn. W znaczniku musimy określić, ile kolumn będzie zawierała tabela. Jeśli w którymś wierszu będzie ich mniej, zostanie on uzupełniony pustymi komórkami. Jeżeli będzie ich więcej, “nadmiarowe” dane zostaną umieszczone w ostatnim polu. Poniższy kod
<table columns="2"> <tr> <td>Jeden</td> <td>Dwa</td> </tr> <tr> <td>1</td> </tr> <tr> <td>a</td> <td>b</td> <td>3</td> </tr> </table>
da następujący efekt:
Jeden | Dwa | |
1 | ||
a | b | 3 |
Decydując się na tworzenie tabeli, powinniśmy pamiętać, że bardziej skomplikowane “konstrukcje” mogą być nieczytelne na małych wyświetlaczach telefonów komórkowych.W dokumentach WAP możemy umieszczać obrazki – niestety, wyłącznie dwukolorowe ilustracje w formacie WBMP. Musimy więc zaopatrzyć się w odpowiednie narzędzie (patrz: ramka “Info”). Do osadzania obrazków w dokumentach służy taki sam element jak w HTML-u: IMG. Może też zawierać podobne atrybuty: ALT, LOCALSRC, SRC, VSPACE, HSPACE, ALIGN, HEIGHT oraz WIDTH. Pierwszy definiuje alternatywny tekst, używany w sytuacji, gdy wyświetlenie obrazka nie jest możliwe. Identyczny atrybut istnieje w HTML-u i jest często pomijany przez twórców stron WWW. O ile tam jest to grzech wybaczalny, o tyle tutaj nie można o tym zapominać. Przy tworzeniu ilustracji wykorzystywanych na stronach WAP należy też oczywiście pamiętać, by obrazki nie były zbyt duże. LOCALSRC to atrybut niewystępujący w HTML-u. Może on zawierać odwołanie (identyfikator) do obrazka będącego wewnętrznym zasobem przeglądarki. Jeśli takowy istnieje, będzie wyświetlony zamiast ilustracji określonej w atrybucie SRC. Specyfikacja WML-a nie precyzuje, jakie obrazki – najprawdopodobniej często używane ikony – mogą być dostarczane przez przeglądarkę. Pozostałe atrybuty elementu IMG mają takie samo znaczenie jak w HTML-u.

WAPForum: http://www.wapforum.org/
Nokia WAP Toolkit: http://www.forum.nokia.com/wap_developer/wapsdk.html
WinWap: http://www.slobtrot.com/
Konwertery do tworzenia plików WBMP: http://www.gingco.de/wap/ http://www.teraflops.com/wbmp/
W dziale Internet | Języki opisu strony znajduję sie specyfikacja WML-a 1.2, przeglądarka WinWap 2.3 Light oraz WapConverter 1.0 – konwerter plików WBMP.