HDML: Handheld Device Markup Language

Rohit Khare (khare@pest.w3.org)
Thu, 20 Feb 97 11:20:55 -0500

--> http://www.uplanet.com/sdk/downloads/manuals/upref.pdf

"Unwired Planet" is working on web for wireless devices and has a number of
linkups. I find it amusing that their only documentation for HDML, a putative
SGML application, is in PDF format...



The Handheld Device Markup Language (HDML) is a complete and freely available
language specification used to develop UP.Phone applications and services.
HDML was designed to meet the following goals:

* Minimal learning curve for Web developers
* Compatible with all Web servers
* Small memory footprint in client device
* Efficient use of wireless network transport
* UI model suited to small display and keypad input
* Support for integrated phone features like voice

HDML addresses the constraints of pocket-size devices: a few lines of
display, a limited keypad, tens of kilobytes of memory and a wireless
connection to the Internet. HDML, like HTML, is an information publishing and
interaction description language. It takes only a few hours for a developer
fluent in HTML to become proficient in HDML.

HDML applications are both device- and network-independent. Developers can
write HDML applications without knowledge of the specifics of the target
UP.Phone or of the network transport. The same HDML application runs on all
UP.Phones and all compatible networks.

This standards-based approach makes HDML a natural extension of the Web. Any
Web site that can serve information to desktop computers can serve information
to UP.Phones. It is not necessary to modify the existing back-end
infrastructure, including networks, hardware, Web servers and database links,
to support HDML. As a result, developers can create applications in HDML to
access existing Web content for delivery to the mobile work force.

The HDML language provides a set of commands or statements that specify how
an UP.Phone interacts with a user. HDML statements display information on a
phone, provide input options for the user and specify how the phone responds
when the user presses keys. For example, an HDML statement can instruct a
phone to display a prompt and allow the user to enter text.

Whereas the fundamental structural unit of HTML is a page, in HDML the
fundamental unit is a deck of cards. Each HTTP response from a Web server to
an UP.Link is packaged in the form of a single HDML deck. A deck may contain
one or more cards, each of which specifies a single interaction between the
phone and the user. HDML currently supports the following types of cards:


The following HDML example defines a simple deck that contains a single
choice card. The resulting card is shown in the screen shot below.

<hdml version=0.1>
<choice key=cust name=card1>
<action goargs="?mode=view" label=View type=ACCEPT>
<action goargs="?mode=fax" label=Fax type=SOFT1>
<line>Cust Status
<ce value=ord>Orders
<ce value=bal>Balance