WAP : Description du WML  
 

 

3.2 Description

Cette partie présente les différents éléments WML pour construire des cartes ou des jeux de cartes de façon simple.
Comme il l'a été décrit précédemment, l'unité de base du WML est la carte. Un ensemble de cartes constitue un jeu de cartes. Un document WML peut contenir un lot important d'informations. Dans ce cas, l'utilisateur devra naviguer dans son document pour visualiser le contenu tout entier. Néanmoins, il est préférable de séparer le document en de multiples cartes de façon à avoir une navigation moins surchargée. De même, il ne faut pas non plus surcharger le jeu de cartes avec trop de cartes car il ne faut pas oublier que l'on travaille ici avec des terminaux ayant des capacités restreintes. Mieux vaut dans ce cas, séparer l'ensemble des cartes dans différents jeux de cartes.

CARTE ET JEUX DE CARTES

Les éléments WML sont utilisés pour créer des composants à l'intérieur d'une carte WML. Pour relier les documents entre eux, ou les différentes parties à l'intérieur d'un même document, des liens vont être utilisés.

Eléments de définition de cartes:

wml : définit un jeu de cartes et encapsule toute les informations et les cartes dans le jeu de cartes.
card : indique la disposition d'une carte dans l'agent utilisateur
template : déclare un modèle pour une carte
head : contient des informations sur le fichier du jeu de carte et aussi des contrôles d'accès et des metas
access : définit le contrôle d'accès pour le jeu de carte tout entier
meta : contient des informations génériques relatives au jeu de carte

L'élément card est probablement le plus important du langage WML, il intègre un certain nombre d'attributs :
newcontext="false" : si cette option est mise à true, cela signifie que le navigateur rechargera tout le contexte de l'agent utilisateur comme les variables, l'historique...
ordered=boolean : déclare à l'agent si le contenu est organisé ou non
onenterforward="href" : se déplace à l'adresse définit dans href. Cette action a lieu quand l'utilisateur utilise une tâche go
onenterbackward="href" : se déplace à l'adresse définit dans href. Cette action a lieu quand l'utilisateur utilise une tâche prev
ontimer="href" : se déplace vers l'adresse après un certain temps
xml:lang : définit la nature du langage XML utilisé
id : permet de spécifier un identifiant unique à l'intérieur d'un jeu de carte
class : associe un élément à une classe existante

Exemple :

<wml>
<card id="carte1">
<p>
Texte de carte1
</p>
</card>
<card id="carte2">
<p>
Texte de carte2
</p>
</card>
</wml>

EVENEMENTS

Pour authoriser une navigation dynamique, des événement doivent être définis de façon à pouvoir réagir en fonction de ceux-ci.

do : définit un mécanisme général pour effectuer des actions à l'intérieur d'une carte
ontimer : définit un événement invisible qui a lieu quand le timer expire
onenterforward : définit un événement quand l'utilisateur arrive sur une carte
onenterbackward : définit un événement quand l'utilisateur arrive sur une carte stockée dans l'historique
onpick : événement prenant effet lorsque l'utilisateur sélectionne ou désélectionne un item sur laquelle un choix est possible
onevent : lie une tâche à un événement particulier
postfield : définit un champ avec nom et valeur lors de la requête d'une URI (Uniform Resource Identifier)

L'élément do sert à choisir les actions, il est donc très utilisé. Ces attributs sont :
type="type_de_tache" : définit le type d'action à effectuer
label="label" : c'est le label affiché par la touche qualifiée de "soft key" sur les terminaux (touche option)
name="name" : attribue un nom à l'élément

ACTIONS

L'élément do renvoie à des actions qui sont effectuées lorsque l'utilisateur déclenche un événement précis :

  • go : indique la navigation vers une location définie dans href
    L'attribut href est obligatoire pour l'action go, elle définit la destination
    Les autres atributs sont optionnels :
    sendreferrer=boolean : dénit si l'agent doit inclure l'URL du jeu de carte dans la requête HTTP
    method="post | get": permet de choisir la méthode d'envoie de requête
    accept-charset="chset" : permet de définir une page dee caractères autre que celle prise en compte pour le jeu de carte
    id : identifiant
    class : élément héritant d'une classe existante
     
  • prev : indique la navigation vers l'URI précédente
    L'élément prev permet de substituer l'action par défaut de page précédente de la pile historique.
    id : identifiant de prev
    class : élément héritant d'une classe existante
     
  • refresh : indique un rafraichissement de l'agent utilisateur. Dans ce cas, les changements peuvent être visibles pour l'utilisateur bien que ce soit la même page qui soit affichée.
     
  • noop : ne rien faire. Même si cet élément semble être inutile, il peut être utilisé pour surcharger une classe existante.

Exemple :

<wml>
<card id="carte1">
<do type="accept" label="Suivant">
<go href="#carte2/>
</do>
<p>
Texte de carte1
Suivant ?
</p>
</card>
<card id="carte2">
<p>
Texte de carte2
</p>
</card>
</wml>

FORMULAIRE

Les éléments de formulaires sont utiles pour manipuler les données des utiliisateurs

input : définit une entrée texte
select : permet à l'utilisateur de choisir parmi une liste de choix. WML permet la sélection d'un ou plusieurs choix
option : définit un choix option à l'intérieur d'un élément select
optgroup : permet de regrouper les éléments options de façon hiérarchique pour une meilleure visualisation
fieldset : permet de regrouper du texte et des champs

Comme pour la plupart des éléments, les constituants d'un formulaire possèdent des composantes et des attributs

Exemple :

<wml>
<card id="carte1">
<do type="accept">
<go href="#carte2/>
</do>
<p>
Votre nom : <input name="nom"/>
</p>
</card>
<card id="carte2">
<p>
Sexe :
<select iname="I" ivalue="1">
<!--L'item selectionnée a pour nom I et est affectée par défaut à la première (masculin) -->
<option value="M">Masculin</option>
<option value="F">Feminin</option>
</select>
</p>
</card>
</wml>

ANCRES, IMAGES, TIMERS

anchor : définit une connexion entre un document et un autre.
a : forme simplifiée de l'élément anchor.
img : insertion d'images.
timer : déclare un timer. L'unité de temps est en 1/10 de seconde

<wml>
<card id="carte1" ontimer="/next">
<timer name="key" value="20"/>
<p>
Bonjour....
</p>
</card>
</wml>

FORMATAGE DE TEXTE

Ceux qui connaissent le langage HTML ne seront ici pas perdu puisque les éléments sont, pour la plupart, les mêmes.

br : retour a la ligne
p : nouveau paragraphe, donc insertion d'une ligne vierge
table : crée une table de donnée
tr : ligne appartenant à une table
td : cellule à l'intérieur d'un tr

em : mise en forme du texte
strong : mise en forme de texte forte
i : italique
b : gras
u : souligné
big : police large
small : petite police

<wml>
<card id="carte1">
<p>
<em>
Voici un <u> exemple </u> de la
<br/>
<strong> <i> mise </i> </strong>
<b> page <b>
</em>
</p>
</card>
</wml>

VARIABLES

Les variables sont des propriétés très importantes pour pouvoir générer des pages WML ayant un contenu dynamique.
Toutes les variables commencent par le signe '$' et sont suivies par au moins une lettre.

L'élément setvar permet de définir ou de redéfinir des variables. Ceci peut se faire à l'intérieur des actions go, prev, ou encore refresh. Il existe une autre méthode pour déclarer des variables, celle-ci a lieu quand l'utilisateur valide les données d'un formulaire. Dans ce cas, les noms des éléments du formulaire deviennent tous des variables.

<wml>
<card id="carte1" title="Page 1" newcontext="true">
<p>
carte1 var1= $(carte1_var1) <br/>
carte2 var1= $(carte2_var1) <br/>
</p>
<do type="accept" label="Suivant">
<go href="#carte2">
<setvar name="carte1_var1" value="val_1"/>
<!-- création de la variable carte1_var1-->
</go>
</do>
</card>

<!-- dans la première carte, rien n'est affiché puisque les variables ne sont pas créées-->

<card id="carte2" title="Page 2">
<onevent type="onenterforward">
<refresh>
<setvar name="carte2_val1" value="val_2"/>
</refresh>
</onevent>
<p>
carte1 var1= $(carte1_var1) <br/>
carte2 var1= $(carte2_var1) <br/>
</p>
</card>

<!-- dans la deuxième carte, carte2_var1 est créé et le contenu est rafraichit: les deux variables sont visibles-->
</wml>

 

-= From guill.net =-