XML 事件
在電腦科學與網頁開發中,XML 事件(XML Events)是一項 W3C 標準,用於處理 XML 文件中發生的事件。這些事件通常由使用者透過個人電腦或行動電話上的網頁瀏覽器等裝置與網頁互動而觸發。
正式定義
XML 事件是某個非同步發生事件(例如滑鼠按鍵點擊)的表示,該事件会與 XML 文件中的資料元素建立關聯。XML 事件提供了對 DOM 事件介面的靜態、語法上的綁定,從而允許事件被處理。
動機
XML 事件標準的定義是為了提供基於 XML 的語言一種能力,使其能將事件監聽器及相關的事件處理器與文件物件模型(DOM)第 2 級事件介面進行統一整合。其結果是提供一種宣告式、可互通的方式,將行為與 XHTML 等基於 XML 的文件建立關聯。
XML 事件的優點
XML 事件採用了關注點分離的設計模式,並且在處理器方面是技術中立的。它讓作者可以自由組織其程式碼,並允許將文件內容與指令碼分離。
舊版的 HTML 及早期的 SVG 版本透過將事件名稱編碼為屬性名稱,來將事件綁定至表現層元素,因此該屬性的值即為該元素上該事件的動作。例如(使用 JavaScript 的 onclick 屬性):
Stay <a href="http://www.example.org" onclick="window.alert('Hello!'); return false;">here</a>!
此設計有三個缺點:
- 它將事件寫死在語言中,因此新增事件類型就需要修改語言本身
- 它迫使作者將文件內容與指令碼和事件處理的規格混合在一起,而不是讓他們能夠將兩者分開。
- 它限制作者在每個文件中只能使用單一的指令碼語言。
與其他標準的關係
與通常關聯於 HTML 文件的 DOM 事件不同,XML 事件被設計為與特定裝置無關。XML 事件被廣泛應用於 XForms 以及 SVG 1.2 版規範中,該規範目前仍是工作草案。
使用 XForms 中監聽器的 XML 事件範例
以下是在 XForms 規範中使用 XML 事件的範例:
<syntaxhighlight lang="xml"> <html
xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <ev:listener event="DOMActivate" observer="myButton" handler="#doit"/> </head>
<xf:trigger xml:id="myButton"><xf:label>Do it!</xf:label></xf:trigger> <script xml:id="doit" type="application/ecmascript"> alert("test"); </script> </html> </syntaxhighlight>
在此範例中,當 id 屬性為 myButton 的資料元素上發生 DOMActivate 事件時,處理器 doit(例如,一個 JavaScript 元素)就會被執行。
參見
- ECMAScript
- JavaScript
- DOM 事件
- XForms
- XHTML
參考資料
外部連結
- W3C XML 事件規範,於 2003 年 10 月 14 日成為 W3C 推薦標準
- W3C 為 HTML 作者設計的 XML 事件教學
Category:全球資訊網協會標準 Category:XML