InfoQ

新闻

Web IDL:W3C DOM规范语言绑定有了新名称

作者 徐涵 发布于 2008年9月7日 上午10时49分

社区
SOA
主题
规范
标签
AJAX,
W3C
W3C Web应用工作组(Web Applications Working Group)最近发布了《Web IDL》工作草案,即过去的《DOM规范语言绑定(Language Bindings for DOM Specifications)》。该工作草案定义了一个OMG IDL 3.0版的语法子集,供那些需要定义接口的规范使用。InfoQ采访了该规范的编辑,以进一步了解该规范、以及该规范对Web开发社区的影响。

由该工作草案定义的接口定义语言(interface definition language)叫作Web IDL,它可被用来描述要在Web浏览器里实现的接口。Web IDL是一种IDL的变体,它所具有的很多特性使之能够更容易地对Web平台里的常用脚本对象的行为进行规定。为了支持过去只能以文字描述的常用功能,该IDL在很多方面得到了扩展。另外,它还为ECMAScript第3版和Java给出了精确的语言绑定。该规范文档在介绍部分解释了为何要有这样一个规范:
过去,W3C技术报告都是用对象管理组织(OMG)的接口定义语言(IDL)[OMGIDL]来描述编程语言接口的。利用该IDL,可以以独立于语言的方 式来描述这些接口。通常,这些文档还要在附录中另外给出一个语言绑定,以详细描述用IDL描述的接口如何与给定语言的构造成分相对应。

然 而,这些规范在为ECMAScript这一Web上最常用的语言给出绑定时,描述的精确度很低,因而造成互操作性问题。另外,各个规范必须描述同样的基本信 息,比如:用IDL描述的DOM接口相当于ECMAScript全局对象的属性,或者无符号长整数IDL类型映射为ECMAScript的数值类型,等 等。
Web IDL的目的,就是详细定义一种语言,以便W3C规范定义接口、并为这种接口的ECMAScript与Java绑定提供精确的一致性要求 (conformance requirements)。W3C期望该文档对已发布规范的实现者们起到指南作用,并期望以后发布的规范参照本文档,以确保合乎规范的各接口实现之间能 够互操作。“这对《HTML 5》的制定将有极大的帮助”,《HTML 5》编辑Ian Hickson说。另外,《XMLHttpRequest Level 2》的制定也将参照Web IDL规范。

这次发布的版本,除了一些内容上的改动,还有一个重大变化,即文档标题改成了“Web IDL”。Web IDL编辑Cameron McCormack说:“因为该文档定义的是一个IDL语言及其跟两种语言的映射,而之前的名称给人以‘该文档仅用于DOM规范、而不是任何需要用IDL定义接口的规范’的印象,所以现在这个名称更加准确。”

Cameron McCormack还向InfoQ讲述了Web IDL将如何对Web开发社区有间接帮助:
目前,大部分DOM相关的规范,都是在相当高的层次上,对实现特定接口的ECMAScript宿主对象的行为进行描述的。例如,DOM Level 3 Core规范在附录ECMAScript语言绑定部分为DOM Level 3 Core描述了ECMAScript绑定,但它没有说Node原型对象(prototype object)在Element对象的原型链(prototype chain)中。各种AJAX工具包均有赖于此,而这一块还没有被标准化。

另一个例子,在调用宿主对象的函数时,如何进行类型强制转换,这也是没有规定的。例如,当你执行下面这行时:

circleElement.setAttributeNS(null, 'cx', 2 * 50);

期望的行为是:

circleElement.setAttributeNS(null, 'cx', '100');

因为setAttributeNS()的第三个参数是一个DOMString。这一点没有在任何地方定义,但它是一个能够广泛互操作的行为。Web IDL定义了如何像这样进行类型强制转换。
那么由于Web IDL“在对其他规范的语言绑定方面施加了更强的要求”,所以Web开发社区将看到一个更加互操作的环境:各标准之间是一致的,参照同一套标准开发的各产品之间也是一致的。

查看英文原文:Web IDL: W3C Language Bindings for DOM Specifications Gets a New Name

没有回复

回复

独家内容

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。

揭示常见的重构误区

相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。