User interface markup language
The concept of the user interface markup languages is primarily based upon the desire to prevent the "re-invention of the wheel" in the design, development and function of a user interface; such re-invention comes in the form of coding a script for the entire user interface. The typical user interface markup language solidifies often re-used program or script code in the form of markup, making it easier to focus upon design of a user interface in an understandable dialect as opposed to focus on function.
User interface markup languages, like most markup and programming languages, rely upon sub-application runtimes to interpret and render the markup code as program code that can be processed and put out in the desired form. In XML-based user interface markup languages, the markup is usually interpreted and represented as a tree of nodes that may be manipulated at runtime by the application's code or dynamically loaded user script.
User interface markup languages
MXML is the XML-based user interface markup language introduced by Macromedia in March 2004. It is now part of the Open Source (http://opensource.adobe.com) Adobe Flex SDK version 4. MXML files compile into Flash SWF via the Flex SDK, and are rendered either on the internet browser, via Adobe Flash plug-in, or as stand-alone cross-platform applications, via the Open Source Adobe AIR SDK.
UsiXML (which stands for User Interface Extensible Markup Language) is an XML-compliant markup language that describes the UI for multiple contexts of use such as Character User Interfaces (CUIs), Graphical User Interfaces (GUIs), Auditory User Interfaces, and Multimodal User Interfaces. In other words, interactive applications with different types of interaction techniques, modalities of use, and computing platforms can be described in a way that preserves the design independently from peculiar characteristics of physical computing platform.
WTKX is an XML-based markup language used for building Apache Pivot applications. Though it is most commonly used for defining the structure of an application's user interface, it can be used to declaratively construct any type of Java object hierarchy.
Scalable Vector Graphics is a markup language for graphics proposed by the W3C that can support rich graphics for web and mobile applications. While SVG is not a user interface language, it includes support for vector/raster graphics, animation, interaction with the DOM and CSS, embedded media, events and scriptability. When these features are used in combination, rich user interfaces are possible.
TUIX is an XML based markup language for defining user interfaces in Tribiq CMS. Developers can define both the appearance of the interfaces and their interactions. The TUIX files from different Plugins are merged before rendering facilitating easy modification of existing interfaces and addition of new functionality.
Some people are critical of this design, as many standards (such as those already listed) exist for doing these things. However, it is expected to be developed with a visual tool where developers do not even need to understand the underlying markups.
I3ML is a proprietary thin client Application Delivery mechanism developed by CoKinetic Systems Corp, with client support provided by a browser plugin that will render windows-like applications over an HTTP infrastructure with minimal bandwidth needs.
Hierarchical Model View Controller User Interface Language (HMVCUL) is an XML markup user interface language which supports the creation and chaining of atomic MVC triad components used in constructing HMVC GUI applications. The associated runtime provides methods which enable configuration of properties, data binding and events of each of the MVC triad elements (widget, controller, model). The runtime accomplishes this by mapping XML elements defined in an HMVCUL file to objects inside the framework, attributes to properties or to events. Chaining is accomplished by following the tree structure described inside the HMVCUL file.
WasabiXML is an XML markup language that is used to define the graphical interface in Wasabi powered applications. It is most commonly used with Winamp for making Winamp skins. WasabiXML had been developed by Nullsoft for Winamp, but it is also usable with other applications with the Wasabi SDK.
The root element in WasabiXML is
<WasabiXML> (for Winamp skins, it is also
<skininfo> element shows the information for a skin. The graphical interface is held by the
<container> element and the basic viewable GUI element is
<layout>. Following is an example for a simple GUI with a button element:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <WinampAbstractionLayer version="1.2"> <skininfo> <version>1</version> <name>mySkin</name> <comment>Ooo Lala</comment> <author>Some Person</author> <email>email@example.com</email> <homepage>http://www.example.org</homepage> </skininfo> <include file="xml/color-sys.xml"/> <!-- Include a file --> <container id="normal"> <layout id="normal" desktopalpha="true"> <button x="0" y="0" id="button.normal" image="mybutton.image" hoverimage="mybutton.himage" downimage="mybutton.dimage" /> </layout> </container> </WinampAbstractionLayer>
WasabiXML supports many GUI elements including:
<groupdef>used in conjunction with
<groupdef> allows the developer to define a group of GUI objects which can be re-used anywhere in the skin. Wasabi also supports XUI's which are nothing but
<groups> powered by a MAKI script allowing developers to create GUI components (widgets) of their own adding to modularity.
WasabiXML has an XML namespace 'Wasabi::' which defines common GUI's without having the need to declare their image paths.
Other markup languages incorporated into existing frameworks are:
Apple's Interface Builder .xib format
Some of these are compiled into binary forms.