W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > April to June 2002

RE: Internal inconsistency wrt year 0000

From: Ashok Malhotra <ashokma@microsoft.com>
Date: Fri, 26 Apr 2002 16:05:26 -0700
Message-ID: <E5B814702B65CB4DA51644580E4853FB014887A4@red-msg-12.redmond.corp.microsoft.com>
To: "James Clark" <jjc@jclark.com>, "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
Cc: <www-xml-schema-comments@w3.org>
I would like to add two arguments to this discussion.

1) James argues persuasively that the year preceding the year 1 should
be a leap year as it follows the pattern of leap years prescribed by the
Gregorian calendar.   If we agree with this then its weird to label this
year as -1.

2) Consider the operation of subtracting a dateTime from another
dateTime to yield a duration.  Let the two dates be -0001-02-15 and
0001-2-28.  Let the times on both be 00:00:00.  If we allow year 0000
the result is 2 years and 13 days.  If we disallow year 0000 the result
is 1 year and 13 days.  This does not seem right.

Another, different problem is that the 1 or 2 years in the result have
365 or 366 days depending on whether the year before year 1 is a leap
year or not.

All the best, Ashok 

-----Original Message-----
From: James Clark [mailto:jjc@jclark.com] 
Sent: Thursday, April 25, 2002 8:59 PM
To: C. M. Sperberg-McQueen
Cc: Ashok Malhotra; www-xml-schema-comments@w3.org
Subject: Re: Internal inconsistency wrt year 0000

> James, are you saying that ISO 8601:2000 makes the rule that any
> year before the common era is written not as itself but as its
> next neighbor?  The year 1 BCE is written with a 0, the year 2 BCE
> is written with a 1, ... the year 46 BCE is written with a '45',
> and so on?

Not quite.  1 BCE is written not as year 2 but as year -2.

> That would certainly absolve the ISO spec of the charge that they
> had acted in ignorance of the Gregorian calendar.
> But it is hardly going to be a usable notation for those most in
> need of those dates, is it?  How many classicists are going to be
> willing to write the year 46 as '-45'? I agree that discrepancy of
> usage is intolerable, but I am not certain it is the Schema WG which
> has created it.  We have, by now, four centuries of usage which the
> ISO spec appears to have decided should be ignored.  I don't see why
> we should follow their lead. Perhaps you can persuade me?

The ISO spec didn't invent this.  If you look at the references I sent,
will find that negative year numbers have been interpreted in the way I
for centuries.

Certainly I agree that a classicist would much prefer to say 1 BCE than
However, even if you omit year 0000, ISO 8601 and the XML Schema date
would still be basically unusable for classicists.  For periods before
introduction of the Gregorian calendar, historians and classicists
use the (proleptic) Julian calendar, whereas ISO 8601 and XML Schema
uniformly use the Gregorian calendar. Given the different rule on leap
years, the Julian and Gregorian calendars are separated by a varying,
non-integral number of years.  As far as I can see, ISO 8601 is not a
representation of dates for any branch of the humanities that is
with dates before the establishment of the Gregorian calendar.  It *is*
useful for scientific applications (such as astronomy); for communites
interested with such applications, the use of zero and negative numbers
the way I have described appears universal and long-standing.  I would
suggest that for a date representation system to be useful for
applications, it needs to support multiple calendars and multiple eras
those calendars.  ISO 8601 is not and does not, as far as I can tell,
to be such a system.  I don't think this is something XML Schema needs
fix: elements and attributes would seem to me to work just fine to
dates in a way appropriate to historical applications.  However, I would
suggest that XML Schema add a "health warning" about usage of the date
datatypes for periods predating the introduction of the Gregorian

> But saying
> "everyone" does "negative years" in a particular way seems to me to
> be either false (classicists do not write the year 46 BCE using
> the string '45')

What I said was that everyone that uses negative numbers uses them this
Classicists don't use negative numbers for years; they use a positive
and an era of a (usually implicit calendar).

> So can we start this discussion again more calmly?  I am astonished
> and outraged at the stupidity, idiocy, and arrogance of the
> usage prescribed in ISO 8601:2000, and you are outraged at the
> arrogance of XML Schema.  I'll try to keep my outrage in check, if
> you'll keep yours in check.  And then we may be able to have a useful
> discussion.

I am sorry if I appeared outraged about this.  I'm not.  Up until a
of days ago, I had no opinion on this subject.  In fact, when I
this, I followed what I presume was the intention of XML Schema and
mapped -1 onto 1 BC.  It's a natural thing to do.  However, the leap
issue prompted me to do some research on this.  After reading a lot of
documents on the Web, it became clear to me that ISO 8601 was doing the
right thing.  I think if you read the references I sent, you will reach
same conclusion I did.

Received on Friday, 26 April 2002 19:05:48 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 6 December 2009 18:13:00 GMT