1. A computer-implemented system for programming a unified messaging (UM) application, comprising: a user interface; a programming environment accessed via the user interface for composing in an eXtensible Markup Language (XML) a UM finite state machine (FSM) comprising menu states defined by a plurality of user prompts and transitions between user prompts, each transition defined by a particular user response to a prompt; a UM software component; and an XML feature utilized by the programming environment to create a valid menu state based upon the UM software component.