- From: Nathan <nathan@webr3.org>
- Date: Mon, 01 Nov 2010 10:49:54 +0000
- To: RDFa Working Group WG <public-rdfa-wg@w3.org>
- CC: Toby Inkster <mail@tobyinkster.co.uk>
Nathan wrote: > RDFa Working Group Issue Tracker wrote: >> ISSUE-57: TypedLiteralConverter Failures and Exceptions >> >> http://www.w3.org/2010/02/rdfa/track/issues/57 >> >> Raised by: Nathan Rixham >> On product: >> The RDFa API document currently states: >> >> "The return value upon conversion failure is being actively discussed >> in the RDFa WG. There are proposals to raise exceptions upon >> conversion failure, proposals to return tuples containing conversion >> success/failure and the converted value, as well as other mechanisms >> that would allow the signalling of a conversion failure from the >> method to calling code." >> >> After implementing it is clear that Exceptions should not be thrown, >> and that TypedLiterals *must* always be created, valueOf() >> functionality is additional functionality provided by the API, however >> this is not a requirement of parsing RDFa Documents, a TypedLiteral >> can be created regardless of having TypedLiteral conversion. >> >> Another proposal is that failures in conversion are handled the same >> as TypedLiterals which have no converter registered. >> >> Which raises the issue that we have not defined what valueOf() should >> return when no appropriate TypedLiteralConverter is registered. > > I've been thinking about TypedLiteral.valueOf() functionality in more > detail, and looking at the implementation, and came to the conclusion > that I think it should be removed. Proposal to resolve ISSUE-57: (1) Remove TypedLiteral.valueOf() (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 functionality: 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 can be an IRI or a CURIE - tlc can be a TypedLiteralConverter or null functionality: (remove a converter by passing in null, if a converter exists for the type return it): if type is a curie then resolve it to an iri let the value of old-converter be null if a TypedLiteralConverter is already registered for the specified type, then set the value of old-converter to be that TypedLiteralConverter remove all registrations for the specified type if the value of converter is not null, register the converter for the specified type return old-converter; (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() ); Best, Nathan
Received on Monday, 1 November 2010 10:50:40 UTC