- From: Manu Sporny <msporny@digitalbazaar.com>
- Date: Wed, 10 Nov 2010 20:28:10 -0500
- To: RDFa WG <public-rdfa-wg@w3.org>
If there are no objections to this proposal in 7 days, we will close ISSUE-57: TypedLiteralConverter Failures and Exceptions. http://www.w3.org/2010/02/rdfa/track/issues/57 This proposal is based on discussion that happened on the telecon two weeks ago: http://www.w3.org/2010/02/rdfa/meetings/2010-10-28#ISSUE__2d_57__3a__TypedLiteralConverter_Failures_and_Exceptions The following changes will be made to the RDFa API: Change #1 --------- Remove TypedLiteral.valueOf(), moving the functionality to DataContext. Change #2 --------- Change the relevant methods on DataContext to: interface DataContext { ... any convertTypedLiteral( in TypedLiteral typedliteral ); TypedLiteralConverter registerTypeConversion( in DOMString type, in TypedLiteralConverter converter ); ... } convertTypedLiteral - typedliteral a TypedLiteral to convert to a language-native type TypedLiteral Conversion Algorithm: If a TypedLiteralConverter is registered for the .type of the typedliteral then try to convert it, if successful return the converted type (for instance a Date) in all other cases (including exceptions) return the TypedLiteral. registerTypeConversion * type - an IRI or a CURIE * converter - can be a TypedLiteralConverter or null registerTypeConversion Algorithm: 1. If converter is null and a converter exists for the type, unregister the converter and return it, otherwise return null. 2. If type is a CURIE then resolve it to an IRI 2.1 Let the value of old-converter be null 2.2 If a TypedLiteralConverter is already registered for the specified type, then set the value of old-converter to be that TypedLiteralConverter 2.3 Remove the registration for the specified type 2.4 If the value of converter is not null, register the converter for the specified type and return the old-converter Change #3 --------- If the create** methods are on the same interface (ISSUE-51), then change the definition of createTypedLiteral to: TypedLiteral createTypedLiteral(in any value, in optional DOMString type); createTypedLiteral() * value - can be one of the native types for which we've specified a converter must be registered (Date, Number types, Boolean) or a DOMString * type - required if value is a DOMString in other words we can allow: x.createTypedLiteral(123.45); x.createTypedLiteral(new Date()); This proposal asserts that we should keep the API simple and not throw exceptions when there are conversion failures. In effect, if a given type does not have a converter registered, the value that is passed in is returned. This ensures that we don't have to come up with a list of exceptions that could be thrown by the API. Conversions are associated with the current context, which will also have a list of all CURIE mappings, simplifying the interfaces between the APIs layers. Please comment in 7 days from this post if you object to this proposal. If there are no objections within 7 days, ISSUE-57 will be closed. -- manu -- Manu Sporny (skype: msporny, twitter: manusporny) President/CEO - Digital Bazaar, Inc. blog: WebID - Universal Login for the Web http://blog.digitalbazaar.com/2010/08/07/webid/2/
Received on Thursday, 11 November 2010 01:28:40 UTC