WAP - Sintassi WML

Il livello più alto nell'architettura WAP è costituito da WAE (Wireless Application Environment), che consiste nel linguaggio di scripting WML e WML.

Il linguaggio di scripting WML viene utilizzato per progettare applicazioni inviate tramite dispositivi wireless come i telefoni cellulari. Questo linguaggio si prende cura del piccolo schermo e della bassa larghezza di banda di trasmissione. WML è un'applicazione di XML, che è definita in una definizione del tipo di documento.

Le pagine WML sono chiamate mazzi. Sono costruiti come un insieme di carte, collegate tra loro da collegamenti. Quando si accede a una pagina WML da un telefono cellulare, tutte le carte nella pagina vengono scaricate dal server WAP sul telefono cellulare che mostra il contenuto.

I comandi e le sintassi WML vengono utilizzati per mostrare il contenuto e per navigare tra le schede. Gli sviluppatori possono utilizzare questi comandi per dichiarare variabili, formattare il testo e mostrare immagini sul telefono cellulare.

Struttura del programma WAP

Un programma WML è generalmente diviso in due parti: il file document prolog e il body. Considera il codice seguente:

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

   ...
   </card>
   ...more cards...
</wml>

La prima riga di questo testo dice che questo è un documento XML e la versione è 1.0. La seconda riga seleziona il tipo di documento e fornisce l'URL del filedocument type definition (DTD). Questa DTD fornisce la definizione XML completa di WML. Il DTD a cui si fa riferimento è definito in WAP 1.1, ma questa intestazione cambia con le versioni del WML. L'intestazione deve essere copiata esattamente in modo che i kit di strumenti generino automaticamente questo prologo.

Il corpo è racchiuso all'interno di una coppia di tag <wml> ... </wml> come mostrato sopra. Il corpo di un documento WML può essere costituito da uno o più dei seguenti:

  • Deck

  • Card

  • Contenuto da mostrare

  • Istruzioni di navigazione

Comandi WML

I comandi utilizzati in WML sono riassunti come segue:

Formattazione

Comando Descrizione
<p> Paragrafo
<b> Grassetto
<big> Grande
<em> Enfatizzato
<I> Corsivo
<small> Piccolo
<strong> Fortemente enfatizzato
<u> Sottolineato
<br> Interruzione di linea

Inserimento di immagini

<img src="image-path/image - name" alt="Picture not available" />

Utilizzo di tabelle

Comando Descrizione
<table> Definizione di una tabella
<tr> Definire una riga
<td> Definizione di una colonna
<Testa> Intestazione della tabella

Variabili

Dichiarato come -

<setvar name="x" value="xyz"/>

Usato come -

$ identifier or
$ (identifier) or
$ (Identifier; conversion)

Forme

Comando Descrizione
<select> Definisci elenco singolo o multiplo
<input> Input dell'utente
<option> Definisce un'opzione in un elenco selezionabile
<fieldset> Definisce una serie di campi di input
<optgroup> Definisce un gruppo di opzioni in un elenco selezionabile

Elementi del compito

Comando Descrizione
<go> Rappresenta l'azione del passaggio a una nuova carta
<noop> Dice che non si dovrebbe fare nulla
<prev> Rappresenta l'azione di tornare alla carta precedente
<refresh> Aggiorna alcune variabili della scheda specificate.

Eventi

I vari eventi sono i seguenti:

Comando Descrizione
<do> Definisce un gestore di eventi do
<unvent> Definisce un gestore di eventi onevent
<postfield> Definisce un gestore di eventi postfield
<ontimer> Definisce un gestore di eventi ontimer
<onenterforward> Definisce un gestore onenterforward
<onenterbackward> Definisce un gestore onenterbackward
<onpick> Definisce un gestore di eventi onpick

Programma WML di esempio

Conserva il seguente codice WML in info.wml sul tuo server. Se il tuo server è abilitato per WAP, puoi accedere a questa pagina utilizzando qualsiasi dispositivo WAP.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<!-- WML prolog.declaration of file type and version>

<wml>
<!-- Declaration of the WML deck>
<card id="info" newcontext="true">
<!-- declaration of a card in deck>
<p align="center"><b>Information Center</b></p>
<!--paragraph declaration to display heading>
<p>
<!--paragraph declaration to display links>
<a href="Movie.wml">1. Movies info.</a>
<a href="Weather.wml">2. Weather Info.</a>
<!--declaration of links for weather and movies>
</p>
</card>
<!-- card end>
</wml>
<!-- program end>