1) Requiring years of less than four digits to be extended to four
digits is somewhat awkward, and more important, it doesn't solve a
pretty important problem.
200? - must be "unknown year in [2000,2009]".
020? - must be "unknown year in [200,209]"
2000? - is this "maybe 2000" or "unknown year in [20000,20009]?"
In short: The four-digit year form is required for compatibility with
xs:date, but not sufficient to prevent certain constructs from being
less than useful.
One solution to this problem would be to make the ? and ~ marking a
prefix on dates, rather than a postfix. ?2000 is maybe 2000, ?20000
is maybe 20000, 2000? is some year in [20000,20009]. ~2000 is
approximately the year 2000.
This could also allow an interstitial ~ to bound the uncertainty. For
example, 2000-01-~15 or 2000-01~15 would mean "definitely January
2000, approximately the 15th". (I believe this relates to proposal
2) Certain uncertain constructs are not allowed by the example syntax
given under "analysis":
200?-01 - January at an uncertain year in [2000,2009].
2000-?? - Unknown month in 2000.
1988-1? - Unknown month starting with 1 in 2000 (problem reading
handwriting or water-damage materials?) (NOT SUPPORTED)
200001?? - Unknown day in January 2000
2000??15 - 15th on unknown month in 2000 (NOT SUPPORTED)
200?0315 - March 15th in uncertain year in [2000,2009] (NOT SUPPORTED)
2000-01-?? - Using hyphens in the date along with uncertainty (NOT SUPPORTED)
2000-01-15 - Supported, since xsd:dates are allowed.
3) I understand the desire to ensure that any acceptable xsd:date is
also an acceptable EDTF date, but what's the reason for the
> Many dates are coded in database records without hyphens (conformant
> with ISO 8601). When extracting a date from a database record to insert
> into an XML record, some implementors feel it is an unnecessary burden
> to have to insert hyphens. Times are often encoded without colons.
Is that really it? Because "implementor can't be bothered to do some
very very trivial string manipulation" may be a poor requirement to
emphasize over "semantically unambiguous", if it turns out that
requiring some or all separator characters makes some of these cases
easier to handle.
I'm not saying the idea should be thrown out--just that it might be
better as a "desirable feature" rather than a requirement.
It might also be a good idea to number the requirements for ease of
reference during discussion.
4) Just to throw fuel on the fire, is there any distinction between
"199?-01" meaning "a January in an unknown year in the 1990s" and
"199?-01" meaning "every January in the 1990s"? I think that the
former meaning (uncertainty) is clearly the important thing to denote
here, but it's bound to come up at some point.