OUI

The Wireless FAQ

7.17 What are Openwave WML Extensions and how do they work?

"Openwave WML extensions" is a superset of "normal" WML which adds a few nice features. These features are supported by UP.Browsers 4.x and later which has been adopted by the great majority of mobile phones around the world such as Motorola, Siemens, Alcatel, Philips, to name a few.

The WML Extensions where introduced because, although WML is derived from Openwave's HDML, some of these functions are missing. Some of these are

  • Mobile-originated prefetch
  • Notifications and alerts (push)
  • Activities
  • In-line and built-in icons
  • Keyboard accelerators

    When faced with the challenge of migrating existing HDML sites while safeguarding the advanced features offered by HDML, Openwave introduced the WML extensions. The extensions make it possible to port an existing HDML site to WML without losing features.

    You can learn more about the WML Extensions from the WML 1.1 language reference that ships with the UP.SDK 4.x which also covers WML Extensions (look in C:\Program Files\Openwave\UPSDK40\docs\wmlref).

    These documents can also be found on the web at:

    Online versions (in HTML and PDF format) are also available on the Openwave Developer web site at this URL:

    In addition, Openwave publishes a cool whitepaper called: "Using WML with Openwave Extensions to Optimize Wireless Services" which is a "best practices" guide to using nested contexts and mobile originated pre-fetch features. You can find it here:

    The following tags/elements/attributes are available in the WML Extensions:

    Elements:

  • <link>
  • <spawn>
  • <exit>
  • <catch>
  • <throw>
    Attributes:
  • accesskey (now standard in WAP 1.2)
  • localsrc (technical speaking part of standard WML, but only supported by UP.Browser)

    WML Extensions do however not comply with the WAP Forum's DTD. When coding with the extensions, you will need to use a different DTD, or your applications will break. The following is the correct doctype declaration you should use:

    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://...">
    

    This DTD is a superset of the standard WML 1.1 DTD. This means that you can specify this DTD even if you are serving standard WML 1.1. All WAP-compliant browsers and gateways are required to support extended DTDs. At worst, extended language elements should be passed through (unencoded) by non-Openwave WAP gateways, and should be ignored by non-Openwave WAP browsers. For the <link> element, this should have no serious side effects on applications. However, an ignored <spawn> element could result in a disabled softkey, anchor, or select option on phones that do not support the <spawn> element. Therefore applications can avoid usability problems by serving WML with Openwave extensions only to phones that are running UP.Browser 4.x and later. Applications can check the WAP browser type and version by examining the USER_AGENT header in each HTTP request to the application server.

  • [ Main ]   [ 07 - Making it look fancy ]