Handheld Device Markup Language is a language first created by Phone.com (now OpenWave) because the 'big' phone companies took far too long to decided on a better standard. So they stepped in and used HDML as a stop-gap measure until the other guys stopped their bickering long enough to agree on WAP and WML.

HDML, from a Markup Language Standpoint, is very close to WML. This was intentional so it would be easier for HDML authors to move to WML when the time came and, since they're both XML subsets, it just makes sense.

HDML pages are based on the concept of card decks, much like thing like Hypercard, only in XML this time, and so multiple cards are enclosed into a deck and a browser can move through them, maintaining its state as it goes. Without going into too much symantec detail, HDML is a very simple language, if a bit monotonous.

It also has a hand-hold above WAP because, unlike WAP, HDML doesn't have special features that hinge on a specific server to function -- HDML pages can be served from any web server, only requiring minor tweaking to make sure the MIME-Types are correct (WAP can do this too, but you loose some features). This saves a lot of time and hassle (and money), though if you were using a real WAP server, you can do much more sophisitcated things that some projects demand (like built-in sessions, better security, 'push', etc)