# Error in the spec (#2)

• From: Kohsuke KAWAGUCHI <k-kawa@bigfoot.com>
• Date: Tue, 20 Feb 2001 17:35:30 -0800
• Message-Id: <20010220171500.0ECD.K-KAWA@bigfoot.com>
```Dear XML Schema WG members,

I found another error in the spec, which is quite similar to an error I
pointed out in my previous post.

In the section 3.2.7.3 of the spec, it says

> C.Otherwise, if P contains a time zone and Q does not, compare as follows:
>
> P <= Q if P <= (Q with time zone -14)
> P >= Q if P >= (Q with time zone +14)
> P <> Q otherwise, that is, if (Q with time zone -14) < P < (Q with time zone +14)
> D. Otherwise, if P does not contain a time zone and Q does, compare as follows:
>
> P <= Q if (P with time zone +14) <= Q.
> P >= Q if (P with time zone -14) >= Q.
> P <> Q otherwise, that is, if (P with time zone -14) < Q < (P with time zone +14)

But again +/- sign of time zone is completely wrong. It should be

P <= Q if P <= (Q with time zone+14)

Let me explain this. Now, Q doesn't have a time zone. So what we'd like
to make sure is that

"to be P<Q,  P < (Q with time zone TZ) for whatever time zone TZ." (*)

2001-01-01T00:00:00-14:00 == 2001-01-01T14:00:00Z
because "-14:00" means it is 14 hours behind GMT.

2001-01-01T00:00:00+14:00 == 2000-12-31T10:00:00Z
because "+14:00" means it is 14 hours ahead of GMT.
In other words, when Japan(+09:00) celebrates a new year,
Greenwich is still a new year's eve.

Therefore, (*) is equivalent to the following inequality:

"to be P<Q,   P < (Q with time zone +14:00)"

Likewise, every sign of time zone is wrong.

And also I'd appreciate if you would explain why the spec defines "<="
operator, rather than "<" operator. I posted this before, but it