Mobile Website Development
Survey of WML
Facilitated by:
Michael Wakahe
Tawi Commercial
Services Ltd
Jul 2011
Table of Contents
 Introduction
 Hello World
 Introducing JSP
 Exercises
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
The
WAP
Stack
Introduction
 WTP (Wireless Transaction Protocol) & WDP
(Wireless Datagram Protocol) provide low-level glue
between the upper levels and the really low-level
communications.
 WTLS (Wireless Transaction Layer Security) provides
security services (encryption and authentication).
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
 These protocols aren't relevant to normal
application programmers
 The second highest level in the stack is the high-
level communications protocol, called WSP
(Wireless Session Protocol).
 Provides a complete replacement for HTTP
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
 The highest stack level is WAE (Wireless
Application Environment)
 This is the part that the user actually sees &
interacts
 The WAE aims to provide a World Wide Web-like
model for writing applications
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
 The WAE incorporates several key features of the
Web that we are familiar with, e.g. URLs & MIME
content types (such as text/html and image/gif)
 Additionally it provides similar replacements for
other features: HTML is replaced with WML
(Wireless Markup Language) & JavaScript is replaced
with WMLScript
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
 Almost all WAP applications can be written
without using anything outside of these two
languages and WBMP (Wireless Bitmap: the WAP
image format)
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introduction
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
The WAP Chain of Processing
Hello World
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Hello World
 We will use Eclipse to compose our WML and deploy
in the Tomcat ROOT folder
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Hello World
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC
"-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="First WML Example">
<p>Hello, World!</p>
</card>
</wml>
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Hello World
 Note that all tag names are in lowercase
 In WML, tag names are case-sensitive
 A file of WML represents a deck of cards
 This is the reason for the <card> tag
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Hello World
 Each individual card does behaves very much like an
HTML page
 So you can think of a WML deck as being similar to a
number of HTML pages all grouped together
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Hello World
 Cards in a deck are all downloaded at the same time
 So the user has to wait only once & the others can be
accessed almost instantly
 Cramming too many cards into a single deck is bad
practice
 Ideally maximum of 5 to 6 cards per deck
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML
Structure
Explained
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
Valid child tags of <wml> are:
 <head>: Defines document metadata and access
control using the <meta> and <access> tags. Zero or
one <head> tags are allowed in a document.
 <card>: Defines a card to display in the browser. One
or more <head> tags are allowed in a document.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
 <template>: Defines global event handlers and
commands for the deck. Zero or one <template> tags
are allowed in a document.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
Valid child tags of <card> are:
 <p>: Contains text, images, and links. Most user-
accessible and visible content in a WML card is child
content of this tag. Zero or more <p> tags are
allowed in a card.
 <pre>: Contains preformatted text. Zero or more
<pre> tags are allowed in a card.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
 <do>: Contains commands and actions. Zero or more
<do> tags are allowed in a card.
 <timer>: Activates time-based events. Zero or one
<timer> tags are allowed in a card.
 <onevent>: Specifies tasks based on different card-
level events. Zero or more <onevent> tags are
allowed in a card.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
Comments:
<!-- A simple comment. -->
<!--This is
a comment that
spans several lines.-->
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
WML Structure Explained
 Other topics in WML include: Special Characters,
Header & Metadata, Text Formatting, Links, Images,
Tables, Timers, Variables, User Input, WMLScript
 Browse to http://learnthemobileweb.com/books
for links to WML references and helpful
documentation
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introducing
JSP
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introducing JSP
 WML can be mixed with JSP and Servlets
 Save the following example as a .jsp not as a .wml
 Deploy to servlet container (Tomcat)
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Introducing JSP
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<%
response.setContentType("text/vnd.wap.wml;charset=UTF-8");
int num1 = 9;
int num2 = 12;
%>
<wml>
<card title="First WML Example">
<p>My name is <% out.println("Michael"); %></p>
<p>The sum of num1 and num2 is <%= (num1+num2) %></p>
</card>
</wml>
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
Spot the errors in the following sample:
<wml>
<card ID=start title='Example of Invalid WML'>
<P>This markup is invalid.
</card>
</wml>
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
The WML code sample above has the following syntax
errors:
 XML declaration is missing.
 DOCTYPE declaration is missing.
 ID attribute of <card> tag is uppercase. (Well-formed
WML requires lowercase tags.)
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
 Value of the id attribute of the <card> is not
delimited.
 Value of the title attribute of the <card> tag is
delimited with single quotes.
 <p> tag is uppercase. (Well-formed WML requires
lowercase tags.)
 <p> tag has an open tag but not matching close tag.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
Correct version is as follows:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML
1.3//EN"
"http://www.wapforum.org/DTD/wml13.dtd">
<wml>
<card id="start" title="Example of Valid WML">
<p>This markup is valid.</p>
</card>
</wml>
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
Exercises
 Write a WML file that shows the first 7 digits of the
Fibonacci Series. Can use JSP and/or servlets.
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.
The End
Michael Wakahe
michael@tawi.mobi
+254 (0) 20 239 3052
www.tawi.mobi
Copyright © Tawi Commercial Services Ltd. 2015. All Rights
Reserved.

Survey of WML

  • 1.
    Mobile Website Development Surveyof WML Facilitated by: Michael Wakahe Tawi Commercial Services Ltd Jul 2011
  • 2.
    Table of Contents Introduction  Hello World  Introducing JSP  Exercises Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 3.
    Introduction Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved.
  • 4.
    Introduction Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved. The WAP Stack
  • 5.
    Introduction  WTP (WirelessTransaction Protocol) & WDP (Wireless Datagram Protocol) provide low-level glue between the upper levels and the really low-level communications.  WTLS (Wireless Transaction Layer Security) provides security services (encryption and authentication). Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 6.
    Introduction  These protocolsaren't relevant to normal application programmers  The second highest level in the stack is the high- level communications protocol, called WSP (Wireless Session Protocol).  Provides a complete replacement for HTTP Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 7.
    Introduction  The higheststack level is WAE (Wireless Application Environment)  This is the part that the user actually sees & interacts  The WAE aims to provide a World Wide Web-like model for writing applications Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 8.
    Introduction  The WAEincorporates several key features of the Web that we are familiar with, e.g. URLs & MIME content types (such as text/html and image/gif)  Additionally it provides similar replacements for other features: HTML is replaced with WML (Wireless Markup Language) & JavaScript is replaced with WMLScript Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 9.
    Introduction  Almost allWAP applications can be written without using anything outside of these two languages and WBMP (Wireless Bitmap: the WAP image format) Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 10.
    Introduction Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved. The WAP Chain of Processing
  • 11.
    Hello World Copyright ©Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 12.
    Hello World  Wewill use Eclipse to compose our WML and deploy in the Tomcat ROOT folder Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 13.
    Hello World <?xml version="1.0"?> <!DOCTYPEwml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="First WML Example"> <p>Hello, World!</p> </card> </wml> Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 14.
    Hello World  Notethat all tag names are in lowercase  In WML, tag names are case-sensitive  A file of WML represents a deck of cards  This is the reason for the <card> tag Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 15.
    Hello World  Eachindividual card does behaves very much like an HTML page  So you can think of a WML deck as being similar to a number of HTML pages all grouped together Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 16.
    Hello World  Cardsin a deck are all downloaded at the same time  So the user has to wait only once & the others can be accessed almost instantly  Cramming too many cards into a single deck is bad practice  Ideally maximum of 5 to 6 cards per deck Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 17.
    WML Structure Explained Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved.
  • 18.
    WML Structure Explained Validchild tags of <wml> are:  <head>: Defines document metadata and access control using the <meta> and <access> tags. Zero or one <head> tags are allowed in a document.  <card>: Defines a card to display in the browser. One or more <head> tags are allowed in a document. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 19.
    WML Structure Explained <template>: Defines global event handlers and commands for the deck. Zero or one <template> tags are allowed in a document. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 20.
    WML Structure Explained Validchild tags of <card> are:  <p>: Contains text, images, and links. Most user- accessible and visible content in a WML card is child content of this tag. Zero or more <p> tags are allowed in a card.  <pre>: Contains preformatted text. Zero or more <pre> tags are allowed in a card. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 21.
    WML Structure Explained <do>: Contains commands and actions. Zero or more <do> tags are allowed in a card.  <timer>: Activates time-based events. Zero or one <timer> tags are allowed in a card.  <onevent>: Specifies tasks based on different card- level events. Zero or more <onevent> tags are allowed in a card. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 22.
    WML Structure Explained Comments: <!--A simple comment. --> <!--This is a comment that spans several lines.--> Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 23.
    WML Structure Explained Other topics in WML include: Special Characters, Header & Metadata, Text Formatting, Links, Images, Tables, Timers, Variables, User Input, WMLScript  Browse to http://learnthemobileweb.com/books for links to WML references and helpful documentation Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 24.
    Introducing JSP Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved.
  • 25.
    Introducing JSP  WMLcan be mixed with JSP and Servlets  Save the following example as a .jsp not as a .wml  Deploy to servlet container (Tomcat) Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 26.
    Introducing JSP <?xml version="1.0"?> <!DOCTYPEwml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <% response.setContentType("text/vnd.wap.wml;charset=UTF-8"); int num1 = 9; int num2 = 12; %> <wml> <card title="First WML Example"> <p>My name is <% out.println("Michael"); %></p> <p>The sum of num1 and num2 is <%= (num1+num2) %></p> </card> </wml> Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 27.
    Exercises Copyright © TawiCommercial Services Ltd. 2015. All Rights Reserved.
  • 28.
    Exercises Spot the errorsin the following sample: <wml> <card ID=start title='Example of Invalid WML'> <P>This markup is invalid. </card> </wml> Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 29.
    Exercises The WML codesample above has the following syntax errors:  XML declaration is missing.  DOCTYPE declaration is missing.  ID attribute of <card> tag is uppercase. (Well-formed WML requires lowercase tags.) Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 30.
    Exercises  Value ofthe id attribute of the <card> is not delimited.  Value of the title attribute of the <card> tag is delimited with single quotes.  <p> tag is uppercase. (Well-formed WML requires lowercase tags.)  <p> tag has an open tag but not matching close tag. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 31.
    Exercises Correct version isas follows: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml> <card id="start" title="Example of Valid WML"> <p>This markup is valid.</p> </card> </wml> Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 32.
    Exercises  Write aWML file that shows the first 7 digits of the Fibonacci Series. Can use JSP and/or servlets. Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.
  • 33.
    The End Michael Wakahe michael@tawi.mobi +254(0) 20 239 3052 www.tawi.mobi Copyright © Tawi Commercial Services Ltd. 2015. All Rights Reserved.