WML

Wireless Mark-up Language

Services
Introduced in R99
Wireless Mark-up Language (WML) is a markup language based on XML, designed for specifying content and user interfaces for mobile devices with limited capabilities. It was part of the Wireless Application Protocol (WAP) suite, enabling basic web-like services on early mobile phones.

Description

Wireless Mark-up Language (WML) is an XML-based language that defines the structure, presentation, and interaction of content delivered to mobile devices. It is a core component of the Wireless Application Protocol (WAP) version 1.x architecture. WML documents, called 'deck's, consist of multiple 'card's. A deck is the unit of transmission, while a card represents a single screen of information or interaction on the device. This structure optimizes for the constrained memory and processing power of early mobile phones by allowing multiple screens of content to be sent in a single transaction.

WML works by being authored by content providers and then delivered via a WAP gateway. The user's WAP-enabled mobile device contains a WML browser (micro-browser). The device requests a URL, which is routed through the WAP gateway. The gateway fetches the WML content from the origin server (possibly converting from HTTP to WAP protocols), and transmits it to the device using the Wireless Session Protocol (WSP). The micro-browser then parses the WML, renders the specified cards, and handles user interactions like navigating between cards or submitting inputs. WML includes elements for text, images, input fields, anchors for navigation, and event handling for tasks like soft-key presses.

Key components of the WML ecosystem include the WML script itself, the WML browser on the client, the WAP gateway acting as an intermediary and protocol translator, and the content servers. WML's role in the network was to enable a lightweight, standardized way to provide interactive information services—such as news, email, simple transactions, and corporate applications—to mass-market mobile phones before the advent of full HTML browsers and high-speed data connections. It was a crucial step in bringing the internet experience to the mobile world.

Purpose & Motivation

WML was created to address the fundamental limitations of early mobile devices and networks for accessing information services. Mobile phones in the late 1990s and early 2000s had very small screens, limited memory, low processing power, and data connections were slow and expensive (using GSM CSD or early GPRS). Full HTML and heavy web protocols were impractical. The Wireless Application Protocol (WAP) suite, including WML, was developed to create a streamlined alternative.

Its purpose was to define a content format that was optimized for these constraints: binary encoded for efficient transmission, structured into cards/decks to minimize round-trips, and with a simple set of tags suitable for basic displays and interactions. This solved the problem of how to deliver interactive content to millions of basic phones, enabling the first wave of mobile internet services. It provided a standardized language so that content developers, handset manufacturers, and network operators could all interoperate, fostering the growth of the mobile data ecosystem before the technology evolved to support true mobile web browsing.

Key Features

  • XML-based syntax for defining mobile content structure
  • Deck and card model for bundling multiple screens
  • Support for text, images, input fields, and navigation anchors
  • Event handling for device-specific interactions (e.g., soft keys)
  • Binary encoding (WMLC) for compact transmission over wireless links
  • Designed for rendering on low-memory micro-browsers

Evolution Across Releases

R99 Initial

WML was included in 3GPP specifications as part of the WAP 1.x service framework. It was defined for use in basic mobile browsing services over 2G and early 3G networks, establishing the standard content format for the 3GPP-defined Mobile Station Application Execution Environment (MExE) and other service enablers.

Defining Specifications

SpecificationTitle
TS 22.112 3GPP TS 22.112
TS 22.945 3GPP TS 22.945
TS 23.140 3GPP TS 23.140
TS 23.141 3GPP TS 23.141
TS 26.234 3GPP TS 26.234
TS 31.113 3GPP TR 31.113