WML is een markup taal gebaseerd op Extensible Markup Language (XML). XML, net als HTML, is een Standardized Generalized Markup Language (SGML) variant. Het WAP Forum heeft een formele Document Type Definition (DTD) voor WML op:
De WML taal definieert elementen en attributen die een gebruikers-interface, zogenaamde cards, specificeren. Deze zien gebruikers op hun mobiele telefoon. Zoals een web-browser van één pagina naar een andere kan navigeren, kan een mobiele telefoon van één card naar een andere gaan.
Een card kan meerdere gebruikrs-handelingen (acties) specificeren door het volgende toe te voegen:
input
elementen--de gebruiker kan tekst
invoeren
select
elementen--de gebruiker kan kiezen
uit een lijst met opties
fieldset
elementen--die andere elementen
organiseert De kleinste eenheid WML die je via een telefoon kunt verzenden is een deck--één of meer cards die een gebruiker waarschijnlijk als geheel wil bekijken. Als de telefoon een WML deck ontvangt, laat het de inhoud van de eerste card zien en geeft de gebruiker de mogelijkheid om te reageren. Afhankelijk van de card definitie, kan de gebruiker antwoorden door tekst in te voeren of een keuze uit een menu te maken. Telefoons met groetere schermen zullen een card als één scherm laten zien, kleinere zullen cards als verzameling schermpjes laten zien.
NB De UP.Link platform ondersteunt zg. digests die meerdere decks verpakt in één HTTP aanvraag. Voor meer informatie over het gebruik hiervan, zie Hoofdstuk 3.
De globale vorm voor een WML deck is als volgt:
access
control and meta information
deck-level
event bindings
card-level
event bindings
De meeste WML elementen hebben één of meer attributes, waarvan sommige verplicht zijn (vetgedrukt) en sommige optioneel. Attributen laten je extra informatie geven over hoe het element verwerkt moet worden. Hoewel de exacte vorm (syntax) van een WML regel afhangt van de inhoud van het element, worden attributen altijd binnen de start tag gezet, zoals je hieronder ziet:
Je moet attributen tussen enkele ('
) of
dubbele ("
) aanhalingstekens zetten en alle attribuutwaarden scheiden
door witruimte (spatie, tab, of enter karakters). Witruimte is echter
niet toegestaan, tussen de attribuutnaam, gelijkteken en attribuutwaarde.
Zoals HTML, gebruikt WML de afdrukbare 8-bit karakter set en converteert één of meer enters, tabs of spaties naar een enkele spatie. In tegenstelling tot HTML, maakt WML wel onderscheid tussen kleine letters en hoofletters--alle WML elementen moeten in kleine letters gegeven worden. De voorbeelden in deze cursus gebruiken enters en tabs voor leesbaarheid, maar die opmaak is niet verplicht. Sterker nog, de UP.Link Server verwijdert ze voordat de WML naar de telefoon wordt gestuurd. Commentaar kan zo:
<!-- Eerste regel commentaar. -->