WML-Dateien für WAP erstellen

-eine kurze Einführung

Diese Einfuehrung wurde erstmals am 25.10.1999 veroeffentlicht und war die erste ihrer Art in deutscher Sprache
WML-?ein Service von www.astrosolutions.de
19.2.2003

*********
BONUS: WAP-Seiten-Editor
Sie sind noch nicht per WAP-Handy im Internet erreichbar? Nein? Sie wollen sich keine WML-Sprachkenntnisse aneignen? Muessen Sie auch nicht. WmlExpress erzeugt innerhalb weniger Minuten Ihr WAP-Informationsangebot!
Download von WmlExpress (nur 9 KB)
Mit der Online-Version koennen Sie eine WML-Seite generieren und als Email verschicken.
*********

Neuere Projekte von Astro Solutions: p2pmobile ist eine Filesharing-Library fuer J2ME.
W3D (Version 2.0) 3D auf JAVA-Handys, einfache Library

Einige WML-Beispiele zu dieser Einfuehrung kann man sich hier als ZIP-Archiv herunterladen(10KB).

Ich kann keine Garantie für die Richtigkeit der
Angaben geben und hafte für nichts.
Der Text basiert auf Informationen der offiziellen
technischen Spezifikation WML 1.1 des Wapforums
Er bietet nur einen kleinen Überblick und
keine vollständige Erklärung. Er ist frei
kopierbar, darf aber nicht verändert werden!

Im Zuge der Verbreitung von WAP (Wireless
Application Protocol) wird auf die Wireless
Markup Language (WML) eine grössere Bedeutung
zukommen. Viele Handys werden mit einem
WML-Browser ausgestattet sein.
WML ist eine Sprache, die Inhalte wie Text und
Bilder auf Geräten mit niedriger Leistungsfähigkeit
darstellen kann. Bei WAP-Handys wird man nicht
auf viel CPU-Power oder RAM rechnen können. Der
Bildschirm kann vielleicht nur 10X10 Buchstaben
darstellen. Wie bei HTML ist die Navigation
durch Verweise innerhalb von Seiten und URLs
möglich.

ZuluCity Game: Trade with virtual homepage stocks

Die Struktur von WML

Jede WML-Seite, Deck genannt, kann in verschiedene
Cards aufgeteilt werden, zwischen denen durch Verweise
gewechselt werden kann.

Die Decks können mit einem normalen Editor erstellt
und ins Web hochgeladen werden. Es wird momentan kein
zusätzlicher Compiler benötigt. Die Dateien
sollten mit der Endung .wml abgespeichert werden.

Ein Deck wird vom WML-Tag umschlossen. Innerhalb
dieses Tags werden verschiedene Cards definiert.
Wie das funktioniert, kann man am besten am
folgenden Beispiel erkennen:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!--Das ist die Doctype-Definition, die am Anfang jeder WML-Datei steht-->
<wml>
<!--WML-Dokument startet hier-->
<card id="card1">
<!--Die erste Card startet hier-->
<!--id setzt den Cardnamen fest-->
<p>
<do type="accept">
<go href="#card2>
</do>
<!--Das Do-Element wird später erklärt-->
<!--Hier steht weiterer Text-->
</p>
</card>

<card id="card2">
<p>
<!--Hier steht weiterer Text-->
</p>
</card>
<!--Erklärung zu Tags und Attributen weiter unten-->
</wml>

Kommentare

Kommentare werden nicht im Browser dargestellt.
Sie werden folgendermassen erzeugt:
<!--Ich bin ein Beispiel-Kommentar-->

Elemente

Elemente von WML bestehen aus einem Anfangstag,
einem Inhalt und einem End-Tag.
Beispiel:
<tag>
Hier beginnt der Tag und hier steht der Inhalt
</tag>
(Hier ist er zünde)

Tags ohne Inhalt können mit <tag/> umschrieben
werden.

Tags mit Attributen sehen dann so aus:
<tag beispielattribut="Hallo">
Inhalt
</tag>

Maskierungen

Einige Zeichen müssen wie bei HTML maskiert werden,
damit sie vernünftig dargestellt werden.
&quot; Ausrufezeichen
&amp; kaufmänisches und
&apos; Apostroph
&lt; weniger als
&gt; grösser als
&nbsp; non-breaking space
&shy; soft hyphen (discretionary hyphen)

CDATA

Sogenannte CDATA Sections kann man dazu verwenden,
ganze Textpassagen ohne Rücksicht auf
WML-Elemente darzustellen:

<![CDATA[Dies ist eine Textpassage]]>

Tasks

Tasks beschreiben die Vorgehensweise, die nach einem
Ereignis (Card betreten, Link aktiviert) durchgeführt
wird.
<task "go/prev/refresh/noop">

Das Go-Element

go ist ein task, der das Springen zu einer anderen
Stelle veruracht. Im Attribut href wird das
Ziel angegeben. Dieses kann die Position eines
anderen Decks oder der Name einer Card sein.
Beispiele:

<go href="http://www.astro.de">
</go>

<go href="#cardname"/>

Im Href-Attribut muss bei Angabe einer Ziel-Card
ein # vor dem Cardnamen stehen.

Das Prev-Element

Das Prev-Element verursacht einen Sprung zur vorherigen
URL oder Stelle.
Beispiel:
<prev/>

Das Refresh-Element

Refresh verursacht ein Neuladen der URL. Beispiel:
<refresh/>

Das Noop-Element

Noop verursacht, dass nichts passiert. Beispiel:
<noop/>

Das Do-Element

Event-Behandlung kann man mit dem Do-Element erreichen.
Ein do auf Deck-Ebene wird von einem do auf
Card-Ebene überschrieben, wenn sie den gleichen
Namen haben. Wenn ein Deck-Do
Element mit einem Card-Do überschrieben wird und
das Card-Do noop als Operation festsetzt, wird
dieses Element aus der Card entfernt und nicht
dargestellt.
Auf Deck-Ebene muss do innerhalb von
<template></template>stehen. Es gilt dann
automatisch für alle Cards.

Wo auf dem Screen des Browsers die Do-Elemente
dargestellt werden, ist dem jeweiligen Browser
überlassen.

Do hat unter anderem die Attribute label, type
und name. Label ist ein Text, der das Element
beschreibt. Type kann "accept", "prev" oder
"options" sein. Name ist optional und enthält den
Namen der Event-Behandlungsmethode.

Ein Beispiel:
<do type="options" name="testi"label="C-Here!">
<go href="hallo.wml"/>
</do>

Verweise

Verweise sind auf zwei Arten zu erstellen:

<anchor>
Click here!
<go href="destination.wml"/>
</anchor>

<a href="destination.wml">Click here!</a>

Destination.wml steht
für die Ziel-URL. Statt einer URL hätte dort
auch ein #cardname für eine andere Card stehen
können.

Variablen

Variablen spielen eine relativ grosse Rolle in der
WML-Spezifikation. Dies bringt
grosse Flexibilität und erleichtert das Erstellen
von dynamischen Seiten. Darauf soll hier aber
nicht weiter eingegangen werden.

Meta-Tags

Die Meta-Tags für Suchmaschinen
können genauso wie in HTML im
Dateikopf bestimmt werden. Ein Beispiel:

<head>
<meta name="keywords" content="wap, wml,xml"/>
<meta name="description" content="Informationenüber WML"/>
<meta name="author" content="GerhartSchröter"/>
</head>

Titel

Cards können einen beschreibenden Titel haben.
Dieser wird im title-Attribut festgelegt:

<card id="acard" title="no nonsense!">
<p>
This sentence makes sense!
</p>
</card>

Auswahlboxen

WML bietet auch die Möglichkeit der Darstellung
von Auswahlboxen:

<select>
<option onpick="hallo.wml">Hallo</option>
<option onpick="info.wml">Get someinformation!</option>
</select>

Mit select beginnt die Auswahlbox. Jeder Option-Tag
bestimmt eine Option in dieser Box. Das
Onpick-Attribut gibt die URL an, die nach dem
Aktivieren der Option angefordert wird. Innerhalb
des Option-Tags sollte eine Beschreibung
der URL angegeben werden.
Unter anderem sind Mehrfach-Angaben und Manipulation
von Variablen mit Select-Konstruktionen möglich.
Auf das Erstellen von Formularen soll hier aber
nicht weiter eingegangen werden.

Textformatierung

Es gibt einige Möglichkeiten, Formatierungseffekte
zu erreichen. Diese sind weitgehend mit denen von
HTML identisch.

<em>Dieser Text ist hervorgehoben</em>
<strong>Dieser Text ist auch hervorgehoben>
<i>Dieser Text ist kursiv</i>
<b>Dieser Text ist fett</b>
<u>Dieser Text ist unterstrichen</u>
<big>Dieser Text ist gross</big>
<small>Dieser Text ist klein</small>

Absätze

Mit dem P-Element können Absätze erzeugt werden.

<p mode="wrap" align="center>
Der Text
</p>

Das Mode-Attribut kann entweder den
Wert "wrap" oder "nowrap" erhalten. Esbestimmt, ob
Wörter, die zu lang sind, über mehrere
Zeilen verteilt werden.
Die Ausrichtung eines Absatz, die mit dem
Align-Attribut erzwungen wird, kann entweder
"left", "right" oder "center" sein.

Das Br-Element

<br/> erzwingt den Anfang einer neuen Zeile.

Tabellen

Hier ist ein Beispiel für eine WML-Tabelle:

<table title="eine Tabelle"columns="2">
<tr><td>eins</td><td>zwei</td></tr>
<tr><td>drei</td><td>vier</td></tr>
</table>

Das Attribut title bestimmt den Titel der Tabelle.
Die Anzahl der Spalten muss zwingend mit
dem Columns-Attribut angegeben werden.
<tr> eröffnet eine neü Zeile und <td> eine
neü Datenzelle.

Bilder

WML ermöglicht auch das Darstellen von Bildern.
Für solche Bilder wurde das WBMP-Format
(Wireless Bitmap) entwickelt.

<img src="text.wbmp" alt="AlternativerText"/>

Attribute
src URL des Image
alt Alternativer Text (muss angegeben werden)
align Ausrichtung: top, middle oder bottom

Ein Programm zum Konvertieren von BMP nach
WBMP gibt es unter anderem von NOKIA.
Eine technische Spezifikation kann man
unter http://www.wapforum.org erhalten.

WMLScript

WMLScript ist eine Scriptsprache, die auf JAVASCRIPT
basiert und die Interaktion zwischen User und
WML-Seite fördert.
Mögliche Anwendungen wären auch die Kontrolle
von Eingaben, das Ansprechen von Peripheriegeräten,
das Anzeigen von Dialogboxen oder kleine
Applikationen.

Nachwort

WAP!

Ich hoffe, dass ich einen kleinen Überblick
über die Möglichkeiten der Wireless Markup
Language bieten konnte.

Weitere Informationen über naheliegende Themen
kann man auf folgenden Websites erhalten:


http://www.w3c.org W3-Konsotium
http://www.wapforum.org Wapforum Ltd. England
http://www.wapforum.de Wapforum Deutschland
Diverse Hersteller bieten Informationen über
neue Handys an.
Unter http://www.wapforum.org gibt es die jeweils
aktuelle Spezifikation von WML.

WML-Dateien für WAP erstellen-eine kurze Einführung
Jan Damberg, 25.10.1999
Email: mailto:%20dambergj@muenster.de
Web: http://www.muenster.de/~dambergj

Zugriffe seit 9.1.2002 17h