The following is a list of user interface markup languages.
See also Open Source XML UI Toolkits in Java
EMML is a declarative Mashup Domain Specific Language (DSL) aimed at creating enterprise mashups. The EMML language provides a rich set of high-level mashup-domain vocabulary to consume and mash variety of Web data-sources in interesting ways. EMML provides a uniform syntax to invoke heterogeneous service styles: REST, WSDL, RSS/ATOM, RDBMS, and POJO. EMML also provides ability to mix and match diverse data-formats : XML, JSON, JDBC, JavaObjects, and primitive types.
OpenLaszlo is a runtime environment that comprises a runtime environment and an interface definition language (Laszlo XML - LZX). LZX is a declarative user interface language which defines the widgets, application layout and scripting elements (using JavaScript) to create your application. LZX is runtime agnostic with the currently supported runtime being within Macromedia/Adobe Flash. An experimental runtime called Laszlo "Legals" that will allow OpenLaszlo (LZX) applications run in multiple runtime environments, such as DHTML/AJAX.
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.
SVG can also be super-imposed upon another XML-compatible user interface markup language, such as XUL and XForms, as the graphics-rich portion of a user interface.
UIML is the earliest pioneer in user interface markup languages. It is an open standard where implementation is not restricted to a single vendor. However, it doesn't attract much attention.
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 <WinampAbstractionLayer>
). The <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"?><WinampAbstractionLayerversion="1.2"><skininfo><version>1</version><name>mySkin</name><comment>OooLala</comment><author>SomePerson</author><email>info@example.org</email><homepage>http://www.example.org</homepage></skininfo><includefile="xml/color-sys.xml"/><!-- Include a file --><containerid="normal"><layoutid="normal"desktopalpha="true"><buttonx="0"y="0"id="button.normal"image="mybutton.image"hoverimage="mybutton.himage"downimage="mybutton.dimage"/></layout></container></WinampAbstractionLayer>
WasabiXML supports many GUI elements including:
<button>
<text>
<vis>
<eqvis>
<layer>
<animatedlayer>
<groupdef>
used in conjunction with <group>
<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.
XAML is a markup system that underlies user interface components of Microsoft's .NET Framework 3.0 and above. Its scope is more ambitious than that of most user interface markup languages, since program logic and styles are also embedded in the XAML document. Functionally, it can be seen as a combination of XUL, SVG, CSS, and JavaScript into a single XML schema.
Some people[ who? ] 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.
The primary interface language of Mozilla Foundation products is XUL. XUL documents are rendered by the Gecko engine, which also renders XHTML and SVG documents. It cooperates with many existing standards and technologies, including CSS, JavaScript, DTD and RDF, which makes it relatively easy to learn for people with background of web programming and design.
Other markup languages incorporated into existing frameworks are:
Some of these are compiled into binary forms.
In avionics, the ARINC 661 standard prescribes a binary format to define user interfaces in glass cockpits.
XUL, which stands for XML User Interface Language, is a user interface markup language developed by Mozilla. XUL is an XML dialect for writing graphical user interfaces, enabling developers to write user interface elements in a manner similar to web pages.
XForms is an XML format used for collecting inputs from web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common data manipulation tasks.
Extensible Application Markup Language is a declarative XML-based language developed by Microsoft for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XBL is an XML-based markup language for altering the behavior of XUL widgets. It was devised at Netscape in the late 1990s as an extension of XUL.
MXML is an XML-based user interface markup language first introduced by Macromedia in March 2004. Application developers use MXML in combination with ActionScript to develop rich web applications, with products such as Apache Flex.
A graphical user interface builder, also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements using a drag-and-drop WYSIWYG editor. Without a GUI builder, a GUI must be built by manually specifying each widget's parameters in the source code, with no visual feedback until the program is run. Such tools are usually called the term RAD IDE.
XRC, or XML Resource, or XML Based Resource System is a cross-platform XML-based user interface markup language used by wxWidgets. XRC allows graphical user interface elements, such as dialogs, menu bars and toolbars, to be stored as XML, which can be loaded into the application at run-time or translated into a target programming language and compiled.
The following tables compare general and technical information for some user interface markup languages. Please see the individual markup languages' articles for further information.
OpenLaszlo is a discontinued open-source platform for the development and delivery of rich web applications. It is released under the Open Source Initiative certified Common Public License (CPL).
A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.
The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit. To avoid confusion, it is now referred to as the Mozilla application framework.
ARINC 661 is a standard which aims to normalize the definition of a Cockpit Display System (CDS), and the communication between the CDS and User Applications (UA) which manage aircraft avionics functions. The GUI definition is completely defined in binary Definition Files (DF).
qooxdoo is an open-source Ajax web application framework. It is an LGPL- and/or EPL-licensed client-side and server-agnostic solution, and includes support for professional JavaScript development, a graphical user interface (GUI) toolkit and high-level client-server communication.
ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.
EMML, or Enterprise Mashup Markup Language, is an XML markup language for creating enterprise mashups, which are software applications that consume and mash data from variety of sources. These applications often perform logical or mathematical operations as well as present the data.
Apache Pivot is an open-source platform for building rich web applications in Java or any JVM-compatible language. It is released under the Apache License version 2.0.