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

Re: Internal inconsistency wrt year 0000

From: James Clark <jjc@jclark.com>
Date: Fri, 26 Apr 2002 10:58:34 +0700
Message-ID: <000b01c1ecd6$a34d1960$3500a8c0@bkk.thaiopensource.com>
To: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
Cc: "Ashok Malhotra" <ashokma@microsoft.com>, <www-xml-schema-comments@w3.org>

> 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, you
will find that negative year numbers have been interpreted in the way I say
for centuries.

Certainly I agree that a classicist would much prefer to say 1 BCE than -2.
However, even if you omit year 0000, ISO 8601 and the XML Schema date types
would still be basically unusable for classicists.  For periods before the
introduction of the Gregorian calendar, historians and classicists typically
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 useful
representation of dates for any branch of the humanities that is concerned
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 in
the way I have described appears universal and long-standing.  I would
suggest that for a date representation system to be useful for historical
applications, it needs to support multiple calendars and multiple eras in
those calendars.  ISO 8601 is not and does not, as far as I can tell, aspire
to be such a system.  I don't think this is something XML Schema needs to
fix: elements and attributes would seem to me to work just fine to represent
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 calendar.

> 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 way.
Classicists don't use negative numbers for years; they use a positive number
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 couple
of days ago, I had no opinion on this subject.  In fact, when I implemented
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 year
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 the
same conclusion I did.

Received on Thursday, 25 April 2002 23:58:51 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:50:00 UTC