Większość znaczników WML została zaczerpnięta z języka XML. Obeznani w HTML`u nie powinni mieć problemów z przyswojeniem wml`a, choć zaznaczam, że pisząc ten kurs myślałem także o osobach słabo orientujących się w tym języku. WML jest o wiele uboższy niż HTML, wprowadzono także kilka znaczących zmian, jak konieczność zamykania wszystkich znaczników, czy inna budowa znaczników pustych. Nowością są także "zadania" i "zdarzenia", które na pierwszy rzut oka mogą się wydać trudne, jednak w dalszej części kursu postaram się udowodnić, że tak nie jest. Pełną specyfikację języka WML w formacie pdf możecie zassać z FTP Netmagii, lub bezpośrednio ze strony WAP Forum; www.wapforum.org

Składnia WML Dla początkujących webmasterów na pierwszy rzut oka ten artykuł może się wydać skomplikowany, jednak gwarantuję, że przy pierwszym przykładzie wszystko się rozjaśni. Wiem, że w niektórych kursach wml autorzy rozpoczynają od przykładu, jednak ja postanowiłem się wyłamać :-)
Znaczniki lub tagi są ciągiem znaków objętymi ostrymi nawiasami. W języku WML jest ich 34. Wyróżniamy znaczniki obejmujące jakąś treść;

     <tag>zawartość</tag>

lub znaczniki puste;

     <tag/>

Jeżeli znacznik posiada jakiś dodatkowy atrybut, to piszemy jego nazwę małą literą, a wartość obejmujemy cudzysłowem- to ostatnie jest zalecane w HTML`u, w WML wartości MUSIMY zamknąć w cudzysłów, np.:

     <tag atrybut="wartość"> zawartość </tag>

lub:

     <tag atrybut="wartość"/>

W kodzie źródłowym możemy umieścić jakąś treść, co do której nie chcemy aby była interpretowana przez przeglądarkę, np. wyświetlana na ekraniku telefonu. W tym celu stosujemy komentarze, które mają następującą składnię;

     <!-- komentarz -->

Na początku każdego dokumentu wml ( talii ), musimy umieścić prolog, który jest deklaracją XML i deklaracją typu dokumentu. Prolog wygląda następująco;

<?xml version="1.0"?>
!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
			"http://www.wapforum.org/DTD/wml_1.1.xml">

Pod prologiem znajduje się podstawowy znacznik wml, otwierający dokument;

<wml> </wml>

Zaraz za znacznikiem <wml> umieszczamy element;

<head> </head> W tej części mogą się znaleźć (choć można go pozostawić pustego) podstawowe informacje o dokumencie, możemy w nim umieścić dwa elementy META i ACCESS. Sam znacznik head nie posiada bowiem własnych atrybutów. Pierwszy z nich podaje dodatkowe informacje dotyczące dokumentu i posiada kilka atrybutów; name, http-equiv, forua, content, i scheme. Najważszejsze z nich zdają się być http-equiv i content.

     <meta http-equiv="content-type" content="text/vnd.wap.wml" />

Element ten umożliwia wyświetlanie dokumentu, pomimo iż jest on umieszczony na serwerze "nie obsługującym" WAP`a. Definiuje on bowiem typ nagłówka HTTP.

     <meta content="charset" user-agent="character-set=rodzaj_kodowania" />

Dzięki temu atrybutowi możemy określić inny standard kodowania niż domyślny, czyli Unicode. Znacznik ACCESS, jak sama nazwa wskazuje pozwala na ograniczenie dostępu do danego zestawu kart. Posiada on dwa atrybuty; domain oraz path.

     <access domain="netmagia.pl" path="/webmaster">

Powyższa definicja powoduje, że na nasz dokument będzie można wejść tylko przechodząc z kart umieszczonych na serwerze Netmagii i umieszczonych w katalogu webmaster. To by było chyba wszystko a propos elementu HEAD dokumentu. Dodam tylko, dla tych którzy jeszcze nie wiedzą, że ten fragment nie jest pokazywane na ekranie przez przeglądarkę.
Następnym znacznikiem wewnątrz <wml> </wml> jest <template> </template> czyli szablon. Służy on do definiowania funkcji klawiszy nawigacyjnych telefonu dla wszystkich kart w danej talii, jednak omówię go dokładniej w dalszej części przy okazji omawiania nawigacji.

<card id="first"> </card> Po części template, wreszcie przechodzimy do opisu kart w talii. Jak już wspominałem w jednej talii (dokumencie wml), może się znajdować jedna, lub cała kolekcja kart. Jedną kartę otaczają znaczniki <card> i </card> przy czym jeżeli w dokumencie są przynajmniej dwie karty, to obowiązkowym atrybutem tego znacznika jest id, np.:

<card id="pierwsza">
   <!-- treść pierwszej karty -->
</card>
<card id="druga">
   <!-- treść drugiej karty -->
</card>
    

ID to nic innego jak unikatowy identyfikator każdej karty. Identyfikator także ułatwia nawigację w zasięgu jednej talii. Innym przydatnym atrybutem, choć nie oligatoryjnym znacznika card, jest title;

     <card title="Tytul">
     </card>


Title to oczywiście tytuł strony. W HTML`u stosujemy znacznik <TITLE> </TITLE> o bardzo podobnej funkcji. Jest on po prostu w jakiś sposub wyróżniany w przeglądarce. W HTML`owej przeglądarce najczęściej jest on pokazywany na pasku tytułowym przeglądarki. W telefonie komórkowym tytuł pojawia się na górze ekraniku. Pewnie zauważyłeś, że doszliśmy wreszcie do pierwszego elementu, który jest wyświetlany w przeglądarce.

Przykład W końcu doszliśmy do obiecanego przykładu. Proponuję uruchomić Nokia WAP Toolkit. Następnie z menu "File" wybierz "New"- "WML Deck..." Powinien się pojawić nowy dokument wml ze standartowymi znacznikami programu. Możesz albo wymazać wszystko i wpisać kod zamieszczony na dole, albo poprawić kod do tego poniżej. Proponuję to pierwsze rozwiązanie, gdyż wtedy, podczas przepisywania kodu utrwalą Ci się wszystkie znaczniki.

<?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="Debiut"> 
      <p><!-- Tutaj rozpoczyna sie tresc karty -->
      Hello World!!!
      </p>
	  </card>
   </wml>
    Po wpisaniu kodu przyciśnij przycisk "Compile"- zapisz stronę do pliku gdzieś na dysku, a następnie naciśnij przycisk "Show" aby zobaczyć efekt Twojej pracy w emulatorze Noki. Jeżeli pojawiają Ci się jakieś komunikaty o błędach, jeszcze raz sprawdź cały kod z tym powyżej i po poprawkach wszystko powinno być w porządku.
Pewnie zauważyłeś, że pojawił się nowy znacznik, o którym jeszcze nie pisałem; <p> </p>
Jest to znacznik określający początek i koniec akapitu, ale o tym już w następnej części dotyczącej formatowania tekstu...

 


WSTĘP | WPROWADZENIE | NARZĘDZIA | STRUKTRA DOKUMENTU | FORMATOWANIE TEKSTU | TABELE I OBRAZY | NAWIGACJA | ZADANIA I ZDARZENIA | FORMULARZE | PHP | LINKI | AKTUALIZACJE

Copyright (c) Tomasz Libera "Liberator" 2000- 2002 All Rights Reserved
Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego dokumentu, bez prawa wprowadzania zmian.
Kontakt: liberator@hot.pl, tel. 503-734-117, Gadu-Gadu: 868607