XAL è l'acronimo di XML Automata Language. È un linguaggio per definire applicazioni orientate al web, e non, sotto forma di automi. Esso consente di definire un'applicazione come un insieme di stati, legati assieme da transizioni che "scattano" quando si verificano determinati eventi.
Una caratteristica di XAL è quella che consente di specificare esplicitamente dei vincoli temporali che vanno rispettati, affinchè determinate transizioni possano effettivamente avvenire.
A ciascuno stato, poi, andranno associate due "funzioni": una di azione e una di metrica. Vedremo poi che queste "funzioni" possono essere vere e proprie funzioni come intese al PHP, metodi di classi o chiamate a web service remoti.