基于XML的圖形用戶界面(全文)_第1頁
基于XML的圖形用戶界面(全文)_第2頁
基于XML的圖形用戶界面(全文)_第3頁
基于XML的圖形用戶界面(全文)_第4頁
基于XML的圖形用戶界面(全文)_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯基于XML的圖形用戶界面(全文)GUIXML發展到1.1版本,已經具有了很強的實用價值。它為RIA應用的開發提供了一種全新的,也是更高效的手段。

由于構成圖形用戶界面的各種元素(統稱為控件)間天生所具有的層次和嵌套關系,與XML文檔中元素和屬性之間的關系十分相似,使用XML來描述圖形用戶界面是十分自然和有效的方法。其實,早在HTML中就融合著這樣的想法。但是,HTML表單的表現力相對于目前越來越復雜的應用還過于貧乏。因此,一些全新的、功能更為強大的XML語言紛紛出現。

Micromedia公司針對其獨有的Flash技術,了一種描述圖形用戶界面的XML語言MXML,并發行了基于MXML的開發環境Flex;Microsoft公司也宣稱在其下一代的Windows操作系統Longhorn中將嵌入使用XAML語言的圖形用戶界面引擎Avalon;Mozilla開發小組專門為Mozilla瀏覽器的定義開發了一種用于描述用戶界面的語言XUL。在Java環境下,也有許多相關成果。例如,在Sun公司推出的Java集成編輯環境NetBeans3.5及以上版本中,圖形用戶界面的編輯器就采用一種自定義的XML格式描述圖形用戶界面開發的中間結果。另外,一種基于JavaAWT工具包的圖形用戶界面描述工具Bambookit已經進入了商業化階段。

本文介紹的GUIXML,與上面提到的各種XML語言都有一定的相似之處。但是,它們之間也存在著最根本的不同,也是提出和定義GUIXML規范最重要的目的――在多種圖形用戶界面工具包之上,實現高抽象的統一描述機制。眾所周知,圖形用戶界面工具包作為一種高級編程語言的核心特性,在各種語言中都有其專有的實現。僅僅Java語言就擁有多種圖形用戶界面工具包,包括AWT、Swing以及SWT。雖然這些圖形用戶界面工具包的用途完全一致,但是它們可能使用截然不同的元素和結構來表現圖形用戶界面。經過仔細的比較和歸納,并吸取其他多種XML圖形界面描述語言的優點,我們提出了機遇XML的圖形用戶界面描述方法和語言GUIXML。

GUIXML從被提出一直發展至今,也經歷了不斷修改和增強的過程。這些修改和增強最直觀的體現就是GUIXML的語言規范的升級。GUIXML從最初的1.0版本,到目前正在制定的1.3版本,逐漸將XML技術的各種優勢發揮得淋漓盡致。本文接下來的章節便按照GUIXML語言規范的發展歷程簡單介紹其各種先進和強大的功能。

GUIXML1.0

GUIXML語言采用抽象程度比較高的語法結構來描述圖形用戶界面。1.0版本的語法的主要結構可以用圖1部分概括。圖中的節點都表示XML中的元素(Element)(其屬性沒有給出,還有部分元素作為輔助功能也沒有在圖中給出)。可以很容易地看出,

元素定義了數據約束。數據約束的對象是DOM對象樹上的節點集(nodeset)。這些節點集通過XPath表達式來指定,例如“/Order”就指定了根節點下所有名為“Order”的元素節點。約束的類型可以是數據類型(type)、讀寫屬性(readonly)、計算關系(calculate)等。

同時,數據模型還定義了數據提交的部分細節,例如提交方式、地址等,如上面示例中元素所示。

數據綁定

GUIXML定義的控件可以通過XPath與DOM對象樹中的某個節點集綁定,稱之為數據綁定。例如下面示例給出的定義片斷粗體部分就將一個控件的背景顏色屬性值與某個DOM節點值綁定在一起:

java.swing.JButton

另外,也可以將一個控件本身,而不是其某個屬性,與對象樹的某節點綁定。這種邏輯上的綁定不會對該控件本身有任何影響,但是可以使得該控件內部的“孩子”控件在定義綁定時使用相對形式的XPath表達式。

靈活的數據定義和引用機制,再配合前面介紹的增強控制功能,用戶界面就可以根據數據(XML文檔)的不同而呈現不同的樣式和內容。

數據交互

由于有XForms強大的數據模型和靈活的數據綁定定義,運行時的數據交互顯得十分簡單:只需要根據數據綁定關系,將界面控件上的數據寫入到DOM對象樹相應的節點上,一切的驗證、計算、更新等操作都將自動完成。當然,為了使設計人員自由地控制何時采集數據,何時更新數據,又何時進行計算,GUIXML1.1還預定義了一套數據交互函數(function)供設計人員調用。

邏輯定義

邏輯部分是1.1規范完全新增的一個功能。其主要目的是定義運行時環境中,特定情形下需要執行的一系列特定行為,例如對用戶界面中控件狀態的修改和對方法的調用等。

網絡通信

作為網絡應用,通信方式或者說通信協議是比較重要的一環。MXML和Bambookit在網絡環境下使用時,都需要通過編寫腳本或者Java程序,并借助HTTP或者直接使用更底層的TCP協議來傳輸數據。顯然,這并不是最好的選擇。雖然GUIXML1.1規范中并沒有明確指定所采用的通信協議。但是,考慮到企業應用對跨越防火墻等特性的要求,最后WebServices被作為應用中的缺省通信手段。換句話說,XML數據采用SOAP/HTTP協議在網絡上傳輸。

然而,WebServices實現中擁有許多不同類型的數據編碼和傳輸方式,例如基于RPC(RemoteProcessCall)的WebServices采用RPC規范序列化和編碼數據;基于文檔(Document)結構的WebServices采用XML文檔作為數據格式,等等。很顯然,由于數據模型的特點,基于文檔結構的WebServices更適合GUIXML應用的要求。

在實現層面上,網絡通信模塊需要做的事情十分簡單:從數據模型通過簡單的接口獲得表示數據的XML文檔,然后按照模型中定義的數據提交信息,例如WebServices調用地址等,調用服務端的WebServices并獲得返回的XML文檔數據。如此,便完成一次通信過程。GUIXML1.1規范的實現過程也證明了這項選擇的正確性。

鏈接:軟件構件圖元編輯標

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論