The KUIML language lets you describe the structure of the user interface as well as its data model. It is a strongly typed, model-driven language. The purpose of the language is to be able to quickly write applications which, once loaded, produce as little runtime errors as possible.
KUIML is an XML dialect, with additional build-time capabilities implemented by Language Elements.
Starting with version 2.0, the data model can be accessed by scripts, in order to write more complex applications. Events have also been introduced to trigger several types of actions (including scripts), when the data model is modified, or when the user interacts with the application.
The User Interface can be composed of Layout Elements to simplify layout design, and Widgets that are the actual building blocks of the interaction with the end user.
User Interface Elements connect to the data model that can be either published by the application (see KUIML For Audio Plug-Ins for example) or described by Model Elements.
All elements (including widgets and layout elements) may also expose attributes that become part of the data model and can be connected together.
Additional Language Elements extend the core features of Xml to write KUIML user interfaces faster and improve code reuse.