A VoiceXML application is made up of one or more VoiceXML documents that together control the dialog with the caller. These documents typically consist of a single root document, and several leaf documents. Application specific information such as global commands, event handlers and global variables, are typically defined within the root document, while individual dialogs and local variables are placed in leaf documents. A leaf document indicates that it is part of a larger application by using the application attribute on the <vxml> element to specfy the URI of the application's root document.
VoiceXML documents are composed primarily of top-level elements called dialogs. There are two types of dialogs defined in the language: <form> and <menu>.