User interface markup language
Encyclopedia
A user interface markup language is a markup language
that renders and describes graphical
user interface
s 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.
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 runtime
s 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, which tend to rely upon a web browser's layout engine
as a runtime, most of the code is re-interpreted to the layout engine as JavaScript; this means that JavaScript can be used to extend the user interface markup languages to extents that are not covered by the present functionality of the layout engine.
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.
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.
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 a background in web programming and/or design.
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.
Enterprise Web 2.0 Suite. Developers can use this language to define applications that will run as a Java
Client or an Ajax
Client.
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.
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.
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 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.
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.
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
with a button element:
WasabiXML supports many GUI elements including:
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.
is a universal, declarative, multiple abstraction level, XML
-based language for modelling
interactive applications in ubiquitous environments.
Please add information object Apple's Interface Builder .xib format
Some of these are compiled into binary forms.
In avionics
, the ARINC 661
standard prescribes a binary format to define user interfaces in glass cockpit
s.
Markup language
A markup language is a modern system for annotating a text in a way that is syntactically distinguishable from that text. The idea and terminology evolved from the "marking up" of manuscripts, i.e. the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts...
that renders and describes graphical
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
s and controls. Many of these markup languages are dialects of XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
and are dependent upon a pre-existing scripting language
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...
engine, usually a JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
engine, for rendering of controls and extra scriptability.
The concept of the user interface markup languages is primarily based upon the desire to prevent the "re-invention of the wheel
Reinventing the wheel
To reinvent the wheel is to duplicate a basic method that has already previously been created or optimized by others.The inspiration for this idiomatic metaphor lies in the fact that the wheel is the archetype of human ingenuity, both by virtue of the added power and flexibility it affords its...
" 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
Reusability
In computer science and software engineering, reusability is the likelihood a segment of source code that can be used again to add new functionalities with slight or no modification...
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 runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...
s 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, which tend to rely upon a web browser's layout engine
Layout engine
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...
as a runtime, most of the code is re-interpreted to the layout engine as JavaScript; this means that JavaScript can be used to extend the user interface markup languages to extents that are not covered by the present functionality of the layout engine.
MXML
MXMLMXML
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 Internet applications, with products such as Adobe Flex....
is the XML-based user interface markup language introduced by Macromedia in March 2004. It is now part of the Open Source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
(http://opensource.adobe.com) Adobe Flex
Adobe Flex
Adobe Flex is a software development kit released by Adobe Systems for the development and deployment of cross-platform rich Internet applications based on the Adobe Flash platform...
SDK version 4. MXML files compile into Flash SWF
SWF
SWF is an Adobe Flash file format used for multimedia, vector graphics and ActionScript. Originating with FutureWave Software, then transferred to Macromedia, and then coming under the control of Adobe, SWF files can contain animations or applets of varying degrees of interactivity and function.,...
via the Flex SDK, and are rendered either on the internet browser, via Adobe Flash
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...
plug-in, or as stand-alone cross-platform applications, via the Open Source Adobe AIR SDK.
UIML
UIMLUIML
UIML is an XML language for defining user interfaces on computers.Basically UIML tries to reduce the work needed to develop user interfaces. It allows you to describe the user interface in declarative terms and abstract it...
is the earliest pioneer in user interface markup languages. It is an open standard
Open standard
An open standard is a standard that is publicly available and has various rights to use associated with it, and may also have various properties of how it was designed . There is no single definition and interpretations vary with usage....
where implementation is not restricted to a single vendor. However, it doesn't attract much attention.
XUL
The primary interface language of Mozilla FoundationMozilla Foundation
The Mozilla Foundation is a non-profit organization that exists to support and provide leadership for the open source Mozilla project. The organization sets the policies that govern development, operates key infrastructure and controls trademarks and other intellectual property...
products is XUL
XUL
In computer programming, XUL , the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox...
. XUL documents are rendered by the Gecko
Gecko (layout engine)
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla Corporation , as well as in many other open source software projects....
engine, which also renders XHTML
XHTML
XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written....
and SVG
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...
documents. It cooperates with many existing standards and technologies, including CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
, JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
, DTD
Document Type Definition
Document Type Definition is a set of markup declarations that define a document type for SGML-family markup languages...
and RDF
Resource Description Framework
The Resource Description Framework is a family of World Wide Web Consortium specifications originally designed as a metadata data model...
, which makes it relatively easy to learn for people with a background in web programming and/or design.
WTKX
WTKX is an XML-based markup language used for building Apache PivotApache Pivot
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.-Architecture:Its classes are divided in the following categories:...
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.
XAL
eXtensible Application Language is the Markup language of Nexaweb'sNexaweb
Nexaweb offers application modernization software and services that target client/server applications developed using popular 4GL tools such as PowerBuilder...
Enterprise Web 2.0 Suite. Developers can use this language to define applications that will run as a Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
Client or an Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
Client.
SVG
Scalable Vector GraphicsScalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...
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
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
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
XUL
In computer programming, XUL , the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox...
and XForms
XForms
XForms is an XML format for the specification of a data processing model for XML data and user interface for the XML data, such as web forms...
, as the graphics-rich portion of a user interface.
TUIX
TUIX is an XML based markup language for defining user interfaces in TribiqTribiq
Tribiq is a UK-based consultancy specializing in custom web site design and development. Tribiq is the trading name for Tribal Limited , and was previously called Tribal Internet.The company was founded in 1996...
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.
XAML
XAML is a markup system that underlies user interface components of Microsoft's .NET framework.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
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 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
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.OpenLaszlo (LZX)
OpenLaszloOpenLaszlo
OpenLaszlo is an open source platform for the development and delivery of rich Internet applications. It is released under the Open Source Initiative-certified Common Public License ....
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.
HMVCUL
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
WasabiXML is an XML markup language that is used to define the graphical interface in WasabiWasabi (software)
Wasabi is a "mostly open source" cross-platform application framework and skinnable GUI toolkit. It was developed as the framework for Winamp3, but designed to be flexible and extensible enough to be useful for other programs. Although most of Wasabi was zlib licensed, it depended on code still...
powered applications. It is most commonly used with Winamp
Winamp
Winamp is a media player for Windows-based PCs and Android devices, written by Nullsoft, now a subsidiary of AOL. It is proprietary freeware/shareware, multi-format, extensible with plug-ins and skins, and is noted for its graphical sound visualization, playlist, and media library features.Winamp...
for making Winamp skins
Skin (computing)
In computing, a skin is a custom graphical appearance achieved by the use of a graphical user interface that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users....
. WasabiXML had been developed by Nullsoft
Nullsoft
Nullsoft, Inc. is a software house founded in Sedona, Arizona in 1997 by Justin Frankel. Its most known products include the Winamp media player and the SHOUTcast MP3 streaming media server. In recent years, their open source installer system, NSIS, has also risen in popularity as a widely used...
for Winamp, but it is also usable with other applications with the Wasabi SDK.
The root element in WasabiXML is
(for Winamp skins, it is also
). The
element shows the information for a skin. The graphical interface is held by the
element and the basic viewable GUI element is
. Following is an example for a simple GUIGui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
with a button element:
WasabiXML supports many GUI elements including:
used in conjunction with
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
powered by a MAKIMaki
is a native Okinawan musician in Japan who was formerly the vocalist and songwriter for the Okinawa-based band High and Mighty Color. She was the youngest member of the band. She has an older brother who introduced her to the world of music and anime...
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.
MARIA
MARIAMARIA XML
MARIA is a universal, declarative, multiple abstraction level, XML-based language for modelling interactive applications in ubiquitous environments....
is a universal, declarative, multiple abstraction level, XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
-based language for modelling
User Interface Modeling
User interface modeling is a development technique used by computer application programmers. Today's user interfaces are complex software components, which play an essential role in the usability of an application...
interactive applications in ubiquitous environments.
Other
Other markup languages incorporated into existing frameworks are:- VTMLVTMLVisual Tool Markup Language, a user interface markup language used by Macromedia HomeSite, ColdFusion Studio and JRun Studio.VTML is used for tag editors and custom dialogs shipped with these applications and can be used to extend the user interface and to support additional tag-based languages.It...
for Macromedia HomeSiteMacromedia HomeSiteHomeSite was an HTML editor owned by Adobe Systems . Unlike WYSIWYG HTML editors such as Microsoft FrontPage and Adobe Dreamweaver, HomeSite was designed for direct editing, or "hand coding," of HTML and other website languages...
Please add information object Apple's Interface Builder .xib format
Some of these are compiled into binary forms.
In avionics
Avionics
Avionics are electronic systems used on aircraft, artificial satellites and spacecraft.Avionic systems include communications, navigation, the display and management of multiple systems and the hundreds of systems that are fitted to aircraft to meet individual roles...
, the ARINC 661
Arinc 661
ARINC 661 is a standard which aims to normalize the definition of a Cockpit Display System , and the communication between the CDS and User Applications which manage Aircraft avionics functions...
standard prescribes a binary format to define user interfaces in glass cockpit
Glass cockpit
A glass cockpit is an aircraft cockpit that features electronic instrument displays, typically large LCD screens, as opposed to the traditional style of analog dials and gauges...
s.
See also
- User Interface ModelingUser Interface ModelingUser interface modeling is a development technique used by computer application programmers. Today's user interfaces are complex software components, which play an essential role in the usability of an application...
- Layout engineLayout engineA web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...
- Widget toolkitWidget toolkitIn computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces...
- List of user interface markup languages
- Comparison of user interface markup languagesComparison of user interface markup languagesThe following tables compare general and technical information for a number of user interface markup languages. Please see the individual markup languages' articles for further information...
- Interface description languageInterface description languageAn interface description language , or IDL for short, is a specification language used to describe a software component's interface...