Lists Home |
Date Index |
On Tue, May 07, 2002 at 10:45:43AM -0400, Elliotte Rusty Harold wrote:
>At 3:26 PM +0200 5/7/02, Matthew Gertner wrote:
>> I can
>>certainly say from my experience programming in Java and C++ that I would
>>prefer for a number to be a number and for a date to be a date, rather than
>>having to constantly convert back and forth.
>You're assuming that everyone agrees with you on what a date is, and
>what a number is, and so forth. If you think about it, I suspect
>you'll realize that's not true. Is a number floating point or
>integer? What are its maximum and minimum values? Does a date type
>include dates after 10000 CE or before 1000 CE? Strings are
>reasonably portable. Dates and numbers aren't in practice. The local
>type I want to use may not be the type you want to send. XML lets us
>talk to each other in spite of that.
It's extremely interesting to me that the date types seem to have such
prominence in this discussion.
XSDL has *nine* datatypes related to time information (date, time, dateTime,
duration, and 5 x gHorribleKludge), all of which are primitive types with
similar (sometimes nearly identical, especially in the gHorribleKludge set)
lexical representations, and no common ancestor but anySimpleType.
Does this correspond to a programming language that you currently use? If
so, could you let me know? I'll want to be sure to avoid that one at all
And with all that expensive complexity, you still can't easily represent a
datatype indicating a non-Gregorian time instant, increment, or duration
without custom definition and agreement at the application level.
>The schemas data types spec tries to address these problems by being
>all things to all people, but not all environments can handle
>integers that can exceed a googoolplex or dates that precede Julius
>Caesar. Your date type and my date type are not necessarily the same
>thing. Your number type and my number type are not necessarily the
One of the missing pieces for XSDL, in my opinion, is the failure to offer
language bindings. The primitive data types are generally defined in terms
that are apparently intended to ease binary storage and representation in
the commonest of current architectures and languages. But every application
is allowed to determine its own mapping of (for instance) unsignedByte to
the language primitives. I can think immediately of two mappings in Java,
but they're both broken in one way or another ....
Amelia A. Lewis firstname.lastname@example.org email@example.com
Never imagine yourself not to be otherwise than what it might appear to
others that what you were or might have been was not otherwise than what
you had been would have appeared to them to be otherwise.
-- The Duchess [Lewis Carroll]