首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

创建一种声明性 XML UI 语言 -1

创建一种声明性 XML UI 语言 -1

简介GUI 开发可能是令人畏惧的任务。GUI 框架并不是总是拥有良好的文档,需要的代码量可能迅速增长,拖慢开发工作流。特别是支持这些 GUI 框架的拖放工具和 IDE 通常诱使 GUI 软件开发人员创建难以管理和阅读的代码。这可能会进一步混淆业务逻辑和 GUI 描述代码之间的界限,从而使软件维护更加困难。   
常用缩略词
  • API:应用程序编程接口
  • DOM:文档对象模型
  • GUI:图形用户界面
  • HTML:超文本标记语言
  • IDE:集成开发环境
  • JAR:Java 压缩文档
  • UI:用户界面
  • URI:统一资源标识符
  • XML:可扩展标记语言
  • XSD:XML 模式信息集模型
  • W3C:万维网联盟

这就是声明性 UI 语言之所以方便的原因。UI 语言描述 “是什么”,而不是 “该如何”。例如, HTML 描述显示的内容,而不是描述用于呈现内容的呈现函数。声明性语言并不指定 “该如何”,从而省略了控制流。尽管这种省略听起来好像一种限制,但它实际上是一种优点,因为控制流的副作用 — 如修改全局状态(比如变量)或调用其它函数或方法 — 被消除了。选择声明性语言还有利于将 UI 代码和应用程序代码分隔开来。这种分离将来还能提供一些好处,比如明确区分项目和团队角色,这甚至有可能降低业务逻辑和多个视图或视图技术之间的集成成本。
目前正在使用的声明性 XML UI 的例子不在少数。使用 GNOME 桌面环境的 Linux® 和 UNIX® 操作系统有 Glade。Microsoft® Windows® 用户拥有 Extensible Application Markup Language (XAML),该语言支持丰富的功能,包括在 XML 中插入代码。Adobe® Flex® Framework 的 MXML 格式为 Adobe Shockwave (SWF) 播放器描述 GUI 并包含代码插入。参阅 参考资料 中的链接了解更多信息。   
Java 技术中的基本声明性 UI 框架的必要组件可能包括:
  • 验证:使用 XML Schema
  • 一个 DOM:处理具体事宜的自定义 DOM,比如同步 GUI 组件状态和 XML 节点状态
  • 持久性: GUI 的编组(marshalling)和解组(unmarshalling)
  • 图像数据:存储为
  • Swing 组件:GUI 开发常用的 Swing 组件的表示
下面可以创建声明性 XML 了,创建过程中要谨记上述必要组件。
声明性 XML第一个 XML 格式示例(见 )展示了一个简单的窗口、一个面板和一个按钮。 包含基本的必要属性,比如坐标、大小和引用单独内存组件的惟一标识符。
清单 1. 声明性 XML 概念
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<xui:XUI>
  <xui:Window id="window_0" name="Hello World" width="300" height="300" x="426"
    y="282" visible="true">
    <xui:GridLayout height="1" width="1"></xui:GridLayout>
    <xuianel id="panel_0" x="0" y="0" name="Hello Panel"
      width="1" height="1">
      <xui:GridLayout height="1" width="1"></xui:GridLayout>
        <xui:Button x="0" y="0" width="1" height="1" id="button_0"
          label="ress Me" enabled="true" selected="true" orientation="horizontal"/>
    </xuianel>
  </xui:Window>
  <xui:Resource type="java" class="ButtonModel" uri="model.jar"/>
</xui:XUI>

返回列表