开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

如何采用XML(REX)1.0远程事件处理DOM流协议
作者: Peter V. Mikhalenko
2006-09-28 17:07:36



下面是些范例,以说明目标路径包含的内容:

  • /svg:svg匹配根svg元素,其名字包括前缀“svg
  • /lodges/donkey[8]匹配登记元素的第八个元素,没有命名空间
  • / 匹配根节点,表示文档。
  • /foo/text() 匹配所有的文本节点,它们是foo元素的子元素。
  • /xhtml:html/xhtml:body/svg:svg[3]/@width匹配第三个svg元素的宽度属性,它是根元素的子元素,然后成为HTML元素。
  • id("dahut")匹配元素的ID “dahut”
  • id("dahut")/svg:circle/@cx匹配循环元素的cx属性,它是具有ID“dahut”元素的子元素。

可以使用语法产生目标路径不匹配任何东西(实例/元素[2]),这一句法可能造成忽略事件。B给出一个例子,说明REX消息有不同的目标(表 B - example2.xml)。

B - example2.xml
<rexxmlns='http://www.w3.org/2006/rex'
     xmlns:svg='http://www.w3.org/2000/svg'>

  <event target='id("shiny-donkey")' name='DOMNodeRemoved'/>
  <event target='/svg:svg/svg:g[5]/svg:a[2]' name='activate'/>
  <event target='/svg:svg/svg:g[7]' name='DOMNodeInserted' position='9'>
    <svg:rect x='9' y='42' width='432' height='217' fill='red'/>
  </event>
  <event target='id("dahut")' name='DOMNodeRemoved'>
    <svg:circlecx='19' cy='17' r='42' fill='orange'/>
  </event>
</rex>

推荐使用流方式处理REX消息。因此,用户代理不需要构建消息树。这是因为单个REX消息在一段时间内可能捕获很长的单个事件列表,否则导致内存开销过大。

为了接收REX消息,用户代理不需要支持DOM界面。例如,SMIL或 XML事件规范在文件树DOM表述缺失的情况下,处理接收到的REX消息。

为了保证REX的可扩展性,有必要定义严格的扩展模型,允许将来的版本引入新的信息构造,并且仍能被旧的用户代理所理解。只有用户代理支持REX规范的最小版本设置成对应的“version”属性后,REX消息才能被解析。

所有的突变事件都在http://www.w3.org/2001/xml-events命名空间。只有下面的事件被REX规范支持:DOMNodeInserted, DOMNodeRemoved, DOMAttrModifiedDOMCharacterDataModified在REX处理中,突变事件是特殊事件,它导致DOM树的修改。当一个用户代理处理REX消息接收的事件时,除了指派事件,还必须根据事件的类型修改树(在事件之前之后均可,依赖于事件的类型)。

DOMNodeInserted事件指示向DOM树种插入一个节点。可选的“position”属性指定位置,此位置的有效载荷必须插入到目标元素的子节点。例如,假设调用parent.childNodes.item(position),将返回第一个节点的有效值。如果位置没有指定,或者其值超过范围,则节点被插入到子节点列表后面。

放眼未来

REX规范现在仍旧是个草样,但是它会成为未来主要的标准XML更新机制标准。以前也有类似的情况,例如XML:DB initiativeXUpdate语言。并且REX将在REX的技术设计上很有影响力。2000年以来,它成为了该领域的主题。

W3C提到的XML事件的另一个开端是2003年出现的XML Events recommendation,它提供了XML语言,此语言采用文档对象模型(DOM)Level 2事件界面统一地整合了事件的收听者和相关事件处理者。这一结果提供相关措施和文档水平标记的交互操作途径。

责任编辑:张琎

查看原文国际来源

 

【上一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号