基于XML的用户界面标记语言 (1)

  • Post author:
  • Post category:其他


基于XML的界面资源标记语言,允许用户使用XML技术,将界面元素(例如对话框,菜单,工具条等等)以及相关信息写入XML资源文件中,在程序运行时,动态载入。从而赋予了应用程序更为强大的界面处理能力。采用基于XML的界面标记语言,开发者可以获得如下的好处:

1.当资源改变的时候,无需重新编译和链接应用程序

2. 将资源和代码分开的策略,使程序的设计和开发更具灵活性

3. 在运行时,可以动态地改变资源文件,从而改变应用程序的风格和外观

4.  使得用户界面程序可以跨平台运行

5. 实现外观,数据,以及程序逻辑的层次性划分

由上可知,基于XML的用户界面标记语言,能够为用户应用程序的开发模式带来近乎革命性的变革,尤其是微软在MSDN网站上通告了自己的XAML(XML Application Markup Language)语言之后,更引起了大家对这项技术的广泛关注。

下文就针对目前最受关注的两种用户界面标记语言XUL(XML User Interface Language)和XAML进行一些介绍和对比,希望能够引起大家对这项技术的分析和讨论。

1.什么是XUL

XUL也许是历史最久远也最广为人知的XML-based GUI language,它由mozilla基金会创建,其目的是为了快速开发mozilla项目的界面工作,目前mozilla suit的界面都是由xul实现的,包括Mozilla browser suite, 轻量级的浏览器Firebird, 邮件客户端Thunderbird 以及Netscape browser suite。 Safari

同样实现了 一些XUL,另外还有一个项目(Luxor toolkit)使用XUL为 Java Swing定义用户接口,其他的xul实现可以参考XUL Alliance。

2.XUL 简述

2.1 XUL的结构

XUL是一种标记语言,用来定义用户界面元素的布局,而界面的外观(颜色,字体等等)可以通过属性以及CSS和图片定义。

元素的行为则通过脚本ECMAScript定义,也可以使用编译的从c++通过AOM(是W3C的DOM扩展)与元素交互。行为与XUL元素的绑定是通过XBL技术实现的,该技术是由mozilla发布的,并已经向W3C提交。因此通过CSS或者DOM,便可为特定的元素绑定外观和行为。

目前XUL还不支持SVG,XForms,SMIL以及其他的UI相关的W3C技术,当然,没有理由以后还不支持,实际上目前已经有项目正在使mozilla支持SVG(要注意的是,在XAML中,微软使用了自己的矢量图像语言WVG,并且和SVG并不兼容,同样,还有一个和SMIL很相像的动画语言)。

XUL语言的tags由下列四种元素组成:

(1)布局元素(比如hbox,vbox,grid以及stack等)

(2)构件widgets(比如menulist,menubar,toolbar以及button等)

(3)命令,加速键(比如command以及keyset)

(4)xul模板(为UI绑定后台数据,使用RDF)

在Mozilla中处理XUL文件的过程,与显示一个HTML页面的过程很相似(尽管没有surrounding Window chrome),首先是XML文件被解析,将XUL文件中的标签构建为一棵DOM(Document Object Model)树,在这个过程中,相关联的CSS将被用来定义标签的外观,在建立布局对象之后,便可以将结果显示给用户了,例如是一个对话框,或者是一个窗体。

究其本质,XUL的核心还是比较简单的,它的目的便是采用XML语言对对话框以及窗体上GUI元素及其布局进行描述。

因此,要



版权声明:本文为myali88原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。