QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

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:492315
用户头像

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

关注

评论

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

深入理解Deno是如何借助PowerShell进行安装脚本

梁龙先森

前端 deno shell脚本编写 PowerShell 28天写作

立足智能化发展,风电能源产业互联网平台加快建设

一只数据鲸鱼

物联网 数据可视化 3D可视化 能源管理 风力发电

Kafka 是怎么存储的?为什么速度那么快?

码农架构

Java kafka 架构·

新时代计算机技术

安卓软件开发文献!阿里P8架构师的Android大厂面试题总结,建议收藏

欢喜学安卓

android 程序员 面试 移动开发

Serverless 如何在阿里巴巴实现规模化落地?

Serverless Devs

阿里云 Serverless 云原生 前端

网络编程入门从未如此简单(二):假如你来设计TCP协议,会怎么做?

JackJiang

TCP 网络编程

园区网为主的 DNS 架构设计

冯骐

程序员 运维 监控 网络 DNS

资深大牛带你了解源码!分析Android未来几年的发展前景,快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

C语言重要的知识点

c 考核 重要知识 简单清楚 好看

iOS开发前景

ios

Open-Falcon 中的交换机监控

冯骐

go 运维 监控 网络 交换机

第五周作业-流程图及时序图

Au revoir

狂补计算机基础知识,让我上了瘾

沉默王二

计算机基础 计算机

大数据时代

Mr.cool

MySQL索引原理,一篇从头到尾讲清楚

云流

数据库 架构

使用PG_STAT_REPLICATION监视复制

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

一周信创舆情观察(2.8~2.21)

统小信uos

面面俱到!阿里SpringBoot全栈宝典新开源,Spring技术入门进阶提升必备!

Java王路飞

Java spring 程序员 面试 springboot

抖音春晚红包互动为啥全程无宕机?看完字节内部高并发速成笔记我悟了!

程序员小毕

Java 程序员 高并发 秒杀 字节

架构设计篇之微服务实战笔记(五)

小诚信驿站

架构师 刘晓成 小诚信驿站 成长笔记 28天写作

细节完美炸裂!GtiHub上点赞已破百万的并发编程四套全彩手册

Java架构追梦

Java 阿里巴巴 架构 面试 并发

中小公司开展NPS的好处

Geek_459987

火山版强势来袭!字节21版Java程序员面试涨薪手册现已开源

周老师

Java 编程 程序员 架构 面试

【LeetCode】翻转图像Java题解

HQ数字卡

算法 LeetCode 28天写作 2月春节不断更

API策略量化机器人系统开发|API策略量化机器人APP软件开发

开發I852946OIIO

系统开发

2021年,是时候把技术债务管理提上日程了

禅道项目管理

效率 产品 创新 技术债

MT马特量化机器人软件开发|MT马特量化机器人APP系统开发

开發I852946OIIO

系统开发

Flink 如何实时分析 Iceberg 数据湖的 CDC 数据

Apache Flink

flink

拒绝知识碎片化!阿里大牛亲码Java核心技能精讲笔记,系统梳理Java知识体系,金三银四面试必备!

程序员小毕

Java 程序员 架构 面试 分布式

华为大神珍藏版:SpringBoot全优笔记,面面俱到太全了

互联网架构师小马

Java 架构 微服务 Spring Boot Spring Boot 2

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

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