My comments on DR 10-0001

Chris Rae Chris.Rae at microsoft.com
Fri Mar 26 17:20:18 CET 2010


DR 10-0001: SML: Remove dateCompatibility attribute from strict schemas and occurring places in Part 1

This Denmark resolution covers the moving of the "dateCompatibility" attribute from strict to transitional. It effectively removes the leap year bug from strict SpreadsheetML. It was discussed at WG4 on Tuesday and Murata san asked me to repeat my stated position to this list.

I am not in favour of this DR because of the difficulty it presents in migrating documents from transitional to strict. Because dates are treated as numbers at runtime by spreadsheet applications, it's impossible to tell whether a given cell truly contains a date. All one can tell is whether a cell is *formatted* as a date. If I type =TODAY() into a cell, for example, and then format it as a number, I will see "40263". Passing this value into date-related functions will produce valid values and reformatting the cell as a date format will show a date - as far as I (as the user) am concerned, the cell contains a date, but my app has no way to know that.

Removing the leap year bug from a workbook will cause any values before 1st March 1900 to display differently - they will all move forward by one day. Additionally, several functions (DAY, MONTH, etc) will produce different results. Any existing spreadsheet hand-crafted to "fix" the leap year bug will now start to produce incorrect results.

I acknowledge that this is a small date range, but the impossibility of mitigating risk to users' data will make it difficult for implementers to safely transition existing documents to strict, and as such I oppose this DR.

Chris


More information about the sc34wg4 mailing list