inicio GeNeura cursos

Variables

Una de las grandes diferencias entre el wml y el html es que con el wml puedes definir variables en las cartas, asignarles valores y presentarlos en la pantalla, incluso utilizar las variables en expresiones (programa.pl?f=$(mivar), etc.)

La mayor ventaja de todo esto es que puedes conservar información en el paso de una carta a otra y así poder dividir el contenido en varios pasos (que en pantallas tan enanas, se agradece).

Las variables son cadenas de texto (que distingue mayúsculas y minúsculas, como siempre en wml) a la que se le asigna un valor (secuencia de caracteres) o ningún valor.

El nombre de la variable puede empezar por el guión bajo: "_" o una letra US-ASCII, seguida de una o más letras US-ASCII, números o el guión bajo. Ejemplos de nombres de variables válidos: NOMBRE_Usuario _mivar1 X700II

Creación e inicialización de variables

Hay varias formas posibles:

Referenciar variables

Podemos incluir el valor de una variable dentro de un documento wml, tanto para que aparezca en la pantalla como para que se envíe a un programa.

Hay tres formas de referenciar la variable:

Cómo el wml se reserva el uso del signo del dólar, para que queramos que aparezca en la pantalla este signo, hay que escribirlo dos veces ($$). Por ejemplo tenemos esta variable: $moneda y queremos presentar su valor en la pantalla, así: $15, escribiremos:
Saldo actual: $$$moneda

Conversión al formato escape

En su día se acordó una sustitución de algunos caracteres propios de los URLs para que el servidor no los confundiera (reglas del formato escape, RFC2396). Estas reglas nos facilitan un mecanismo para poder incluir en una línea URL, esos caracteres. Aunque estas reglas fueron creadas para referenciar URLs, se pueden aplicar las mismas reglas para referenciar variables.

En este ejemplo se convierte el texto en formato escape

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

<wml>
  
  <card id="carta1" title="conversión">
    <p>
      Teclea un texto con caracteres especiales:
    </p>
    
    <p><input type="text" name="texto"/></p>
    <do type="accept">
      <go href="#carta2"/>
    </do>
  </card>
  
  <card id="carta2" title="conversion">
    <p>
      texto normal: $(texto)
      <br/>
      texto en formato escape: $(texto:e)
    </p>
  </card>

</wml>
    

Cuando se introduce el valor de una variable dentro de una baraja, se puede definir el formato (escape, unescape o no escape) así:

$(var:e)
$(var:E)
$(var:escape)
traduce al formato escape
$(var:u)
$(var:U)
$(var:unesc)
traduce del formato escape a texto US-ASCII
$(var:n)
$(var:N)
$(var:noesc)
hacen que el valor de la variable no se traduzca al formato escape

El WML siempre aplica el formato escape cuando se trata de atributos que trabajan con URLs.Por eso muchas veces se puede asumir que el WML convertirá al formato escape cuando lo tiene que hacer. De todas formas, conviene incluirlo si tenemos mínimas dudas de lo que ocurrirá.

Aquí tienes una lista de los caracteres de escape (todos empieza por %):

carácterformato escape carácterformato escape carácterformato escape
;%3b /%2f ?%3f
:%3a @%40 &%26
=%3d +%2b $%24
,%2c espacio%20 {%7b
}%7d |%7c \%55c
^%5e [%5b ]%5d
`%27 <%3c >%3e
#%23