|
WML São as siglas de Wireless Markup Language e é a linguagem utilizada para criar páginas para qualquer elemento que utilize a tecnologia WAP, como alguns telefones celulares. WAP são as siglas de Wireless Application Protocol. Este tutorial de wml consta de umas lições que ajudam passo a passo a construir uma simples e completa página para telefones e outros dispositivos wap ademais de uma segunda parte na qual se encontram os tags mais habituais na linguagem WAP. Para compreender esta linguagem devemos estar bastante familiarizado com o html, já que o wml é muito similar. PRIMEIROS PASSOS As páginas wml swml são editadas com um editor normal de texto (tipo notepad de Windows). O mesmo que utilizávamos para os html servirá. Quando terminamos a página grava-se com a extensão .wml (ex.: arquivo.wml). Para publicá-la em Internet, praticamente qualquer servidor de espaço servirá. Somente temos que configurá-la no servidor (ou pedir ao administrador do sistema que o faça) os MIME types: | | MIME type: | EXTENSÃO | | Para o código WML | text/vnd.wap.wml | .wml | | Para as imagens wml (extensão wbmp): | image/vnd.wap.wbmp | .wbmp | | Para o WML Script: | text/vnd.wap.wmlscript | .wmls | | Para o WML compilado: | application/vnd.wap.wmlc | .wmlc | | Para o WML Script compilado: | application/vnd.wap.wmlscriptc | .wmlsc | Porém se usamos apenas os .wml e .wbmp somente teremos que configurar o servidor para os mesmos. E se queremos que o index.wml seja o index preestabelecido (para ter acesso direto a: http://www.wmlclub.com/wap/ e não ter que escrever: http://www.wmlclub.com/wap/index.wml) teremos que configurar o index.wml como página preestabelecida (cada servidor se configura de uma forma distinta). O primeiro que devemos incluir é o seguinte encabeçado, que define a versão da linguagem WML a ser utilizada: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> A página encontra-se dentro do tag que indica que é wml: <wml> y </wml> As páginas wml chamam-se "baralhos" e constam de uma ou mais "cartas". Aqui temos um "baralho" de uma só "carta" ou o que é o mesmo, uma página wml simples: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="cartaum"> <p>Minha primeira página wml</p> </card> </wml> E aqui um baralho de duas cartas: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="cartaum"> <br><p>Minha primeira página wml <br/> Esta é a carta um</p> </card> <card id="cartadois" title="Wapclub: Carta dois"> <p>Esta é a carta dois</p> </card> </wml> A carta dois agora tem um título. O título aparecerá na linha de título do dispositivo wap. Ao carregar a página vê-se sempre a primeira carta. Para ir da primeira carta à segunda, temos que pôr um link ou um botão: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="cartaum"> <br><p>Minha primeira página wml <br/> Esta á a carta um. <br/> <a href="#cartadois">Link à cartadois</a></p> </card> <card id="cartadois"> <br><p>Esta é a carta dois <br/> <a href="#cartaum">Link à cartaum</a></p> </card> </wml> O salto de linha em wml è <br/> e não<br>, como no html. Se o que queremos é fazer um link a uma página externa, devemos colocar o url completo: <ahref="http://www.wapclub.com/">Ir a wapclub</a> Igual que em html, os comentários escrevem-se assim: <!-- Isto é um comentário --> Notas importantes 1) TODOS os textos deverão ir incluídos dentro do tag "p", assim: <card id="um"> <p> Texto da carta um <br/> Mais texto <br/> </p> </card> 2) Deve-se evitar o uso do tag "b" uma vez que pode dar erros em alguns dispositivos que não o admitem. Para usar um tamanho de letra maior recomendamos utilizar <strong> </strong> porém sempre com muita moderação. 3) Em alguns dispositivos o tag deve ser colocado diante de cada linha, nunca ao final ou no meio, sendo portanto melhor fazer sempre assim, para evitar problemas. 4) Recomendo o uso do atributo "title" sempre, porém devemos considerar que se colocamos mais letras das que um dispositivo pode suportar não sabemos como ficará ao final, pode desde "romper" a linha até se sobrepor ao texto que colocamos em cada "carta". OS TAGS DE TEXTO Os tags de texto são iguais aos do html: <b> Negrita </b> <i> Cursiva </i> <em> Ênfase </em> <strong> Com muita ênfase </strong> <u> Sublinhado </u> <big> Letra grande </big> <small> Letra pequena </small> Não é nada recomendável utilizar os tags "b", "i" e "u" mais que o imprescindível. Ademais muitos dispositivos móveis não distinguem bem entre "strong" "b" ou "big". Tendo em consideração que habitualmente as telas são pequenas, seria melhor não utilizar a ênfase. CARACTERES ESPECIAIS Existem certos caracteres que não podem ser escritos tal qual porque o WML reserva-os para seu próprio código. Aqui encontramos uma lista desses caracteres: | SÍMBOLO: | ESCREVE-SE: | | < | < (menor que) | | > | > (maior que) | | ´ | ' (apóstrofo) | | " | "e; (aspas) | | & | & (ampersand) | | $ | $$ (dólar) | | | (espaço, também se pode marcar a tecla de espaço diretamente) | Deve-se utilizar & em vez de & na linha de argumentos dos programas perl. Por exemplo: programa.pl?nome=$(var1)&senha=$(var2) Outros caracteres: | LETRAS: | ESCREVE-SE: | LETRAS: | ESCREVE-SE | | A | A | a | a | | B | B | b | b | | C | C | c | c | | D | D | d | d | | E | E | e | e | | F | F | f | f | | G | G | g | g | | H | H | h | h | | I | I | i | i | | J | J | j | j | | K | K | k | k | | L | L | l | l | | M | M | m | m | | N | N | n | n | | O | O | o | o | | P | P | p | p | | Q | Q | q | q | | R | R | r | r | | S | S | s | s | | T | T | t | t | | U | U | u | u | | V | V | v | v | | W | W | w | w | | X | X | y | x | | Y | Y | y | y | | Z | Z | z | z | | LETRAS: | ESCREVE-SE: | LETRAS: | ESCREVE-SE: | | À | À | Û | Û | | Â | Â | Ü | Ü | | Ã | Ã | Ý | Ý | | Ä | Ä | Þ | Þ | | Å | Å | ß | ß | | Æ | Æ | à | à | | Ç | Ç | á | á | | È | È | â | â | | É | É | ã | ã | | Ê | Ê | ä | ä | | Ë | Ë | å | å | | Ì | Ì | æ | æ | | Í | Í | ç | ç | | Î | Î | è | è | | Ï | Ï | é | é | | Ð | Ð | ê | ê | | Ñ | Ñ | ë | ë | | Ò | Ò | ì | ì | | Ó | Ó | í | í | | Ô | Ô | î | î | | Õ | Õ | ï | ï | | Ö | Ö | ð | ð | | × | × | ñ | ñ | | Ø | Ø | ò | ò | | Ù | Ù | ó | ó | | Ú | Ú | ô | ô | | LETRAS: | ESCREVE-SE: | | õ | õ | | ö | ö | | ÷ | ÷ | | ø | ø | | ù | ù | | ú | ú | | û | û | | ü | ü | | ý | ý | | þ | þ | | ÿ | ÿ | | | Números: | NÚMEROS: | ESCREVE-SE: | | 0 | 0 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 7 | | 8 | 8 | | 9 | 9 | | º | º | | ¹ | ¹ | | ² | ² | | ³ | ³ | Símbolos: | SÍMBOLO: | ESCREVE-SE: | | < | < (menor que) | | > | > (maior que) | | ´ | ' (apóstrofo) | | " | "e; (aspas) | | & | & (ampersand) | | $ | $$ (dólar) | | | (espaço, também se pode marcar a tecla de espaço diretamente) | Outros: | SÍMBOLO: | ESCREVE-SE: | | ¿ | ¿ | | ? | ? | | ¡ | ¡ | | ! | ! | | ( | ( | | ) | ) | | [ | [ | | ] | ] | | « | « | | » | » | | { | { | | } | } | | > | > | | < | < | | / | / | | \ | \ | | " | " | | # | # | | % | % | | SÍMBOLO: | ESCREVE-SE: | | & | & | | ' | ' | | * | * | | + | + | | = | = | | , | , | | - | - | | . | . | | : | : | | ; | ; | | @ | @ | | ^ | ^ | | _ | _ | | ` | ` | | ~ | ~ | | | | | | | | | ¢ | ¢ | | £ | £ | | SÍMBOLO: | ESCREVE-SE: | | ¤ | ¤ | | ¥ | ¥ | | ¦ | ¦ | | § | § | | ¨ | ¨ | | © | © | | ª | ª | | ¬ | ¬ | | - | | | ® | ® | | ¯ | ¯ | | ° | ° | | ± | ± | | ´ | ´ | | µ | µ | | ¶ | ¶ | | · | · | | ¸ | ¸ | ACENTOS E CEDILHA Em wml temos que substituir os acentos agudo, grave, circunflexo, til e cedilha por estes caracteres: | á | á | | Á | Á | | é | é | | É | É | | í | í | | Í | Í | | ó | ó | | Ó | Ó | | ú | ú | | Ú | Ú | | à | à | | â | â | | Â | Â | | ê | ê | | Ê | Ê | | ô | ô | | Ô | Ô | | ã | ã | | Ã | Ã | | õ | õ | | Õ | Õ | | ç | ç | | Ç | Ç | VARIÁVEIS Uma das grandes diferenças entre o wml e o html é que com o wml pode-se definir variáveis nas cartas, designar-lhes valores e apresentá-los na tela, inclusive utilizar as variáveis em expressões (programa.pl?f=$(mivar), etc.) A maior vantagem de tudo isso é que pode-se conservar a informação ao passar de uma carta a outra e assim poder dividir o conteúdo em vários passos (que em telas tão pequenas, dá uma idéia de mais espaço). As variáveis são cadeias de texto (case sensitive-que distingue maiúsculas e minúsculas, como sempre no wml) à quais se lhe designa um valor (sequência de caracteres) ou nenhum valor. O nome da variável pode começar pelo traço baixo ou undercore: "_" ou uma letra US-ASCII, seguida de uma ou mais letras US-ASCII, números ou o traço baixo. Exemplos de nomes de variáveis válidas: NOME_Usuario _mivar1 X700II CRIAR VARIÁVEIS E DESIGNAR VALORES Há Várias formas possíveis: - Com setvar
<setvar name="mivar1" value="Joao"/> João é o valor da variável mivar1. Com setvar criamos a variável e ao mesmo tempo também lhe designamos um valor. - Com input
Com input pode-se criar (declarar) a variável, designá-la um valor e também devolvê-la o valor original. Input utiliza-se para a entrada de dados e esses dados (valores) serão designados a uma variável. - Com select
Com select pode-se criar (declarar) a variável, designá-la um valor e também devolvê-la o valor original. Select permite selecionar ao usuário um ou mais valores entre uma lista de opções que serão designados a uma variável. - Com postfield
Com postfield pode-se criar (declarar) a variável, designá-la um valor e também devolvê-la o valor original. REFERENCIAR VARIÁVEIS Podemos incluir o valor de uma variável dentro de um documento wml, tanto para que apareça na tela como para que se envie a um programa. Há três formas de referenciar a variável: $nomevariável utiliza-se quando não há ambigüidade com o nome da variável dentro do contexto. $(nomevariável) Quando pode existir ambigüidade com o nome da variável dentro do contexto. $(nomevariável:conversão) Explica-se mais abaixo. Como o wml se reserva o uso do símbolo de dólar, para que queiramos que apareça na tela este símbolo, deve-se escrever duas vezes ($$). Por exemplo temos esta variável: $moeda e queremos apresentar seu valor na tela, assim: $15, escreveremos: Saldo atual: $$$moeda CONVERSÃO AO FORMATO ESCAPE $(nomevariável:conversão) No seu momento se estabeleceu uma substituição de alguns caracteres próprios dos URLs para que o servidor não os confundira (regras do formato escape (RFC2396). Estas regras facilitam-nos um mecanismo para poder incluir numa linha URL, esses caracteres. Ainda que estas regras foram criadas para referenciar URLs, podem-se aplicar as mesmas regras para referenciar variáveis. Exemplo (este exemplo, que converte o texto em formato escape é muito útil, podemos descarregá-lo desde demos). <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="carta1" title="WMLCLUB"> <p>Bem-vindo <br/> Tecleie um texto com caracteres especiais: <br/></p> <p><input type="text" name="texto"/></p> <do type="accept"> <go href="#carta2"/> </do> </card> <card id="carta2" title="WMLCLUB"> <p> Este é o texto introduzido, em formato escape: <br/> $(texto:e) <br/> Este é o texto introduzido, normal: <br/> $(texto) </p> </card> </wml> Quando se introduz o valor de uma variável dentro de um baralho, pode-se definir o formato (escape, unescape ou no escape) assim: $(var:e) $(var:E) $(var:escape) (qualquer um dos três traduz ao formato escape) $(var:u) $(var:U) $(var:unesc) (qualquer um dos três traduz do formato escape a texto US-ASCII) $(var:n) $(var:N) $(var:noesc) (qualquer um dos três faz com que o valor da variável não se traduza ao formato escape) O WML sempre aplica o formato escape quando se trata de atributos que trabalham com URLs. Por isso muitas vezes pode-se assumir que o WML converterá ao formato escape quando o tenha que fazer. De qualquer maneira, convém incluí-lo se temos a menor dúvida sobre o que ocorrerá. Aqui encontramos uma lista dos caracteres de escape (todos começam por %) ; %3b / %2f ? %3f : %3a @ %40 & %26 = %3d + %2b $ %24 , %2c espaço %20 { %7b } %7d | %7c \ %55c ^ %5e [ %5b ] %5d ` %27 < %3c > %3e # %23 AS VARIÁVEIS E AS TAREFAS <NOOP>, <PREV>, <REFRESH> e <GO> - <noop/>
Não faz nada. Utiliza-se para desativar eventos no nível do baralho. - <prev/>
Prev volta ao anterior URL. Se dentro de prev há um elemento setvar, como no exemplo, será processado antes de que se execute o prev. <prev> <setvar name="mivar" value="conteudo"/> </prev> - <refresh/>
Refresh refresca os conteúdos visíveis do navegador. Se refresh contém um setvar, como no exemplo, processa-se o setvar e depois se procede ao refresh. <refresh> <setvar name="mivar" value="conteudo"/> </refresh> -
<go> Go leva a outra URL ou outra carta. Se dentro de go há um elemento setvar, se processa primeiro este e depois se executa a tarefa "go". <go href="http://www.wmlclub.com/cgi-bin/programa.pl?x=$(mivar1)&y=$(mivar2)" method="post"> <setvar name="mivar1" value="50"/> <setvar name="mivar2" value="80"/> </go> IMAGENS EM MOVIMENTO Para criar imagens em movimento utilizamos o contador de tempo "timer". O formato das imagens wml é wbmp. Veja na seção Programas um conversor de bmp a wbmp. Exemplo de código para imagens em movimento: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM\" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="img1" ontimer="#img2"> <timer value="10"/> <p> <img src="/movel1.wbmp" alt="Movel1"/> </p> </card> <card id="img2" ontimer="#img3"> <timer value="10"/> <p> <img src="/movel2.wbmp" alt="Movel2"/> </p> </card> <card id="img3" ontimer="#img4"> <timer value="10"/> <p> <img src="/movel3.wbmp" alt="Movel3"/> </p> </card> <card id="img4" ontimer="#end"> <timer value="10"/> <p> <img src="/movel4.wbmp" alt="Movel4"/> </p> </card> <card id="fim" title="FIM"> <p> Fim <br/> <anchor>Outra vez! <go href="#img1"> </go> </anchor> </p> </card> </wml> CRIAÇÃO DE TABELAS Ainda que o tag de <table> esteja guardado nas especificações do WML 1.1, existem alguns móveis que não o implementam, como é o caso do Nokia 7110, no lugar os dados são mostrados numa tabela de uma coluna. Exemplo de código para criação de tabelas:< /p> <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EM" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="Tabela" title="Tabela 1"> <p><table columns="3"> <tr><td><p>Elemento 1</p></td> <td><p>Elemento 2</p></td> <td><p>Elemento 3</p></td></tr> </table></p> </card> </wml> Fonte:http://br.wmlclub.com
|