JIL Widget规范中文版

JIL Widget 规范中文版(格式与打包) 规范中文版(格式与打包)

(2010-08-5,13:52:43)

前言: 中国移动 BAE 团队是 JIL Widget 规范制定的主要参与者之一。考 虑到起草规范的时间紧迫、面向的读者覆盖全球,JIL Widget 规 范统一采用英文编写。许多开发者通过 jil.org,中国移动开发者社 区、BAE 友好开发者等多种途径反映:希望能提供 JIL Widget 规 范中文版本,以便于阅读。因此,中国移动 BAE 团队陆续将 JIL Widget 规范翻译成中文,供广大开发者参考。

JIL Widget 系统高级技术规范 系统高级技术规范 格式和打包规范 (Format and Packaging Specification)

状态: 状态:完成 版本: 版本:1.2

1.前言 1.1 关于此文档 1.2 文档所针对的对象 1.3 读者评论 1.4 相关文档 2.设计目标 3.打包和配置 3.1 命名空间校验规则 3.2config.xml 示例 3.3<widget> 元素 3.3.1 id 属性 3.3.2 version 属性 3.3.3 viewmodes 属性 3.4 <name>元素 3.5 <icon>元素 3.6 <author>元素 3.7 <content>元素 3.8 <feature>元素 3.9 <param>元素 3.10 <preference>元素 3.11 <access>元素(JIL 扩展) 3.12 <maximum_display_mode>元素(JIL 扩展) 3.13 <billing>元素(JIL 扩展) 3.14 <update>元素(JIL 扩展) 4.W3C 规范附加要求 4.1 HTML 4.01 4.2 XHTML Basic 1.1 4.3 CSS 2.1

4.4 数字签名 4.5 Media Queries 4.6 SVG Tiny 1.2 5.元素总览 6.缩略词 7.参考 7.1. Widgets 1.0: Packaging and Configuration 7.2. Widgets 1.0: Digital Signatures 7.3. Media Queries 7.4. Widgets 1.0: Access Requests Policy 7.5. Widgets 1.0: APIs and Events 7.6. Widgets 1.0: Window Modes and Media Query Extensions 7.7. Widgets 1.0: Updates 7.8. Widgets 1.0: URI Scheme 7.9. HTML 4.01 Specification 7.10. XHTML Basic 1.1 7.11. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification 7.12. Scalable Vector Graphics (SVG) Tiny 1.2 Specification 8.附录 8.1 JIL Feature Values 8.2 更新描述文档(UDD)详细说明 8.3 JIL 1.2 XSD 8.4 具体变更历史

1.前言 前言
1.1 关于此文档
此文档提供 JIL Widget 打包的高级别技术设计规范。此版本包含了 JIL 高级别技 术规范 Widget Formats 1.0.2 的升级,以使其兼容于最新的 W3C 打包规范需求。

1.2 文档所针对的对象
此文档的预定读者是负责实现文档功能或验证其实现的工程师,开发者, QA 测试者,和设计者。

1.3 读者评论
这种文档永远不是十全十美的。我们不指望现存版本完全清晰;所以,您的 评论对于把此文档修正为对方案的清晰描述是至关重要的。 您的反馈是重要的并 将被考虑在此文档的新版本中加入。请您通过 www.jil.org 上“联系我们”发送 您的回馈。

1.4 相关文档
文档题目和版本 JIL Widget System High Level Technical Specification: WidgetFormats v1.0.x JIL Widget System API Specification: Handset APIs v1.1.5 JIL Widget System High Level Technical Specification: Security v1.2 文件名及所在位置 请通过 www.jil.org 上 “联系我们” 发送文档请求 请通过 www.jil.org 上 “联系我们” 发送文档请求 请通过 www.jil.org 上 “联系我们” 发送文档请求

Widgets 1.0: Packaging and Configuration.

2.设计目标 设计目标
JIL Widget 最初最重要目标是商业化。尽管与标准兼容重要,但这是第二位的。 因此,只要在 W3C 范围内 JIL 能够充分发展并且采用 W3C 的标准不会阻碍其商 只要在 业化方面的努力, 标准。 业化方面的努力,JIL 将会采用 W3C 标准。 JIL 1.0.x 格式和打包规范是从 2008 年 12 月的 W3C 格式草案衍生出来的。 1.2 格 JIL 式和打包规范完全包含和扩展了包含并扩展了下述 W3C 候选发布文档: Widgets 1.0: Packaging and Configuration(BONDI 组织声明的) Widgets Digital Signatures Media Queries 前查看此文档的“参考”部分查阅相关 W3C 标准。 那些处于不同状态的草案过程的附加规范,W3C 也在这些附加规范上做工作。 然而 JIL 规范不特定包含这些规范,尽管其中一些通过 JIL Widget 命名空间加入 到了 JIL 特殊能力。值得注意的是,没有明确被 JIL 1.2 采用的 W3C 草案规范有: Widgets 1.0: Access Requests Policy Widgets 1.0: APIs and Events Widgets 1.0 Window Modes and Media Query Extensions Widgets 1.0: Updates Widgets 1.0: URI Scheme

3.打包和配置 打包和配置
JIL 1.2 规范包含了 W3C Widgets 1.0 打包和配置规范,同时通过它自己的 JIL 命名 空间提供了专有扩展。 因此可期待 JIL Widget 运行时环境可以运行符合 W3C 包装 要求的任意 Widget,当然,这是在假定此 Widget 没有运用非 JIL 手机 API 的前 当然, 当然 提下。 提下。 根据 W3C 包装规格,一个 JIL Widget 的首要命名空间必须是 “http://www.w3.org/ns/widgets”。JIL 专有扩展与命名空间 “http://www.jil.org/ns/widgets1.2”相对应。 注意,JIL1.0.x 的命名空间仍然是“http://www.jil.org/ns/widgets”。

此文档不打算重复讲述 W3C Widget 格式规范。W3C 规范的所有方面都必须被采 用。JIL 同时需要除 W3C 之外的附加支持。下面讲述了 JIL 1.2 规范值得注意的方 面,它们与 JIL 1.0.x 和 W3C CR(候选发布文档)规范相关。

3.1 命名空间校验规则
为了支持向前兼容, 同时使得一个 Widget 支持 JIL 1.0.x 和 JIL 1.2 包装规范, Widget 运行时环境必须遵循下述命名空间校验规则: 在根目录下查找名为“config.xml”的文件。 如果存在并且包含 http://www.jil.org/ns/widgets 命名空间,则作为 JIL 1.0.x 的 Widget 安装 目前我们用的是 JIL1.0.X 版本的命名空间方式 (目前我们用的是 版本的命名空间方式) 如果文件存在并且包含 http://www.w3.org/ns/widgets 命名空间,则作为 W3C Widget 安装;如果同时包含 http://www.jil.org/ns/widgets1.2 命名 空间,那么同时处理 JIL1.2 的扩展。 如果文件存在, 命名空间, 如果文件存在,但不包含 JIL 1.0.x 也不包含 W3C 命名空间,那么终止安 装。 如果 config.xml 不存在,终止安装。

3.2config.xml 示例
示例中同时使用 W3C 和 JIL 1.2 命名空间,所有 JIL 1.2 的扩展元素必须按照 “Widget”元素声明使用 jil 前缀。
<?xml version="1.0" encoding="utf-8" ?> <widget xmlns="http://www.w3.org/ns/widgets" xmlns:jil="http://www.jil.org/ns/widgets1.2" id=" http://org.jil/wid/b4c3addd8a1004ee5c651ca52bdc42353ad5a51db258aa0597cfb 4f63df36e41/WeatherWidget" version="1.0.Beta" height="150" width="100">

<name>Widget Example</name>

<description>An example widget</description> <author email="czheng@mail.com">czheng</author> <icon src="icon.png"/> <license href="http://creativecommons.org/licenses/by/3.0/"> Creative Commons Attribution License </license>

<content src="myWidgetContent.html" encoding="utf-8" />

<update href="http://www.jil.org/widgets/" period="1"/>

<feature name="http://jil.org/apis/api.DeviceInfo" required="true"/> <feature name="http://jil.org/apis/api.CalendarItem" required="false"/>

<jil:access network="true" localfs="true" remote_scripts="false"/> <jil:maximum_display_mode height="300" width="200"/> <jil:billing required="true"/>

</widget>

3.3<widget> 元素
3.3.1 id 属性 根据 W3C 规范,Widget 标签的“id”属性是可选的。然而,JIL 要求在它参与的 所有 Widget 中这个属性存在。因此,“id”属性应该被视为必不可少的。它的 值一般是由 JIK SDK 签署 签署的。 id 是一个 URI, 它包含了用户昵称的 SHA256 加密, 同时包含了 URL 编码的 Widget 名称。作为一个例子,如果开发者的用户昵称为“JoeSmith”,Widget 名称为 “Weather Widget”,那个 Widget ID 与下述类似: http://org.jil/wid/b4c3addd8a1004ee5c651ca52bdc42353ad5a51db258aa0597cfb4f 63df36e41/Weather20%Widget

3.3.2 version 属性 Widget 标签的“version”属性应该遵从下述的 ABNF 规则: jil-rec-version-tag = major-version "." minor-version ["." version-desc] major-version = 1*2DIGIT; one - two digits from 0-9 minor-version = 1*2DIGIT; one - two digits from 0-9 version-desc = 1*10ALPHA; optional version description in 1 to 10 Upper- and lower-case ASCII letters(A–Z, a–z) 与 jil-rec-version-tag 兼容的推荐版本值例如: 2.11; 1.1.beta; 99.99.testBetaXY. 注意:JIL 开发者门户网站将强制使用 jil-rec-version-tag 并将拒绝任何不兼容的 Widget,并且通知软件作者拒绝的原因以及怎样修正它。此外,JIL 开发者门户 网站将要求被认定为升级版的 Widget(通过相同的“id”属性值)的主版本号和 次版本号的组合要比原有的大。 3.3.3 viewmodes 属性 Widget 标签的“viewmodes”属性仅需要 W3C 定义的“floating”(浮动)和 定义的“ ” 浮动) “fullscreen”(全屏)模式。JIL Widget 运行时环境必须支持这两种模式。按照 ” 全屏)模式。 W3C 标准, “viewmodes” 是可选的。 不管 Widget 定义了何种模式, Widget 运 JIL 行环境必须支持 floating 模式,以使得多个 Widget 同时在界面上显示。尽管 JIL 给厂商提供了推荐, 但是 floating widget 的显示和布局交由 Widget 运行时环境决 定。更多信息,请参见 JIL。 在全屏模式下,只有一个 Widget 在屏幕上显示。Widget 的默认宽度和高度是屏 幕所有的可显示区域的宽度和高度。然而,Widget 可以通过使用 JIL 专有的 “maximum_display_mode”扩展确定全屏的范围。 W3C 也定义了在两种模式之间切换时所调用的 API 的草案。 由于 API 现在还是草 案版本,在 JIL 1.2 中,是不需要这些接口的。实际上,JIL 手机 API 规范定义了两 个回函数,“onMaximize()” 和 “onRestore()”,此两个函数在 Widget 模式切 换时调用。更多细节,请参见 Handset API 规范。

W3C 潜在的支持多种视图模式。潜在支持的视图模式没有被 JIL 明确的禁止,因 此可能会被特定的厂商支持。 只有 floating 和 fullscreen 模式是 JIL Widget 和 JIL 运 行时环境必需支持的。

3.4 <name>元素 元素
name 元素的 short 属性是由 W3C CR(候选发布文档)规范引入的。short 属性必 须由 JIL 1.2 Widget 运行环境支持,对于 Widget 来说是可选的。具体细节,参见 W3C 8.6.1 节。

3.5 <icon>元素 元素
JIL 1.0.x 规范指出 icon 元素能够被声明至多 1 次。为了与 W3C CR 兼容,JIL 1.2 规范允许 icon 元素在 config.xml 中多次出现。同时 JIL 1.2 也需要附加属性“xml: lang”。更多信息,请参看 W3C 8,10 节。 扩展: JIL 1.0.x 规范定义中, 在 icon 元素代表 Widget 的图标, widget user agent 应 该将图标设置为对用户可见。icon 的格式至少包括以下格式:[PNG], [GIF87], [JPEG], [GIF89]。src 属性为 Icon 元素的必须属性,width 和 height 属性为可选属 性。src 指向 widget 文件夹下的一个有效图形文件。如果是数字栅格图像(raster graphic),width 和 height 属性会被忽略,如果为向量图像(vector graphic), 则不会被忽略(若未定义,则使用默认值)。

3.6 <author>元素 元素
JIL 1.0.x 包装规范指出 author 元素支持“xml:lang”属性。然而在目前的 W3C CR 规范中,此属性不被支持了,在 JIL 1.2 中,便也不支持此属性了。 扩展:在 JIL 1.0.x 规范中,author 元素可以由四种属性,href, email, xml:lang, its:dir, 每种属性都可以声明 0 或 1 次。它表示了创建 widget 的人或组织。

3.7 <content>元素 元素
content 元素的目的是在 JIL 1.0.x 和 JIL 1.2/W3C 之中是相同的。万一 content 元 万一 素丢失, 根目录下的下述文件之一作为启动文件, 素丢失,WRT 应该将 Widget 根目录下的下述文件之一作为启动文件,查找的优 先级如下: 先级如下: index.html index.htm index.xhtml index.xht

注意:尽管 JIL 1.0.x 运用“charset”属性来指明字符集,然而 JIL 1.2/W3C 通过 “encoding”属性标识字符集。如同其他方面的差异,该 Widget 运行库必须支 持所引用的命名空间的两个机制。 扩展:在 JIL 1.0.x 规范定义中,content 元素用来指定 widget user agent 初始化 widget 时所用到的资源。 content 元素必须包含 src 属性, 可以包含 type 和 charset 可选属性。src 指向 Widget 文件夹下的文件,type 指出文件类型(默认为 text/html),charset 指出文件的编码格式。

3.8 <feature>元素 元素
规范中, 标签被重新定义了。 在 W3C 规范中,feature 标签被重新定义了。JIL 1.2 Widget 必须遵照 W3C 的定 义。像其他元素一样,Widget 运行时环境通过 config.xml 中的命名空间推断出 feaure 标签的含义 标签的含义。为了向后兼容,JIL 1.2 WRT 必须基于 Widget 所用的命名空 间对 feature 标签做不同的解释。 在 JIL 1.0.x 中,只有具有安全限制的 Widget 才需要声明使用此元素。而在 JIL 1.2 而在 环境下, 任何由 Widget 应用的 Handset API 都必须声明。 都必须声明。 因此, 1.2 中的 feature JIL 环境下, 元素值的列表比 JIL 1.0.x 重更长。 扩展:在 JIL 1.0.x 规范定义中,feature 元素代表 Widget 声明使用的敏感 API 或 API 组。此元素必须要有 name 属性,可以有 required 属性,required 属性的默 认值为 false。 W3C 支持嵌套的 feature 标签。与 JIL 1.2 规范兼容的 Widget 运行时环境必须支 标签。 吻合。 持这种能力以于 W3C 吻合。然而,实际中由于 JIL 的特征定义不是分层的,因此 不会使用嵌套 feature 标签。 在 JIL 1.0.x 规范中,如果 feature 元素没有 required 属性,那么 required 属性的 默认值为 false。然而,这在 W3C CR 和 JIL 1.2 规范中改变了。由于这种冲突, Widget 运行时环境必须去除在 config.xml 中基于命名空间的 required 属性的默认 值。 应注意到 JIL Feature IRIs 包含那些添加或明显改变 API 规范的版本号。大多特征 是参考最初版本 API v1.1 的。例如 “http://jil.org/jil/api/1.1/filesystem” 如果一个新的 API 发布或更改了,那么包含此 API 的 Handset API 规范修订版本 将在 feature IRI 中被引用,例如 “http://jil.org/jil/api/1.1.5/radiosignalsourcetypes”

扩展细节请查阅 Handset API 规范 本文档附录定义了 feature 元素的默认值。 规范。 在 Handset API 规范中规定的任何值都比在此打包规范中出现的默认定义优先级高。

3.9 <param>元素 元素
W3C 定义的 param 元素提供了任何特征(通过 feature 元素定义)的可选参数。 元素提供了任何特征 特征( 元素定义)的可选参数。 JIL Widget WRT 厂商应在将来的发行版中支持这个元素。然而,目前 JIL feature 并不允许带有参数。因此,此元素与目前的 JIL 1.2 规范无关。

3.10 <preference>元素 元素
preference 元素由 W3C CR 引进而且必须被 JIL 1.2 支持。 JIL Handset API 规范定 在 义中, 此元素值可通过 Widget.preferenceForKey() 和 Widget.setPreferenceForKey() 设置和获取。 注意,此元素可选的 readonly 属性必须由 JIL 1.2 运行时环境实现。如果元素是 readonly 的,那么不能通过 Widget.setPreferenceForKey()改变它的值。

3.11 <access>元素 元素(JIL 扩展 扩展) 元素
此元素由 JIL 1.0x 打包规范定义, JIL 1.2 中通过 JIL 命名空间作为一项私有扩展。 在 access 元素描述了 Widget 的权限。 此元素应用上下文 widget 元素的子元素 内容模型 空 出现 至多一次 属性 network:0 或 1 次 localfs:0 或 1 次 remote_scripts:0 或 1 次 network 属性表示 Widget 能否通过 HTTP/HTTPS 连接在线 web 资源。 此属性的有 效值为 true 或 false。 true 表示 Widget 需要使用 HTTP/HTTPS 连接在线 web 资源。 false 表示 Widget 不 需要使用 HTTP/HTTPS 连接在线 web 资源, 并且 Widget 用户代理必须阻止 Widget 连到网络。

如果不写此属性,此属性默认为 false。 locals 属性表示 Widget 是否允许访问本机文件系统。此属性的有效值为 true 或 false。true 表示 Widget 需要访问本机文件系统。false 表示 Widget 不需要访问本 机文件系统,并且 Widget 用户代理必须阻止 Widget 访问本机文件系统。 如果不写此属性,此属性默认为 false。 remote_scripts 属性表示 Widget 是否允许获取并加载 Widget 资源之外的 JavaScript,如远程 web 服务器上的 JavaScript。此属性的有效值为 true 或 false。 true 表示 Widget 需要访问外部 Javascript。false 表示 Widget 不需要访问外部 Javascript,并且 Widget 用户代理必须阻止 Widget 加载外部 Javascript。 如果不写此属性,此属性默认为 false。
例如:

<widget xmlns="http://www.w3.org/ns/widgets" xmlns:jil=http://www.jil.org/ns/widgets1.2> … <jil:access network=”true” localfs=”true” remote_scripts=”false”/> ” ” ” ” ” ” … </widget>

3.12 <maximum_display_mode>元素 元素(JIL 扩展 扩展) 元素
maximum_display_mode 标签最初出现在 JIL 1.0.x 规范中,并且通过 JIL 1.2 命名 空间作为一项属性扩展到了 JIL 1.2。maximum_display_mode 描述了全屏模式下 Widget 的行为和表现。 Widget 在全屏模式下运行时, Widget 是唯一由 Widget 当 此 user agent 描绘的并且此 Widget 接管整个屏幕。 如果 maximum_display_mode 指定的高度和宽度小于屏幕的,Widget user agent 将根据 maximum_display_mode 中小的高度和宽度值描绘 Widget。Widget 运行 时环境将把 Widget 居中并且自己决定填充周围空隙。 如果 maximum_display_mode 指定的高度和宽度有比屏幕的大, Widget user agent 将根据实际屏幕的大小绘制 Widget。 maximum_display_mode 是一个可选元素。如果省略,当 Widget 在全屏模式下运 行时,widget user agent 应根据屏幕大小绘制 Widget。

元素上下文: 素上下文: 作为 Widget 元素的子元素。 内容: 内容: 空 出现次数: 出现次数: 0或1次
属性:

height:0 或 1 次 width:0 或 1 次 height 元素以 CSS 像素的形式表示所显示 Widget 的最大高度。 如果不写此项, widget user agent 应使用屏幕高度。width 元素使用类似于 height 元素

例如:

<widget xmlns="http://www.w3.org/ns/widgets" xmlns:jil=http://www.jil.org/ns/widgets1.2> … <jil:maximum_display_mode height=”200” width=”100”> ” ” ” ” … </widget>

3.13 <billing>元素 元素(JIL 扩展 扩展) 元素
JIL 1.0.x 规范中引入了 billing 元素,此元素通过 JIL 1.2 命名空间作为 JIL 1.2 的专 有扩展,使用方法与 JIL 1.0.x 规范中的一样。 扩展: JIL 1.0.x 规范定义中, 在 billing 元素用来指示 Widget 是否需要付费的授权。 billing 元素指示了 Widget 操作时账单是否应该出现。 元素上下文: 元素上下文: 作为 Widget 元素的子元素。 内容: 内容: 空 出现次数: 出现次数: 0或1次

属性:

required:1 次 required 元素指示 Widget 是否得到付费的授权。 此属性的有效值为 true 或 false。 true 表示 Widget 必须得到付费授权,false 表示 Widget 禁止付费授权。如果省略 或写错,其默认值为 false。 例如: <widget xmlns="http://www.w3.org/ns/widgets" xmlns:jil=http://www.jil.org/ns/widgets1.2> … <jil:billing required=”true”/> ” ” … </widget>

3.14 <update>元素 元素(JIL 扩展 扩展) 元素
JIL 1.0.x 规范中引入了 update 元素,此元素通过 JIL 1.2 命名空间作为 JIL 1.2 的专 有扩展。 update 元素描述了一种方法,widget user agent 可通过此方法从在线资源中升级 Widget 到新的发布版。 注意:如果 updae 在配置文档中声明,widget 元素的 version 属性必须存在而且 包含有效值,这是在此规范中规定的。 元素上下文: 元素上下文: 作为 Widget 元素的子元素。 内容: 内容: 空 出现次数: 出现次数: 0或1次
属性:

href:1 次 period:1 次

href 属性描述了 widget user agent 用来下载升级描述文档(UDD)的 URL。UDD 的 目标是描述详细升级信息。UDD 文件格式是基于 W3C Widgets 1.0 草案的 Updates 规范。详细细节请参看附录 UDD 文件格式。 period 属性描述了 widget user agent 用来自动升级的时间间隔。此元素的值及含 义如下: 0:每次 Widget 以最大化方式打开时 1:每天 2:每周 3:每月 例如: 例如: <widget xmlns="http://www.w3.org/ns/widgets" xmlns:jil=http://www.jil.org/ns/widgets1.2> … <jil:update href=” http://www.jil.org/repository/widget99090” period=” ” ” ” 1”/> ” … </widget>

4.W3C 规范附加要求
为兼容 JIL1.2 打包的要求,支持以下 W3C 规范是强制的。

4.1 HTML 4.01
JIL 1.2Widget 运行时环境必须遵照 HTML 4.01 规范支持 text/html 多媒体类型文 件。.html 和.htm 扩展都必须被支持。

4.2 XHTML Basic 1.1
JIL 1.2Widget 运行时环境必须遵照 XHTML Basic 1.1 Specification 支持 application/xhtml+xml 文件。这种类型的文件必须有.xhtml 后缀。

4.3 CSS 2.1
在 Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification 中定义的 CSS 文 件格式必须被支持。

4.4 数字签名
W3C 数字签名是规范 Widgets 1.0: Digital Signatures specification。 格式必须遵 JIL 。 循此规范, 中另作说明。 循此规范,除非在 JIL Security HLTS 中另作说明。

4.5 Media Queries
W3C 规范需要完全支持 Media Queries Specification.

4.6 SVG Tiny 1.2
JIL 1.2Widget 运行时环境必须在图标方面和 Widget 里支持 Scalable Vector Graphics (SVG) Tiny 1.2 Specification。 下述特征是 JIL 1.2 规范必需的特征,这些特征基于 http://www.w3.org/TR/SVGMobile12/ # 4 Basic Data Types # 5 Document Structure # 6 Styling # 7 Coordinate Systems, Transformations and Units # 8 Paths # 9 Basic Shapes # 10 Text(Partial)

# 11 Painting: Filling, Stroking, Colors and Paint Servers # 15 Scripting # 16 Animation(Only require JS based animation) # 18 Metadata

5.元素总览 元素总览
下表提供了 JIL 1.2 / W3C config.xml 中定义的,以及 JIL 1.0.x config.xml 中定义与 JIL 1.2 /W3C specification 不一致的所有元素及他们的属性。请参考第 3 部分查看 有差异元素和属性的附加信息。 JIL 1.0.x NameSpace Widget Elements Name Element Description Element Author Element License Element Icon Element Content Element Update Element Feature Element Access Element Zero or one Zero or one Zero or one Zero or one Zero or one Zero or one Zero or one Zero or more Zero or one Zero or more Zero or more Zero or one Zero or more Zero or more Zero or one Zero or one Zero or more Zero or one Zero or more Zero or one Zero or one Required
Optional Required for updates and for ingestion into JIL portal.
http://www.jil.org/ns/widget

JIL 1.2
http://www.wc.org/ns/widgets http://www.jil.org/ns/widget1.2

W3C
http://www.wc.org/ns/widgets

Zero or more Zero or more Zero or one Zero or more Zero or more Zero or one N/A Zero or more N/A Zero or more N/A N/A Optional Optional

Preference N/A Element Maximum_display_ Zero or one mode Element Billing Element Zero or one Widget Attributes Id Version Required
Optional, but mandated by the JIL portal.

Height Width Viewmodes

Optional Optional N/A

Optional Optional
Optional. JIL only requires support for “floating” and “fullscreen”.

Optional Optional
Optional. “floating”, “fullscreen”, “application”, “mini” or “all” supported

Name Attributes xml:lang Optional Optional Optional

Its:dir Short
Description Attributes

Optional N/A Optional Optional Optional Optional Optional Required Optional Optional N/A Optional Optional Optional Required Optional Required Optional N/A N/A Optinoal Optinoal Optinoal
Required Required

Optional Optional Optional Optional Optional Optional Optional Required Optional Optional Optional Optional Optional Optional Required Optional Required Optional Optional Optional Optinoal Optinoal Optinoal
Required Required

Optional Optional Optional Optional Optional Optional Optional Required Optional Optional Optional Optional Optional Optional Required Optional Required Optional Required Required N/A N/A N/A N/A N/A N/A

xml:lang Its:dir Author Attributes href email its:dir Icon Attributes src width height xml:lang License Attributes href xml:lang its:dir Content Attributes src type Feature Attributes name required Param Attributes Name Value Access Attributes Network Localfs remote_scripts Update Attributes
href period Billing Attributes required

Optinoal

Optinoal

6.缩略词 缩略词
下表定义了此文档中使用的缩略词。 缩略词 JIL Widget 全称 Joint Innovation Lab 显示(或更新)本地或网络数据的单一 目的的交互式程序,它打包成单一下载 文件并能安装在用户终端设备上。 World Wide Web Consortium 包含所有 Widget 资源的 zip 文件, 能够 在线或离线下载到手机上。 从 Widget 包解压到设备存储器的文件 夹。一般来说,其名与 Widget 包名相 同。 Widget Root Folde 所有的文件和子目录 General Packet Radio Service Hyper Text Transfer Protocol Over The Air Short Message Service Script Native Interface

W3C Widget Package Archive Widget Root Folder

Widget Resource GPRS HTTP OTA SMS SNI

7.参考 .
7.1. Widgets 1.0: Packaging and Configuration
W3C Candidate Recommendation 23 July 2009 http://www.w3.org/TR/2009/CR-widgets-20090723/

7.2. Widgets 1.0: Digital Signatures
W3C Candidate Recommendation 25 June 2009 http://www.w3.org/TR/2009/CR-widgets-digsig-20090625/

7.3. Media Queries
W3C Candidate Recommendation 23 April 2009 http://www.w3.org/TR/2009/CR-css3-mediaqueries-20090423/

7.4. Widgets 1.0: Access Requests Policy
W3C Working Draft 4 August 2009 http://www.w3.org/TR/2009/WD-widgets-access-20090804/

7.5. Widgets 1.0: APIs and Events
W3C Working Draft 23 April 2009 http://www.w3.org/TR/2009/WD-widgets-apis-20090423/

7.6. Widgets 1.0: Window Modes and Media Query Extensions
W3C Working Draft (Note: This page has not been made permanent yet.) Reference Date: 14 August 2009 http://dev.w3.org/2006/waf/widgets-wm/Overview.src.html

7.7. Widgets 1.0: Updates
W3C Working Draft 07 October 2008 http://www.w3.org/TR/widgets-updates/

7.8. Widgets 1.0: URI Scheme

W3C Working Draft 18 June 2009 http://www.w3.org/TR/2009/WD-widgets-uri-20090618

7.9. HTML 4.01 Specification
W3C Recommendation 24 December 1999 http://www.w3.org/TR/1999/REC-html401-19991224/

7.10. XHTML Basic 1.1
W3C Recommendation 29 July 2008 http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/

7.11. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification
W3C Candidate Recommendation 23 April 2009 http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/ JIL Widget System High Level Technical Specification 25

7.12. Scalable Vector Graphics (SVG) Tiny 1.2 Specification
W3C Recommendation 22 December 2008 http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/

8.附录 附录
8.1 JIL Feature Values
最后更新:2009/8/13 Widget 中所用的任何 handset API 都必须在 Widget 的 config.xml 通过<feature> 标 签声明。 此标签需要一个 name 属性, 此属性包含代表所用 API 的 IRI。 <feature> 标 签可选包含一个 required 属性,例如 <feature name=”http://jil.org/jil/api/1.1/Camera” required=”false”/> 如果 Widget 试图调用没有通过<feature>标签声明的受限 API 函数,Widget 运行 时环境应该抛出一个 JavaScript 安全异常。如果 Widget 需要 WRT 不支持的 API, 那么 WRT 不应该安装此 Widget。 下表标识了与 JIL 1.2 packaging specification 兼容的缺省 Widget feature 值。此表 只提供了缺省值,任何在 JIL Handset API Specification 中定义的值都优先于这些 值。 这些 features 是在对象级别定义的,feature 声明不会级联到子对象。例如声明 使用 Multimedia feature 并不暗含声明使用 VideoPlayer feature。任何 Widget 使 用的 handset API 必须通过 feature 标签声明。
API Object AccelerometerInfo Account AccountInfo AddressBookItem ApplicationTypes Attachment AudioPlayer CalendarItem CallRecord CallRecordTypes Camera Config DataNetworkConnectionTypes Feature IRI http://jil.org/jil/api/1.1/accelerometerinfo http://jil.org/jil/api/1.1/account http://jil.org/jil/api/1.1/accountinfo http://jil.org/jil/api/1.1/addressbookitem http://jil.org/jil/api/1.1.5/applicationtypes http://jil.org/jil/api/1.1/attachment http://jil.org/jil/api/1.1/audioplayer http://jil.org/jil/api/1.1/calendaritem http://jil.org/jil/api/1.1/callrecord http://jil.org/jil/api/1.1.1/callrecordtypes http://jil.org/jil/api/1.1.2/camera http://jil.org/jil/api/1.1/config http://jil.org/jil/api/1.1.5/datanetworkconnectiontypes

DataNetworkInfo Device DeviceInfo DeviceStateInfo EventRecurrenceTypes Exception ExceptionTypes File Message MessageFolderTypes MessageQuantities MessageTypes Messaging Multimedia PIM PositionInfo PowerInfo RadioInfo RadioSignalSourceTypes Telephony VideoPlayer Widget WidgetManager

http://jil.org/jil/api/1.1.1/datanetworkinfo http://jil.org/jil/api/1.1/device http://jil.org/jil/api/1.1/deviceinfo http://jil.org/jil/api/1.1/devicestateinfo http://jil.org/jil/api/1.1/eventrecurrencetypes http://jil.org/jil/api/1.1.5/exception http://jil.org/jil/api/1.1.5/exceptiontypes http://jil.org/jil/api/1.1.1/file http://jil.org/jil/api/1.1/message http://jil.org/jil/api/1.1.4/messagefoldertypes http://jil.org/jil/api/1.1/messagequantities http://jil.org/jil/api/1.1/messagetypes http://jil.org/jil/api/1.1/messaging http://jil.org/jil/api/1.1/multimedia http://jil.org/jil/api/1.1.1/pim http://jil.org/jil/api/1.1/positioninfo http://jil.org/jil/api/1.1/powerinfo http://jil.org/jil/api/1.1.1/radioinfo http://jil.org/jil/api/1.1.5/radiosignalsourcetypes http://jil.org/jil/api/1.1.1/telephony http://jil.org/jil/api/1.1.2/videoplayer http://jil.org/jil/api/1.1/widget http://jil.org/jil/api/1.1.1/widgetmanager

8.2 更新描述文档 更新描述文档(UDD)详细说明 详细说明
更新描述文档(Update Description Document)由 08 年 10 月 7 日的 W3C 工作草 案 “Widgets 1.0: Updates” 规范定义。 UDD 的目标是描述升级的细节。由于规范还是草案,请注意所用的命名空间是 JIL 1.2 的专有扩展。 下面是一个典型 UDD 的例子。为了使 widget user agent 检索和处理 UDD,作者 必须首先为 update 元素声明一个存放在 Widget 的配置文档中的有效 URI(例如 <update src="https://example.com/myWidget/updates"/>) <widgetupdate xmlns="http://www.jil.org/ns/widgets1.2"

src="https://example.com/myWidget/v1.1b/awesome.wgt" version="1.0" id="http://example.com/myWidget" bytes="1024" notify="https://example.com/myWidget/updateManager.php"> <details href="http://a.com/myWidget/1.1/whatsnew"> We fixed some bugs and improved performance! </details> </widgetupdate> 对于 widgetupdate 元素: 必须的 src 属性代表了升级 URI(通常为 URL) 必须的 version 属性代表了升级的版本值 可选的 id 属性表示了此 Widget 的标识符。 属性的值意图是匹配已装 Widget id 的标志值,此标志值已由著作者在配置文件中声明(通过 widget 元素的 id 属性) 可选的 bytes 属性代表了升级的字节数 可选的 notify 属性表示当升级完成时通过 HTTP POST 请求的 URI 可选的 details 元素表示升级的变更细节。其属性 href 表示可以获得更多细节的 (HTML)超链接。

8.3 JIL 1.2 XSD
此节定义了所有 JIL 专有扩展都必须遵从的 XSD,如下: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.jil.org/ns/widgets1.2" xmlns:widgets="http://www.w3.org/ns/widgets" xmlns:common="http://www.w3.org/2005/11/common" xmlns:jil="http://www.jil.org/ns/widgets1.2"> <xs:import namespace="http://www.w3.org/2005/11/common" schemaLocation="widgetcommon.xsd"/> <!-- Extended for JIL not in W3C specs -->

<xs:element name="maximum_display_mode"> <xs:complexType mixed="true"> <xs:attribute name="height" type="common:data.positiveNumber" /> <xs:attribute name="width" type="common:data.positiveNumber"/> </xs:complexType> </xs:element>

<xs:element name="billing"> <xs:complexType mixed="true"> <xs:attribute name="required" type="common:data.boolean"/> </xs:complexType> </xs:element>

<xs:element name="access"> <xs:complexType> <xs:attributeGroup ref="common:attr.allowed"/> <xs:attribute name="network" type="common:data.boolean"/> <xs:attribute name="localfs" type="common:data.boolean"/> <xs:attribute name="remote_scripts" type="common:data.boolean"/> </xs:complexType> </xs:element>

<xs:element name="update"> <xs:complexType> <xs:attributeGroup ref="common:attr.allowed"/> <xs:attribute name="href" type="xs:anyURI"/> <xs:attribute name="period"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="0"/> <xs:enumeration value="1"/>

<xs:enumeration value="2"/> <xs:enumeration value="3"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <!-- END JIL ELEMENTS--> </xs:schema>

8.4 具体变更历史
Widget Format and Packaging 经历过如下变更: Version 1.2.1: 09/9/11 添加第五部分“具体变更历史” 将元素出现总结表放置第六部分

Version 1.2: 09/8/14 widget 元素 name 元素 icon 元素 content 元素 param 元素 preference 元素 添加 id 属性的编码要求 添加属性 viewmodes 添加属性 short 添加属性 xml:lang 添加属性 encoding 添加此元素 添加此元素 添加 readonly 属性

(中国移动研究院 BAE 团队

BAE123@139.COM)


相关文档

Widget规范
5. JIL Widget API介绍
JIL+Widget开发入门
JIL_Widget_Format格式规范1[1].2版本
JIL Widget(网页开发技术)
JIL_Widget移植工具使用与原理
JIL Widget应用格式
Widget平台设备规范
SDK模板-Widget规范
Widget业务规范
电脑版