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

2008 年 9 月 07 日

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

2008 年 9 月 07 日 10:492189
用户头像

发布了 63 篇内容, 共 22.0 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营作业3

索隆

都在讲DevOps,但你知道它的发展趋势吗?

DevOps 自动化

架构师训练营 week3

devfan

架构师训练营 - 第三周 - 学习总结

Anrika

架构师 极客大学架构师训练营

Atlassian套件玩转持续交付

YY哥-杨勇

持续集成 CI/CD 持续交付

Week4命题作业

星河寒水

极客大学架构师训练营

第三章学习总结

武鹏

架构师训练营 -Week 03 命题作业

华乐彬

极客大学架构师训练营 作业

架构师训练营 - 设计模式

Pontus

极客大学架构师训练营

第三周作业

刘卓

Nginx 从入门到实践,万字详解!

SHERlocked93

nginx 反向代理 服务器 代理

设计模式 之 组合模式

南宫煌

极客大学架构师训练营

第三章 小结

姜 某某

Week3作业

熊威

架构师训练营第三周学习总结

whiter

极客大学架构师训练营

作业一

Thrine

summary of week3

东哥

架构师训练营第三周总结

时来运转

了不起的 Webpack HMR 学习指南(含源码分析)

pingan8787

JavaScript 前端 Web webpack

第三周学习总结

刘卓

架构师训练营第三周总结-设计模式的应用

Cloud.

设计模式示例

imicode

如何编写高质量代码之设计模式

imicode

第三周总结

ruettiger

5G勾勒出的人间烟火,正在点亮智慧城市的日月星辰

脑极体

【架构师训练营】week 3 homework

eazonshaw

第三周作业

南宫煌

极客大学架构师训练营

架构师训练营 - 设计模式

Pontus

极客大学架构师训练营

架构师训练营第三周作业

时来运转

架构师训练营第三周命题作业

whiter

极客大学架构师训练营

单例模式和组合模式

allen

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