User interface markup language

Last updated

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.

Contents

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

HTML

HTML which stands for HyperText Markup Language is a markup language used for building web pages to be displayed in a web browser. [1] It is often combined with CSS (for styling) and JavaScript (for interactivity). Most websites in the world are built using HTML as it is the standard language supported by web browsers. [2]

XFD

XFD, which stands for XML Form Definition is the user interface markup language behind STARLIMS product (), developed by Abbott Informatics. STARLIMS product has an entire ecosystem of runtime and design time tools to run and create visual forms using XFD language. STARLIMS v10 is powered by an XFD runtime developed using Microsoft .NET Framework and hosted in Internet Explorer browser. STARLIMS v11 introduces an additional XFD engine based on a server-side transformation engine that transforms the XFD into HTML5 compatible data designed to run on any HTML5 compliant browser. XFD is programmable in JavaScript based language.

QML

QML is a cross-platform markup language for creating hardware-accelerated OpenGL-powered user interfaces for devices ranging from mobile to desktop. QML interfaces are manipulated using the JavaScript language. QML is part of the Qt software framework.

MXML

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.

UIML

OASIS UIML is an XML-based standard user interface markup languages.[ citation needed ] It is an open standard where implementation is not restricted to a single vendor.

XUL

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.

UsiXML

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

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.

XAL

eXtensible Application Language is the Markup language of Nexaweb's Enterprise Web 2.0 Suite. Developers can use this language to define applications that will run as a Java Client or an Ajax Client.

SVG

Scalable Vector Graphics is a markup language for graphics proposed by the W3C [3] 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 superimposed upon another XML-compatible user interface markup language, such as XUL and XForms, as the graphics-rich portion of a user interface.

TUIX

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.

XAML

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 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 Archived 23 January 2021 at the Wayback Machine , with client support provided by a browser plugin that will render windows-like applications over an HTTP infrastructure with minimal bandwidth needs.

OpenLaszlo (LZX)

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.

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 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:

<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.

MARIA

MARIA is a universal, declarative, multiple abstraction level, XML-based language for modelling interactive applications in ubiquitous environments.

FXML

FXML is a XML-based language for defining the user interface of JavaFX applications.

Other

Other markup languages incorporated into existing frameworks are:

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 cockpits.

Borland VCL forms (.dfm and .lfm) are text files describing the windows of Delphi and Lazarus applications. They are compiled into the final executable in binary format, and use RTTI to function.

See also

Related Research Articles

Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

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.

Web standards are the formal, non-proprietary standards and other technical specifications that define and describe aspects of the World Wide Web. In recent years, the term has been more frequently associated with the trend of endorsing a set of standardized best practices for building web sites, and a philosophy of web design and development that includes those methods.

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.

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 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 Open-source Ajax web application framework

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.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">JavaFX</span> Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android, through Gluon Mobile.

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.

<span class="mw-page-title-main">Apache Pivot</span> Open-source platform for building applications in Java

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.

<span class="mw-page-title-main">Boxy SVG</span> Vector graphics editor

Boxy SVG is a proprietary vector graphics editor for creating illustrations, as well as logos, icons, and other elements of graphic design. It is primarily focused on editing drawings in the SVG file format. The program is available as both a web app and a desktop application for Windows, macOS, ChromeOS, and Linux-based operating systems.

References

  1. "HTML basics - Learn web development | MDN". developer.mozilla.org. 29 August 2023. Archived from the original on 23 January 2024. Retrieved 23 January 2024.
  2. ""HTML" | Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Archived from the original on 23 January 2024. Retrieved 23 January 2024.
  3. "Scalable Vector Graphics (SVG) 2". w3.org. Archived from the original on 27 January 2017. Retrieved 23 January 2024.