WML-タスク

WMLタスクは、表示されるものではなく、ブラウザーによって実行されるアクションを指定する要素です。たとえば、新しいカードに変更するアクションは<go>タスク要素で表され、前にアクセスしたカードに戻るアクションは<prev>タスク要素で表されます。タスク要素は、アクションの実行に必要なすべての情報をカプセル化します。

WMLは、goタスク、preタスク、refreshタスク、nooptaksと呼ばれる4つのWMLタスクを処理するために次の4つの要素を提供します。

<go>タスク:

名前が示すように、<go>タスクは新しいカードに移動するアクションを表します。

<go>要素は、次の属性をサポートします。

属性 説明
href URL 新しいカードのURLを示します。相対URLは、現在のカードを基準にして解決されます
方法
  • get
  • post
デッキをフェッチするために使用する必要があるメソッドを指定します。これは、HTTPのGETメソッドとPOSTメソッドに対応するgetまたはpostの値の1つである必要があります。

使用する場合 method="get"、データは?を使用してリクエストとして送信されます URLに追加されたデータ。この方法には、限られた量のデータにしか使用できないという欠点があり、機密情報を送信すると、画面に表示されてWebサーバーのログに保存されます。したがって、パスワードなどを送信する場合は、この方法を使用しないでください。

method="post"、データはリクエストとして送信され、データはリクエストの本文で送信されます。この方法には制限がなく、機密情報はURLに表示されません

sendreferer
  • true
  • false
trueに設定すると、ブラウザはリクエストとともに現在のデッキのURLを送信します。このURLは、可能であれば相対URLとして送信されます。これの目的は、サーバーがデッキにリンクしているデッキに基づいて、デッキで簡単なアクセス制御を実行できるようにすることです。たとえば、HTTPを使用すると、この属性はHTTPリファラーヘッダーで送信されます。
accept-charset charset_list POST要求でサーバーに送信されるデータをエンコードできる文字セットのコンマまたはスペースで区切られたリストを指定します。デフォルト値は「不明」です。
クラス クラスデータ 要素のクラス名を設定します。
id 要素ID 要素の一意のID。

以下は、<go>要素の使用法を示す例です。

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

<wml>

<card title="GO Element">
<p>
   <anchor>
       Chapter 2 : <go href="chapter2.wml"/>
   </anchor>
</p>
</card>
</wml>

Getメソッドを使用してデータをアップロードする方法を示す別の例

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

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using Get Method 
      <go href="chapter2.wml?x=17&y=42" method="get"/>
   </anchor>
</p>
</card>
</wml>

<setvar>要素を使用してデータをアップロードする方法を示す別の例。

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

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using setvar:
	  <go href="chapter2.wml"> 
	      <setvar name="x" value="17"/> 
  	      <setvar name="y" value="42"/> 
	  </go>
   </anchor>
</p>
</card>
</wml>

<postfiled>要素を使用してデータをアップロードする方法を示す別の例

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

<wml>

<card title="GO Element">
<p>
   <anchor>
      Using setvar:
	  <go href="chapter2.wml" method="get"> 
              <postfield name="x" value="17"/>
              <postfield name="y" value="42"/>
	  </go>
   </anchor>
</p>
</card>
</wml>

<prev>タスク:

<prev>タスクは、履歴スタックで以前にアクセスしたカードに戻るアクションを表します。このアクションが実行されると、最上位のエントリが履歴スタックから削除され、<prev>タスクでの<setvar>変数の割り当てが有効になった後、そのカードが再び表示されます。

以前のURLが存在しない場合、<prev>を指定しても効果はありません。

<prev>要素は、次の属性をサポートします。

属性 説明
クラス クラスデータ 要素のクラス名を設定します。
id 要素ID 要素の一意のID。

以下は、<prev>要素の使用法を示す例です。

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

<wml>

<card title="Prev Element">
<p>
   <anchor>
        Previous Page :<prev/>
   </anchor>
</p>
</card>
</wml>

<prev>タスクに変数を含めると便利な状況の1つは、ユーザー名とパスワードの入力を求めるログインページです。状況によっては、ログインカードに戻るときにパスワードフィールドをクリアして、ユーザーにパスワードの再入力を強制したい場合があります。これは、次のような構成で実行できます。

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

<wml>

<card title="Prev Element">
<p>
   <anchor>
        <prev>
           <setvar name="password" value=""/>
        </prev>
   </anchor>
</p>
</card>
</wml>

<更新>タスク:

<refresh>タスクは、実際に何かを実行する最も単純なタスクです。その効果は、<setvar>要素で指定された変数の割り当てを実行してから、現在のカードを新しい値で再表示することです。<go>タスクと<prev>タスクは、新しいカードを表示する直前に同じアクションを実行します。

<refresh>タスクは、カードに対して何らかの「リセット」アクションを実行するために最もよく使用されます。

<refresh>要素は、次の属性をサポートします。

属性 説明
クラス クラスデータ 要素のクラス名を設定します。
id 要素ID 要素の一意のID。

以下は、<refresh>要素の使用法を示す例です。

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

<wml>

<card title="Referesh Element">
<p>
   <anchor>
         Refresh this page:
          <go href="test.wml"/>
          <refresh>
            <setvar name="x" value="100"/>
          </refresh>
   </anchor>
</p>
</card>
</wml>

<noop>タスク:

<noop>タスクの目的は、何もしない(操作を行わない)ことです。

このタスクの唯一の実際の使用法は、テンプレートに関連することです

<noop>要素は、次の属性をサポートします。

属性 説明
クラス クラスデータ 要素のクラス名を設定します。
id 要素ID 要素の一意のID。

以下は、<noop>要素の使用法を示す例です。

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

<wml>

<card title="Noop Element">
<p>
  <do type="prev" label="Back">
      <noop/>
  </do>
</p>
</card>
</wml>