- From: Marcos Caceres <marcosscaceres@gmail.com>
- Date: Fri, 23 May 2008 15:57:22 +1000
- To: www-tag@w3.org, "WAF WG (public)" <public-appformats@w3.org>
- Cc: "Jon Ferraiolo" <jferrai@us.ibm.com>
Dear TAG, The WAF working group is seeking advice on the creation of a Widget URI scheme. The proposal is to introduce a URI scheme that is used internally by widgets at runtime. Amongst other things, the primary purpose is to stop implementations from having to use file:// or some arbitrary URI scheme for addressing resources inside a widget package. For the benefit of those who have not read the widget spec [1], a widget resource is essentially a Zip file. Authors, obviously, store their resources (images, HTML files, etc) inside the Zip file and then address those resources using either relative or absolute paths (eg "/images/bg.gif", etc). At runtime, a user agent resolves the paths to resources inside the widget package using the widget URI scheme. This is our strawman proposal: widget-URI = "widget:" "//" UUID "/" zip-rel-path zip-rel-path = [ *localized-folder ] [ *folder ] [ filename ] / [localized-folder] [ *folder] / [ folder ] localized-folder = language-tag delimiter folder = filename delimiter delimiter = U+002F filename = 1*254( *basename [file-extension] ) basename = allowed-chars file-extension = "." 1*allowed-chars allowed-chars = cp437 / utf8-range utf8-chars = ascii-range / U+0080 and beyond cp437-chars = ascii-range / x80-FF; ascii-chars = ALPHA / DIGIT / SP / "$" / "%" / "'" / "-" / "_" / "@" / "~" / "`" / "!" / "(" / ")" / "^" / "#" / "&" / "+" / "," / "." / "=" / "[" / "]" Language-tag is defined in RFC4646 (BCP47). UUID (Universally Unique IDentifier) is defined in rfc4122. The intention of using UUIDs (or some random number) is to identify the current running instance of a widget when multiple instances are running simultaneously. Authors would not be able to address other widgets via this scheme (in fact, there should be no reason at all for authors to use this scheme). Within WAF, concerns have been raised about using UUIDs as the identifier and arguments have been made that UUID should be replaced by some random number generated internally by a widget engine (ie. leave the choice of random number sequence as an implementation detail. Eg hashing the name of the widget and time of download). However, not all members are comfortable with leaving the generation of random number sequence to implementations as it could introduce issues. It has also been proposed that, instead of using "widget://", we use "zip://" to create a more generic addressing mechanism for Zip files [2]. Any thoughts, comments, or guidance would be appreciated. Kind regards, Marcos [1] http://dev.w3.org/2006/waf/widgets/ [2] -- Marcos Caceres http://datadriven.com.au
Received on Friday, 23 May 2008 05:58:09 UTC