Tải bản đầy đủ (.pdf) (10 trang)

Webmaster''''s Guide to the Wireless Internet part 17 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (308 KB, 10 trang )

132 Chapter 3 • A New Markup: WML
Summary
Although wireless markup languages have been around for some four years or so
now, they are still very much a “work in progress.” Forthcoming WAP specifica-
tions will doubtless add to the equation as wireless devices evolve and mature.
However,WML has borrowed much from the past, and we can imagine this will
continue to be the case for the foreseeable future as the language is developed
further.Thus, there is still much to be learned from an appreciation of WML in
its present commercially available form.
The single most important point concerning WML is that it is an application
of XML and is thus subject to all the rules this entails.Although it may appear a
complex issue when dealing with white space restrictions, proper nesting of ele-
ments, and representation of elements, these are common-sense points that have
the added benefit of prompting better coding standards, making the resultant
WML more readable by others. In an ideal world, it also guarantees platform
interoperability, though individual browser interpretations of the WML standard
will doubtless have their own say on how the markup is represented.
Due to the huge range of devices that will be capable of interpreting WML,
you should take care in diverting from the specification produced by the WAP
Forum. For some applications, such as use within a corporate intranet where you
know which devices will be in use, extensions can provide much added capa-
bility; however, for someone attempting to access the same service available over
the Internet on a device that does not support the extensions, their use could also
spell disaster.
The WML language provides enough capabilities to get your content out in
front of what could be the single biggest audience for any distribution medium
since radio or television. For a young technology, there is already heavy backing
from the biggest players in the industry.The inclusion of WML editing in the
most popular HTML editors and the availability of specialized WAP SDKs are
sure signs that support for WML and the creation of applications destined for
viewing on mobile devices will be ongoing and extensive.


www.syngress.com
159_wg_wi_03 10/22/01 4:33 PM Page 132
A New Markup: WML • Chapter 3 133
Solutions Fast Track
A Brief History of Wireless Content
 The Intelligent Terminal Transfer Protocol (ITTP) was developed by
Ericsson in 1995. Unwired Planet developed the Handheld Device
Markup Language (HDML) in mid-1996 and made it available to
developers.The Tagged Text Markup Language (TTML), developed by
Nokia Corporation, and the Extensible Markup Language (XML) had
become available around the same time.
 In June 1997, Nokia and Unwired Planet formed The WAP Forum, also
bringing together Motorola and Ericsson.These initial founders
represented over 90 percent of the wireless market.The WAP Forum’s
primary goal was to develop a protocol that could be built on any
platform to allow users to interact with services and information as fast
and efficiently as possible and to promote product interoperability.
 The WAP Forum examined the various markup languages being offered
by the different companies and took the best aspects of each to form the
Wireless Markup Language (WML), which was released in 1999.
 Those devices that contained HDML browsers gained the ability to
browse WML content from HDML version 3.1 onwards.
WML Overview
 WML is an application of XML.
 A WML document contains elements that have a start tag and an end tag.
If the element isn’t a container for data, the element must be self-closing
(indicated by a backslash).
 WML files consist of a deck containing one or more cards. Each file can
be thought of as a deck, within which can be any number of cards. Each
card is a single page that can be displayed on the device.

 WML is constructed hierarchically. Files must be well-formed and valid
XML documents.Validity is achieved by the inclusion of a Document
Type Definition (DTD).
www.syngress.com
159_wg_wi_03 10/22/01 4:33 PM Page 133
134 Chapter 3 • A New Markup: WML
WML Elements
 WML elements specify the structure of the content.
 WML is quite similar to HTML in its use of elements and attributes to
describe the content within each file.There are relatively few elements
in comparison to HTML.
Creating WML Content
 Dynamic applications are applications that build content “on the fly” in
response to requests made.A single template file filled with dynamically
served content can replace hundreds of similar HTML pages.
 Openwave extensions to WML allow further context and better error
handling to be introduced to your WML application.
 WML provides a number of navigation aids that are more flexible than
those available in HTML.
 Tasks allow the user to perform actions dependent on the situation
encountered.
WML Editors,WAP SDKs, and Emulators
 WAP editors allow the quick and easy creation of WML files. Most
of the popular HTML editors support editing WML.
 WAP editors can also sometimes contain a built-in emulator to
preview work.
 You should always check WML content on the target device
wherever possible.
www.syngress.com
159_wg_wi_03 10/22/01 4:33 PM Page 134

A New Markup: WML • Chapter 3 135
Q: I created formatted content that doesn’t show up on my Nokia 7110.What’s
wrong?
A: Not all WAP devices are created equal. Because the WAP specification is quite
loose in what is absolutely required and what is absolutely not, the device
manufacturers make a judgment call as to which features are available and
which are not.This has led to vast differences between how different devices
handle WML, such as the Nokia 7110 compared to an Ericsson R380.
Q: How do I display characters such as a dollar sign? Is there an entity similar to
& for an ampersand?
A: To display a dollar sign, enter it twice as follows: $$.The dollar sign will now
display correctly.
Q: Which scripting language should I use to develop dynamic WML?
A: You can use whatever scripting language you are most comfortable with.The
example in this chapter is in ASP, but you could use PERL, PHP3, or Java
Server Pages to equal effect.
Q: My content does not display on a phone but works fine on an emulator.
What’s wrong?
A: Although many emulators are very close to the actual device, there is no sub-
stitute for real-world testing. Check that the syntax of your WML is correct
and the DTD is referenced properly. If you are using nonstandard extensions,
don’t forget to change the DTD reference accordingly.
Q: Can I use sound or video in my WML application?
A: The use of multimedia within WAP devices is not possible at present, though
this looks set to change with the introduction of new standards for third-gen-
eration (3G) services.
www.syngress.com
Frequently Asked Questions
The following Frequently Asked Questions, answered by the authors of this book,
are designed to both measure your understanding of the concepts presented in

this chapter and to assist you with real-life implementation of these concepts. To
have your questions about this chapter answered by the author, browse to
www.syngress.com/solutions and click on the “Ask the Author” form.
159_wg_wi_03 10/22/01 4:33 PM Page 135
159_wg_wi_03 10/22/01 4:33 PM Page 136
Enhancing Client-
Side Functionality
with WMLScript
Solutions in this chapter:

What Is WMLScript?

Understanding Basic Elements of
WMLScript

Learning to Interpret WMLScript

Performing Mathematical Operations
Using WMLScript

Using WMLScript for Input Validation

Credit Card Validation

Using WMLScript and Microsoft ASP: A
Case Study
 Summary
 Solutions Fast Track
 Frequently Asked Questions
Chapter 4

137
159_wg_wi_04 10/22/01 4:34 PM Page 137
138 Chapter 4 • Enhancing Client-Side Functionality with WMLScript
Introduction
Besides using HTML for Web page rendering,Web developers also commonly
use a scripting language like VBScript or JavaScript to perform simple client-side
tasks such as user input validation. Such a task might be to validate that the user
has entered a valid date and to inform them if it isn’t.Although tasks like valida-
tion could be done on the server side, it is far more productive and efficient to
perform the checking on the client side. Besides saving a round-trip to the server
for the inputs to be validated, it allows your application to be more responsive to
the user.
As it is for developing Wireless Application Protocol (WAP) applications, the
counterpart for Wireless Markup Language (WML) is the WMLScript language.
The WMLScript language has similar objectives to those of JavaScript and
VBScript. In this chapter, we will look at how WMLScript can be used in your
application for client-side processing.We will first present an overview of the lan-
guage, followed by its syntax, operators, and control structure.We will then illus-
trate the various features of the WMLScript language by walking through several
examples. Each example will then be dissected.The approach to this chapter is
learning by example.This chapter discusses WMLScript version 1.1.
What Is WMLScript?
WMLScript is a language that provides scripting capabilities to the WAP architec-
ture. It complements the Wireless Markup Language.WMLScript is to WML
what JavaScript is to HTML. In the context of WAP,WMLScript performs useful
functions like user input validations and user prompts so as to reduce the round-
trip delays to the origin server.WMLScript is loosely based on the ECMAScript
(ECMA262). It is similar in syntax to scripting languages like JavaScript and
JScript.
Not All Phones Support WMLScript

Before you dive into WMLScript programming, be aware that not all WAP
phones support WMLScript. However, phones from the following vendors do
support WMLScript:

Ericsson

Nokia
www.syngress.com
159_wg_wi_04 10/22/01 4:34 PM Page 138
www.syngress.com
In addition, phones utilizing the UP.Browser from Openwave support
WMLScript (e.g., Siemens and some models from Ericsson). For this chapter, we
will be making use of the Nokia WAP Toolkit as well as the UP.Simulator (which
contains the UP.Browser) for testing our WMLScript programs. Developers tar-
geting their applications at the UP.Browser market have to be aware of the
browser version currently installed in most of the phones in the U.S.Table 4.1
shows the different versions of the UP.Browser and their support for the
Handheld Device Markup Language (HDML),WML, and WMLScript.
Table 4.1
UP.Browser Language Support
Browser Version Supported Languages
UP.Browser 4.x HDML (through translation at the gateway), WML1.1,
WMLScript1.1
UP.Browser 3.1 HDML, WML1.1 (through translation at the gateway),
no support for WMLScript
UP.Browser 3.0 HDML, no support for WML and WMLScript
As you can see,WMLScript is not supported by phones running the
UP.Browser version 3.x.Therefore it is important for you to know the browser
version of your targeted user when developing your application. One solution
might be to customize your application such that during runtime, a check is

made to ensure that the user can support WMLScript.
NOTE
Devices using the UP.Browser 3.1 rely on the gateway to translate WML
codes into HDML so that they can execute WAP applications.
Using a server-side technology like Microsoft Active Server Pages (ASP), you
can have the code shown in Figure 4.1.
Figure 4.1 Code Snippet for Detecting the Kind of Devices Accessing the Deck
<%
if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "Mozilla") then
// user is using a Web browser
// place codes for handling web browser here
Enhancing Client-Side Functionality with WMLScript • Chapter 4 139
Continued
159_wg_wi_04 10/22/01 4:34 PM Page 139
140 Chapter 4 • Enhancing Client-Side Functionality with WMLScript
else
// assumes the user is using a WAP device
// place WAP-related codes here
if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "3.1") then
// we can further examine the browser version using
// the HTTP_USER_AGENT variable
end if
end if
%>
The code snippets in Figure 4.1 illustrate how you can detect the kind of
devices accessing your page. Basically, when a device accesses a document from a
Web server, it will send information about itself to the Web server.This informa-
tion is stored in special variables on the Web server, known as Environment
Variables. HTTP_USER_AGENT is one such variable. It stores information
about the device type, such as browser version and brand. In the case of the

UP.Browser 4.1, it will set the following string in the variable:
OWG1 UP/4.1.20a UP.Browser/4.1.20a-XXXX UP.Link/4.1.HTTP-DIRECT
Based on this information, developers can then decide if the target device is
able to support WMLScript, and send the appropriate content to the device.
WMLScript Compilation
Before the WMLScript is sent to the WAP device for execution, it has to be
compiled (either by the WAP gateway or through explicit compilation) into a
binary format known as WMLScript bytecode.The WMLScript bytecode is then
sent to the device to be interpreted by the WMLScript interpreter (located on
the WAP device).
This compiled bytecode, together with the compiled WAP binary, will have
to fit into the memory of the target device. Hence, the rule for minimizing the
size of the WMLScript programs and WML decks still holds.
How WMLScript Interacts with WML
For a WML deck to interact with WMLScript, it has to call functions in a
WMLScript program defined with the extern keyword (see Figure 4.2).The
www.syngress.com
Figure 4.1 Continued
159_wg_wi_04 10/22/01 4:34 PM Page 140
Enhancing Client-Side Functionality with WMLScript • Chapter 4 141
WMLScript program is stored in another file ending with the wmls extension.
Unlike JavaScript, it cannot be embedded within the calling program—WML in
this case.
For WMLScript to interact with a WML deck, the WMLBrowser library is
used (more on this in later examples). Note that in order to use WMLScript, you
need to set the MIME type for WMLScript in your Web server.The MIME type
for the .wmls extension is text/vnd.wap.wmlscript.
Understanding the Basic
Elements of WMLScript
We will illustrate the WMLScript language in this chapter by examining several

examples. For a complete reference to the language syntax, please refer to the
WMLScript reference and documentation that come with the UP.Simulator.The
UP.Simulator can be downloaded from Openwave at nwave
.com/download/license_41.html.
Examining WMLScript Syntax
WMLScript is a case-sensitive language.That is, proper capitalization of keywords
and function names from libraries is required. It ignores white space, new lines
and tabs. Each statement in a WMLScript program is terminated by a semicolon
(;), for example:
result *= i;
www.syngress.com
Figure 4.2 How WML Interacts with WMLScript
159_wg_wi_04 10/22/01 4:34 PM Page 141

×