Web IDL(Interface Definition Language,接口定义语言)该规范定义了一个OMG IDL 3.0的语法子集,用来规范定义的接口。Web
IDL 是一个具有多种功能的IDL 变量,便于规范Web平台中的常用脚本对象的操作。其中包括了大量的扩展功能,以及捆绑了针对ECMAScript 3rd Edition 和Java的语言工具。
《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》的制定将有极大的帮助”,另外,
《XMLHttpRequest
Level 2》的制定也将参照
Web IDL规范。
下面为 web idl 接口定义 Student对象及在js代码中作为内部对象使用的例子。
The following IDL fragment defines an interface that has custom stringification behavior that is not specified in the IDL itself.
IDL
[Constructor]
interface Student {
attribute unsigned long id;
attribute DOMString familyName;
attribute DOMString givenName;
stringifier DOMString ();
};
Thus, prose is required to explain the stringification behavior, such as the following paragraph:
Objects that implement the Student interface must stringify as follows. If the value of the familyName attribute is null, the stringification of the object is the value of the givenName attribute. Otherwise, if the value of the familyName attribute is not null, the stringification of the object is the concatenation of the value of the givenName attribute, a single space character, and the value of the familyName attribute.
An ECMAScript implementation of the IDL would behave as follows:
ECMAScript
var s = new Student();
s.id = 12345679;
s.familyName = 'Smithee';
s.givenName = 'Alan';
var greeting = 'Hi ' + s; // Now greeting == 'Hi Alan Smithee'.
分享到:
相关推荐
webidl2js是一个代码生成器,它将作为输入,并生成JavaScript文件作为输出,这些文件实现了指定的Web IDL语义。 这些文件实现了一个“包装类”,该包装类在委派给您提供的“实现类”之前,会处理所有Web IDL指定的...
webidl2.js 目的 这是的解析器, 是一种的语言。 该库支持Node.js和浏览器环境。 在尝试在线检查器。 安装 就像平常一样。 对于节点: npm install webidl2 在没有模块支持的浏览器中: < script src =' ./...
基于JavaScript值的Web IDL类型转换该包在JavaScript中实现了根据给定转换给定JavaScript值的算法。 目标是您应该能够像 "use strict" ;const conversions = require ( "webidl-conversions" ) ;function doStuff ( ...
WebIDL Ada中的WebIDL解析器 该项目提供了一种解析WebIDL香精的工具。 用法 待定 维护者 。 有助于 随时潜入! 或提交PR。 执照 :copyright:Maxim Reznik
网站IDL 这是开发规范的存储库。 贡献 良好的第一期被标记为。 除非另有说明,否则IDL通常遵循和。 标记 该规范使用编写,外加<emu> , 和... WebIDL解析器(由idlharness.js使用) TypeScript和JavaScript库生成器
将 HTML 属性反映为 WebIDL ... 这种反射的规则很长而且多种多样,不同的规则适用于不同的 WebIDL 类型(当然,它们不同于 JavaScript 类型),甚至适用于这些类型中的不同子案例。 然而,它们是规则,我们可以在 JavaS
这是的源代码,该工具可验证... 它在之上定义了一个基于Python的CGI接口,并通过对生成的XML文件进行来进行其他语义检查。 其中一些分析依赖于了解哪些WebIDL在Web平台中是众所周知的:此知名WebIDL列表在中维护。
webidl:OCaml的Web IDL解析器
WebIDL 文件和解析器归 Mozilla 所有。 与旧的 js.html externs 相比的优势: 更加完整和准确。 枚举类型。用法运行bin/generate和bin/validate以确保输出编译。 如果缺少某个 API,请将其添加到 webidl/ 目录下的...
对学习IDL有很大的帮助,IDL入门教程一.doc,IDL入门教程二(上)(简单图形显示II).doc,IDL入门教程二(下)(简单图形显示I).doc,IDL入门教程三(上).doc,IDL入门教程三(下).doc,IDL入门教程四(图形显示技术).doc,IDL入门...
idris2-webidl WebIDL文档的解析器和(最终)Idris代码生成器
本书的读者是IDL初学者,特别是哪些不得不自学IDL的读者。学好IDL需要很长的阶段。多数人不能利用工作中的时间学习IDL,笔者想写一本能满足这两类人学习IDL的书。总之,本书为不喜欢读教科书并能通过例子学得最好的...
Calling C and C++ from IDL复印版,还挺清楚的。
webidl-and-mdn
利用IDL进行界面的编程,包括影像读写,参数输入,界面位置设置等常用功能的编写,适合刚接触IDL语言并想编写简单界面的人士学习参考
to WebIDL到JSON AST字符串。安装 npm i -g wtoj用法 wtoj Contact.webidl
Noderdom是一个用于生成Typescript接口,类和mixin的库,它们表示WebIDL中表示的DOM结构。 该工具最初基于Typescript团队的出色工作,用于生成其dom.generation.d.ts文件: 。 安装 从NPM安装: npm install ...
Java调用IDL程序需要通过 IDL bridge来完成这一目的,该文件包括对IDL程序编写的规范格式示范,以及提供了本人编写的参考例子,提到在实现调用IDL过程中出现的一些错误以及解决方法。该资源中的word文件较为详细的...
基于C语言实现的IDL编译器.pdf
IDL影像旋转程序