Un lenguaje de marcado de interfaz de usuario es un lenguaje de marcado que representa y describe controles e interfaces gráficas de usuario . Muchos de estos lenguajes de marcado son dialectos de XML y dependen de un motor de lenguaje de programación preexistente , normalmente un motor de JavaScript , para representar los controles y ofrecer más capacidad de programación.
El concepto de lenguajes de marcado de interfaz de usuario se basa principalmente en el deseo de evitar la " reinvención de la rueda " en el diseño, desarrollo y funcionamiento de una interfaz de usuario; dicha reinvención se produce en forma de codificación de un script para toda la interfaz de usuario. El lenguaje de marcado de interfaz de usuario típico solidifica el código de programa o script que se reutiliza con frecuencia en forma de marcado, lo que facilita centrarse en el diseño de una interfaz de usuario en un dialecto comprensible en lugar de centrarse en la función.
Los lenguajes de marcado de interfaz de usuario, como la mayoría de los lenguajes de marcado y programación, dependen de los entornos de ejecución de subaplicaciones para interpretar y representar el código de marcado como código de programa que se puede procesar y presentar en la forma deseada. En los lenguajes de marcado de interfaz de usuario basados en XML, el marcado se interpreta y representa normalmente como un árbol de nodos que se pueden manipular en tiempo de ejecución mediante el código de la aplicación o un script de usuario cargado dinámicamente .
HTML, que significa Hyper Text Markup Language , es un lenguaje de marcado que se utiliza para crear páginas web que se mostrarán en un navegador web . [1] A menudo se combina con CSS (para el estilo) y JavaScript (para la interactividad). La mayoría de los sitios web del mundo se crean con HTML, ya que es el lenguaje estándar compatible con los navegadores web. [2]
XFD, que significa X ML Form Definition , es el lenguaje de marcado de interfaz de usuario detrás del producto STARLIMS ([1]), desarrollado por Abbott Informatics. El producto STARLIMS tiene un ecosistema completo de herramientas de tiempo de ejecución y tiempo de diseño para ejecutar y crear formularios visuales utilizando el lenguaje XFD. STARLIMS v10 está impulsado por un entorno de ejecución XFD desarrollado con Microsoft .NET Framework y alojado en el navegador Internet Explorer. STARLIMS v11 presenta un motor XFD adicional basado en un motor de transformación del lado del servidor que transforma el XFD en datos compatibles con HTML5 diseñados para ejecutarse en cualquier navegador compatible con HTML5. XFD es programable en lenguaje basado en JavaScript.
QML es un lenguaje de marcado multiplataforma para crear interfaces de usuario aceleradas por hardware basadas en OpenGL para dispositivos que van desde dispositivos móviles hasta computadoras de escritorio. Las interfaces QML se manipulan utilizando el lenguaje JavaScript. QML es parte del marco de software Qt .
MXML es el lenguaje de marcado de interfaz de usuario basado en XML introducido por Macromedia en marzo de 2004. Ahora es parte de la versión 4 del SDK de código abierto Adobe Flex (http://opensource.adobe.com). Los archivos MXML se compilan en Flash SWF a través del SDK de Flex y se representan en el navegador de Internet, a través del complemento de Adobe Flash , o como aplicaciones independientes multiplataforma, a través del SDK de código abierto Adobe AIR .
OASIS UIML es un lenguaje de marcado de interfaz de usuario estándar basado en XML. [ cita requerida ] Es un estándar abierto donde la implementación no está restringida a un solo proveedor.
El lenguaje de interfaz principal de los productos de Mozilla Foundation es XUL . Los documentos XUL son procesados por el motor Gecko , que también procesa documentos XHTML y SVG . Coopera con muchos estándares y tecnologías existentes, incluidos CSS , JavaScript , DTD y RDF .
UsiXML (que significa User Interface Extensible Markup Language ) es un lenguaje de marcado compatible con XML que describe la interfaz de usuario para múltiples contextos de uso, como interfaces de usuario de caracteres (CUI), interfaces gráficas de usuario (GUI), interfaces de usuario auditivas e interfaces de usuario multimodales. En otras palabras, las aplicaciones interactivas con diferentes tipos de técnicas de interacción, modalidades de uso y plataformas informáticas se pueden describir de una manera que preserve el diseño independientemente de las características peculiares de la plataforma informática física.
WTKX es un lenguaje de marcado basado en XML que se utiliza para crear aplicaciones Apache Pivot . Aunque se utiliza más comúnmente para definir la estructura de la interfaz de usuario de una aplicación, se puede utilizar para construir de forma declarativa cualquier tipo de jerarquía de objetos Java.
El lenguaje de aplicación extensible es el lenguaje de marcado de la suite Enterprise Web 2.0 de Nexaweb. Los desarrolladores pueden utilizar este lenguaje para definir aplicaciones que se ejecutarán como un cliente Java o un cliente Ajax .
Scalable Vector Graphics es un lenguaje de marcado para gráficos propuesto por el W3C [3] que puede soportar gráficos enriquecidos para aplicaciones web y móviles. Si bien SVG no es un lenguaje de interfaz de usuario, incluye soporte para gráficos vectoriales/rasterizados, animación, interacción con el DOM y CSS, medios integrados, eventos y capacidad de scripting. Cuando se utilizan estas características en combinación, es posible lograr interfaces de usuario enriquecidas.
SVG también se puede superponer a otro lenguaje de marcado de interfaz de usuario compatible con XML, como XUL y XForms , como la parte rica en gráficos de una interfaz de usuario.
TUIX es un lenguaje de marcado basado en XML para definir interfaces de usuario en Tribiq CMS. Los desarrolladores pueden definir tanto la apariencia de las interfaces como sus interacciones. Los archivos TUIX de diferentes complementos se fusionan antes de la renderización, lo que facilita la modificación de las interfaces existentes y la incorporación de nuevas funciones.
XAML es un sistema de marcado que se encuentra en la base de los componentes de interfaz de usuario de .NET Framework 3.0 y versiones posteriores de Microsoft. Su alcance es más ambicioso que el de la mayoría de los lenguajes de marcado de interfaz de usuario, ya que la lógica y los estilos del programa también están integrados en el documento XAML . Funcionalmente, se puede considerar como una combinación de XUL, SVG, CSS y JavaScript en un único esquema XML.
Algunas personas critican este diseño, ya que existen muchos estándares (como los que ya se mencionaron) para hacer estas cosas. Sin embargo, se espera que se desarrolle con una herramienta visual donde los desarrolladores ni siquiera necesiten comprender los marcados subyacentes.
I3ML es un mecanismo de entrega de aplicaciones de cliente ligero patentado desarrollado por CoKinetic Systems Corp Archivado el 23 de enero de 2021 en Wayback Machine . El soporte del cliente lo proporciona un complemento del navegador que renderizará aplicaciones similares a Windows a través de una infraestructura HTTP con necesidades mínimas de ancho de banda.
OpenLaszlo es un entorno de ejecución que comprende un entorno de ejecución y un lenguaje de definición de interfaz (Laszlo XML - LZX). LZX es un lenguaje de interfaz de usuario declarativo que define los widgets, el diseño de la aplicación y los elementos de scripting (usando JavaScript) para crear su aplicación. LZX es independiente del entorno de ejecución y el entorno de ejecución compatible actualmente es Macromedia/Adobe Flash. Un entorno de ejecución experimental llamado Laszlo "Legals" permitirá que las aplicaciones OpenLaszlo (LZX) se ejecuten en múltiples entornos de ejecución, como DHTML/AJAX.
El lenguaje de interfaz de usuario de controlador de vista de modelo jerárquico ( HMVCUL ) es un lenguaje de interfaz de usuario de marcado XML que admite la creación y el encadenamiento de componentes de tríada MVC atómicos utilizados en la construcción de aplicaciones GUI HMVC . El entorno de ejecución asociado proporciona métodos que permiten la configuración de propiedades, enlace de datos y eventos de cada uno de los elementos de la tríada MVC (widget, controlador, modelo). El entorno de ejecución logra esto asignando elementos XML definidos en un archivo HMVCUL a objetos dentro del marco, atributos a propiedades o eventos. El encadenamiento se logra siguiendo la estructura de árbol descrita dentro del archivo HMVCUL.
WasabiXML es un lenguaje de marcado XML que se utiliza para definir la interfaz gráfica en aplicaciones basadas en Wasabi . Se utiliza más comúnmente con Winamp para crear máscaras de Winamp . WasabiXML fue desarrollado por Nullsoft para Winamp, pero también se puede utilizar con otras aplicaciones con el SDK de Wasabi .
El elemento raíz de WasabiXML es <WasabiXML>
(en el caso de las máscaras de Winamp, también es <WinampAbstractionLayer>
). El <skininfo>
elemento muestra la información de una máscara. La interfaz gráfica está contenida en el <container>
elemento y el elemento básico de la GUI visible es <layout>
. A continuación, se muestra un ejemplo de una GUI simple con un elemento de botón:
<?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> Alguna persona </author> <email> [email protected] </email> <homepage> http://www.example.org </homepage> </skininfo> <include file= "xml/color-sys.xml" /> <!-- Incluir un archivo --> <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> </contenedor> </WinampAbstractionLayer>
WasabiXML admite muchos elementos GUI, incluidos:
<button>
<text>
<vis>
<eqvis>
<layer>
<animatedlayer>
<groupdef>
utilizado en conjunción con<group>
<groupdef>
permite al desarrollador definir un grupo de objetos GUI que se pueden reutilizar en cualquier parte del diseño. Wasabi también admite XUI, que no son más que <groups>
un script MAKI que permite a los desarrolladores crear sus propios componentes GUI (widgets), lo que aumenta la modularidad.
WasabiXML tiene un espacio de nombres XML 'Wasabi::' que define GUI comunes sin necesidad de declarar sus rutas de imágenes.
MARIA es un lenguaje universal, declarativo , de múltiples niveles de abstracción y basado en XML para modelar aplicaciones interactivas en entornos ubicuos .
FXML es un lenguaje basado en XML para definir la interfaz de usuario de aplicaciones JavaFX .
Otros lenguajes de marcado incorporados en los marcos existentes son:
Formato .xib de Interface Builder de Apple
Algunos de estos se compilan en formas binarias.
En aviónica , el estándar ARINC 661 prescribe un formato binario para definir interfaces de usuario en cabinas de cristal .
Los archivos de texto de Borland VCL (.dfm y .lfm) describen las ventanas de las aplicaciones Delphi y Lazarus . Se compilan en el ejecutable final en formato binario y utilizan RTTI para funcionar.