XUL & RDF

基本解释

XUL是英文“XML User Interface Language”的首字母缩写。它是为了支持Mozilla系列的应用程序(如Mozilla Firefox和Mozilla Thunderbird)而开发的使用者界面标示语言。顾名思义,它是一种应用XML来描述使用者界面的标示语言。XUL可以读作“zool”,即类似“cool”的发音。
虽然XUL并不是一种公开的标准,但它重用了许多现有的标准和技术,包括CSS、JavaScript、DTD和RDF等。所以对于有网络编程和设计经验的人士来说,学习XUL比学习其他使用者界面标示语言相对简单。
使用XUL的主要好处在于它提供了一套简易和跨平台的widget定义。这节省了 编程人员在开发软件时所付出的努力。

编辑本段引言

一个XUL界面一般包含以下三个部份:
内容: 定义使用者界面的XUL档
Skin: 定义程序外观的CSS和图像档
Locale: 定义界面字串的DTD档(为了软件本地化)

编辑本段应用

虽然XUL的设计原意是为了创做Mozilla程序及其扩充套件,但事实上人们也能利用它来编写基于HTTP的网络应用程序。基本安全性的原则,很多需要特权的 XPCOM物件在无特权的XUL文件上都不能使用。唯有使用 数码签署的脚本才享有此种特权。就算如此,这些文件亦受 网页浏览器的限制,例如不能加载远端的XUL、DTD和RDF文件。

DTD(Document Type Definition) 是一套关于标记符的语法规则。它是XML1.0版规格的一部分,是XML文件的验证机制,属于XML文件组成的一部分。DTD 是一种保证XML文档格式正确的有效方法,可通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能成为数据交换标准,因为不同的公司只需定义好标准DTD,各公司都能依DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。DTD文件是一个ASCII文本文件,后缀名为。dtd

RDF(Resource Description Framework), 一种用于描述Web资源的标记语言。RDF是一个处理元数据的XML应用,所谓元数据,就是“描述数据的数据”或者“描述信息的信息”。也许这样解释元数据有些令人难以理解,举个简单的例子,书的内容是书的数据,而作者的名字、出版社的地址或版权信息就是书的元数据。数据和元数据的划分不是绝对的,有些数据既可以作为数据处理,也可以作为元数据处理,例如可以将作者的名字作为数据而不是元数据处理。

例子:

这是最令开发人员憎恶的应用程序部分。创建用户界面非常繁琐,但是 XUL 使这变得很容易。XUL 有许多控件,用于创建部件和指定布局。请看清单 4 中定义的一个简单 UI。

清单 4. XUL(/chrome/xulblogger/home.xul)中定义的 UI

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<xul:window id="xulblogger" title="Create Blog Entry" orient="horizontal"

   align="start" xmlns="http://www.w3.org/1999/xhtml" height="1000"

   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

   <xul:script src="blog.js"/>

   <xul:script src="json.js"/>

   <xul:vbox height="800">

     <xul:hbox>

        <xul:label value="Name of entry"/>

        <xul:textbox id="name" multiline="false" cols="70"/>

         <xul:label value="Signature"/>

         <canvas id="canvas" width="300" height="10"

style="border:1px solid gray;">

        </canvas>

     </xul:hbox>     

     <xul:textbox id="entry" multiline="true" rows="10" cols="80"/>

     <xul:hbox>

        <xul:label value="Tags"/>

        <xul:textbox id="tags" cols="80" multiline="false"/>

        <xul:button id="saveBtn" class="btnClass" label="Save" />

        <xul:button id="previewBtn" label="Preview" onclick="preview()"/>

     </xul:hbox>

     <xul:hbox>

         <xul:label value="Publish Date"/>

         <xul:datepicker type="grid" value="{new Date()}"/>       

     </xul:hbox>

     <div id="preview"></div>

   </xul:vbox>  

   <xul:script src="canvas.js"/>

   <xul:script>read();</xul:script>

</xul:window>

XPCOM 可以使您利用来自许多库的功能。这是 XUL 中重复出现的一个主题:为开发人员提供他们需要的所有构建块,并让他们专注于构建自己的应用程序。并且,XUL 提供了一个大型的 UI 部件库。它也提供了一种方法,此方法使用 XML 绑定语言(XML Binding Language,XBL)来更改这些部件的行为和功能。使用 XBL 可以为部件创建自己的行为,然后将这种行为绑定到部件。如何绑定呢?这是 XBL 一个很聪明的部分。使用一个 CSS 选择器来进行绑定。使用选择器选择一个或多个部件,然后用特定的 CSS 特性 -moz-binding 来指定到包含此行为的 XUL 文件的 URL。

XUL 是一个用于跨平台应用程序开发的有趣框架。也许仅仅是一个有趣的技术框架。

可以用 XUL 编写 Firefox 扩展,就像 Firefox UI 一样。它们可以利用 XUL 强大的覆盖特性。有了覆盖,就可以定位一部分现有的 UI 组件,并插入自己制作的新的 UI 组件。

没有 Gecko,它们如何使用 XUL 呢?答案就在于 XULRunner。XULRunner 在 Gecko 引擎之外提供纯 XUL 运行时环境,从而延续了 Gecko 的模块化特性。这允许您构建应用程序代码中直接包含 XULRunner 的应用程序。构建运行在 XULRunner 上的应用程序时,一个不足之处是需要在应用程序中包含 XULRunner。这导致应用程序大概增加了 12MB。

Firefox 和 XULRunner 使用相同的核心库和 libxul,这允许任何 XUL 应用程序使用 Firefox 作为 XUL 运行时,而不是 XULRunner。


引用:http://dongisland.iteye.com/blog/916238


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值