The WAP protocol was designed to show internet-contents on wireless clients, like mobile phones.
WML is the language used to create pages to be displayed in a WAP browser.
In our WAP tutorial you will learn about WAP and WML.
You will learn how to convert your HTML pages to pocket format, so that your information can be accessed from wireless clients, like mobile phones.
The WAP protocol was designed to show internet contents on wireless clients, like mobile phones.
What You Should Already Know
Before you continue you should have a basic understanding of the following:
• HTML
• JavaScript
• XML
If you want to study these subjects first, find the tutorials on W3Schools' Home Page.
What is WAP?
The wireless industry came up with the idea of WAP. The point of this standard was to show internet contents on wireless clients, like mobile phones.
• WAP stands for Wireless Application Protocol
• WAP is an application communication protocol
• WAP is used to access services and information
• WAP is inherited from Internet standards
• WAP is for handheld devices such as mobile phones
• WAP is a protocol designed for micro browsers
• WAP enables the creating of web applications for mobile devices.
• WAP uses the mark-up language WML (not HTML)
• WML is defined as an XML 1.0 application
The Wireless Application Protocol
The WAP protocol is the leading standard for information services on wireless terminals like digital mobile phones.
The WAP standard is based on Internet standards (HTML, XML and TCP/IP). It consists of a WML language specification, a WMLScript specification, and a Wireless Telephony Application Interface (WTAI) specification.
WAP is published by the WAP Forum, founded in 1997 by Ericsson, Motorola, Nokia, and Unwired Planet. Forum members now represent over 90% of the global handset market, as well as leading infrastructure providers, software developers and other organizations. You can read more about the WAP forum at our WAP Forum page.
WAP Micro Browsers
To fit into a small wireless terminal, WAP uses a Micro Browser.
A Micro Browser is a small piece of software that makes minimal demands on hardware, memory and CPU. It can display information written in a restricted mark-up language called WML.
The Micro Browser can also interpret a reduced version of JavaScript called WMLScript.
What is WML?
WML stands for Wireless Markup Language. It is a mark-up language inherited from HTML, but WML is based on XML, so it is much stricter than HTML.
WML is used to create pages that can be displayed in a WAP browser. Pages in WML are called DECKS. Decks are constructed as a set of CARDS.
What is WMLScript?
WML uses WMLScript to run simple code on the client. WMLScript is a light JavaScript language. However, WML scripts are not embedded in the WML pages. WML pages only contains references to script URLs. WML scripts need to be compiled into byte code on a server before they can run in a WAP browser.
Visit our WMLScript tutorial to learn more about scripting in WML documents.
Examples of WAP use
• Checking train table information
• Ticket purchase
• Flight check in
• Viewing traffic information
• Checking weather conditions
• Looking up stock values
• Looking up phone numbers
• Looking up addresses
• Looking up sport results
WAP Basics
WAP Homepages
WAP homepages are not very different from HTML homepages. The markup language used for WAP is WML (Wireless Markup Language). WML uses tags - just like HTML - but the syntax is stricter and conforms to the XML 1.0 standard.
WML pages have the extension *.WML, just like HTML pages have the extension *.HTML.
WML Tags
WML is mostly about text. Tags that would slow down the communication with handheld devices are not a part of the WML standard. The use of tables and images is strongly restricted.
Since WML is an XML application, all tags are case sensitive (
WML Decks and Cards
WML pages are called DECKS. They are constructed as a set of CARDS, related to each other with links. When a WML page is accessed from a mobile phone, all the cards in the page are downloaded from the WAP server. Navigation between the cards is done by the phone computer - inside the phone - without any extra access trips to the server.
Example WML document:
Our HTML Tutorial is an award winning
tutorial from W3Schools.
Our XML Tutorial is an award winning
tutorial from W3Schools.
As you can see from the example, the WML document is an XML document. The DOCTYPE is defined to be wml, and the DTD is accessed at www.wapforum.org/DTD/wml_1.1.xml. ual paragraphs are inside
...
tags. Each card element has an id and a title.WML Formatting
Decks and Cards
WML pages are often called "decks". A deck contains a set of cards. A card element can contain text, markup, links, input-fields, tasks, images and more. Cards can be related to each other with links.
When a WML page is accessed from a mobile phone, all the cards in the page are downloaded from the WAP server. Navigation between the cards is done by the phone computer - inside the phone - without any extra access trips to the server:
Hello World!
Welcome to our WAP Tutorial!
The result MIGHT look like this in your mobile phone display (note that only one card is displayed at a time):
------ Card 1 ------
Hello World!
Paragraphs and Line Breaks
A WML card can be set up to display the paragraph and line break functions of WML:
This is a paragraph
This is another
with a line break
The result MIGHT look like this in your mobile phone display:
------ Paragraphs ------
This is a paragraph
This is another
with a line break
Text Formatting
A WML card can be set up to display the text formatting functions of WML:
normal
emphasized
strong
bold
italic
underline
big
small
The result MIGHT look like this in your mobile phone display (don't take it for granted that all formatting tags will render as expected):
----- Formatting -----
normal
emphasized
strong
bold
italic
underline
big
small
Tables
A WML card can be set up to display the table functions of WML:
Cell 1 | Cell 2 | Cell 3 |
The result MIGHT look like this in your mobile phone display:
------ Table ------
Cell 1 Cell 2 Cell 3
WML Links and Images
Links
A WML card can be set up to display the anchor functions of WML.
The
The tag always performs a "go" task, with no variables. The example below does the same as the
Image
A WML card can be set up to display an image:
This is an image
in a paragraph
The result MIGHT look like this in your mobile phone display:
------ Image ------
This is an image in a paragraph
Note that .wbmp is the only image type that can be displayed in a WAP browser.
WML Input
Input Fields
A WML card can be set up to let a user enter information, as demonstrated in this example:
Name:
Age:
Sex:
The result MIGHT look like this in your mobile phone display:
----- Input ----------
Name:
Age :
Sex :
Select and Option
A WML card, can be set up to display the select and option functions of WML:
The result MIGHT look like this in your mobile phone display:
--- Selectable List 1---
HTML Tutorial
XML Tutorial
WAP Tutorial
In the example below, the result is a selectable list where the user can select more than one item:
The result MIGHT look like this in your mobile phone display:
--- Selectable List 2---
HTML Tutorial
XML Tutorial
WAP Tutorial
Fieldset
A WML card, can be set up to display the fieldset function of WML:
The result MIGHT look like this in your mobile phone display:
------- Fieldset--------
CD Info Title:
Prize:
WML Tasks
A task specifies what action to perform when an event, like entering a card or selecting a link, occurs.
Go Task
The
Go To Test
Prev Task
The
Previous Page
Refresh Task
The
The example below uses an
Refresh this page
Noop Task
The
The
The example below uses a
Task Elements
Start tag Purpose WML
Represents the action of switching to a new card 1.1
Says that nothing should be done (noop stands for "no operation"). Used to override deck-level elements 1.1
Represents the action of going back to the previous card 1.1
Refreshes some specified card variables. If any of the variables are shown on the screen, this task also refreshes the screen 1.1
WML Timer
Timer
A WML card can be set up to use the timer function of WML. The time unit of the timer is 1/10 of a second.
The example below will display a message for 3 seconds, and then take you to the file "test.wml":
Some Message
WML Variables
Variables
When a user switches from card to card in a deck, we need to store data in variables. WML variables are case sensitive.
Specify a Variable with the Setvar Command
When someone executes a task (like go, prev, and refresh), the setvar element can be used to set a variable with a specified value.
The following example will create a variable named i with a value of 500:
The name and value attributes are required.
Specify a Variable through an Input Element
Variables can also be set through an input element (like input, select, option, etc.).
The following example will create a variable named schoolname:
To use the variable we created in the example above:
You selected: $(schoolname)
A WML deck with two cards - one for user input and one for displaying the result - can be set up, as demonstrated in this example:
You selected: $(name)
The first card might look like this in your mobile phone display:
----- Tutorial ----------
HTML Tutorial
XML Tutorial
WAP Tutorial
Answer
The second card might look like this:
----- Answer ----------
You Selected: HTML
Example Explained
The Prolog
The first lines in the WML document are called the prolog. The prolog defines that this is an XML document, it then defines the XML version, and the DTD to be referenced.
The Deck
The deck is the WML document itself. It is embedded within
The Cards
Cards are always displayed one at the time. This WML deck contains two cards - one for user input and one for displaying the result.
The
The first card has a
The Event
The
The Variable
Card2 displays the $(name) variable from card1, because variables are valid across cards.
Validate WML
Validating your WML
To help you validate your wml, we have used The Microsoft's XML parser to create a wml validator. Paste your wml in the text area, and validate it by pressing the validate button.
NOTE: This example validates the wml file according to its DTD, this validation is only supported by Internet Explorer.
Validating your WML file
You can also validate your wml files, simply by typing the url of your wml file and press the submit button
File Name:
If you want to validate an error free WML file you can paste this address into the name field: http://www.w3schools.com/wap/demo_helloworld.wml
NOTE: This example validates the wml file according to its DTD, this validation is only supported by Internet Explorer.
NOTE: If you get an error message saying "Access denied" when accessing this file, it is because your Internet Explorer security setting do not allow access across domains.
Compiling WML Code
To test and compile your WML code, you can download the Nokia Mobile Internet Toolkit for free. The Nokia Mobile Internet Toolkit supports the complete WAP 2.0 specification, including XHTML and CSS.
If you place WML code on your IIS or Apache server, you don't need to compile it. This is a job for the WAP Gateway. Simply host your native WML code on your server.