- From: Dave Peterson <davep@iit.edu>
- Date: Thu, 5 May 2005 21:09:26 -0400
- To: Sandy Gao <sandygao@ca.ibm.com>, www-xml-schema-comments@w3.org
[I trust everyone realizes that Sandy's comments are about the 1.0
spec, not 1.1 .]
At 11:43 AM -0400 050505, Sandy Gao wrote:
>The ordering between two dateTimes P and Q is
>defined by the following algorithm:
>
>A.Normalize P and Q. That is, if there is a
>timezone present, but it is not Z, convert it to
>Z using the addition operation defined in Adding
>durations to dateTimes (§E)
>
>Thus 2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z
>B. If P and Q either both have a time zone or
>both do not have a time zone, compare P and Q
>field by field from the year field down to the
>second field, and return a result as soon as it
>can be determined. That is:
>1. For each i in {year, month, day, hour, minute, second}
>a. If P[i] and Q[i] are both not specified, continue to the next i
>b. If P[i] is not specified and Q[i] is,
>or vice versa, stop and return P <> Q
>c. If P[i] < Q[i], stop and return P < Q
>d. If P[i] > Q[i], stop and return P > Q
>2. Stop and return P = Q
>
>C.Otherwise, if P contains a time zone and Q does not, compare as follows:
>1. P < Q if P < (Q with time zone +14:00)
>2. P > Q if P > (Q with time zone -14:00)
>3. P <> Q otherwise, that is, if (Q with
>time zone +14:00) < P < (Q with time zone -14:00)
>
>D. Otherwise, if P does not contain a time zone
>and Q does, compare as follows:
>1. P < Q if (P with time zone -14:00) < Q.
>2. P > Q if (P with time zone +14:00) > Q.
>3. P <> Q otherwise, that is, if (P with
>time zone +14:00) < Q < (P with time zone -14:00)
>
>Problems:
>1. Step A is not necessary. Time zones are
>already normalized when we convert lexical reps
>to values. (There is no timezone property in the
>value, only a boolean timezoned.)
True. Totally redundant.
>2. How can the situation described in B.1.b ever happen?
It would mean that the two values are from different primitive d/t
datatypes. Can't happen during schema processing. We do maintain
that in every case if two values are from different primitive
datatypes they are incomparable, so this is just emphasizing that
convention.
>3. C.3. Shouldn't it be Q with +14 <= P <= Q with -14
>4. Similarly in D.3, shouldn't it be P with +14 <= Q <= P with -14
Yes. Of course, if you accept the "otherwise" and ignore the almost-
correct explanation, you'll get it right.
I do believe we've got it right in 1.1 . No reason these can't be
fixed for 1.0, if anyone still cares about 1.0 (probably they will
at least until 1.1 is final).
--
Dave Peterson
SGMLWorks!
davep@iit.edu
Received on Friday, 6 May 2005 01:12:07 UTC