BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 徐涵 关注 3 他的粉丝 发布于 2008年9月8日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。
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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT