From ce608320e0b30b4bfa7155acf500852f8783e4a4 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 10 Apr 2016 22:22:27 -0700 Subject: [PATCH] spv-file-format.texi: Work on more of the "format" element attributes. --- spv-file-format.texi | 145 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 128 insertions(+), 17 deletions(-) diff --git a/spv-file-format.texi b/spv-file-format.texi index 15eef0eedf..f4cceb4b4c 100644 --- a/spv-file-format.texi +++ b/spv-file-format.texi @@ -1896,47 +1896,158 @@ numeric or string format. @end defvr @noindent -Whether other attributes are required (``yes''), prohibited (``no''), -or optional (``opt'') depends on @code{baseFormat}: +Whether, in the corpus, other attributes are always present (``yes''), +never present (``no''), or sometimes present (``opt'') depends on +@code{baseFormat}: @multitable {maximumFractionDigits} {@code{dateTime}} {@code{elapsedTime}} {number} {string} @headitem Attribute @tab @code{dateTime} @tab @code{elapsedTime} @tab number @tab string @item errorCharacter @tab yes @tab yes @tab yes @tab opt -@item maximumFractionDigits @tab no @tab yes @tab yes @tab no -@item minimumFractionDigits @tab no @tab yes @tab yes @tab no @item separatorChars @tab yes @tab no @tab no @tab no -@item -@item useGrouping @tab no @tab opt @tab no @tab no +@item @w{ } @item mdyOrder @tab yes @tab no @tab no @tab no -@item +@item @w{ } @item showYear @tab yes @tab no @tab no @tab no @item yearAbbreviation @tab yes @tab no @tab no @tab no -@item +@item @w{ } @item showMonth @tab yes @tab no @tab no @tab no @item monthFormat @tab yes @tab no @tab no @tab no -@item +@item @w{ } @item showDay @tab yes @tab opt @tab no @tab no @item dayPadding @tab yes @tab opt @tab no @tab no @item dayOfMonthPadding @tab yes @tab no @tab no @tab no @item dayType @tab yes @tab no @tab no @tab no -@item +@item @w{ } @item showHour @tab yes @tab opt @tab no @tab no @item hourFormat @tab yes @tab opt @tab no @tab no @item hourPadding @tab yes @tab yes @tab no @tab no -@item +@item @w{ } @item showMinute @tab yes @tab no @tab no @tab no @item minutePadding @tab yes @tab yes @tab no @tab no -@item +@item @w{ } @item showSecond @tab yes @tab yes @tab no @tab no @item secondPadding @tab no @tab yes @tab no @tab no -@item +@item @w{ } @item showMillis @tab no @tab yes @tab no @tab no -@item -@item tryStringsAsNumbers @tab no @tab no @tab no @tab no -@item +@item @w{ } @item minimumIntegerDigits @tab no @tab no @tab yes @tab no +@item maximumFractionDigits @tab no @tab yes @tab yes @tab no +@item minimumFractionDigits @tab no @tab yes @tab yes @tab no +@item useGrouping @tab no @tab opt @tab no @tab no +@item @w{ } +@item tryStringsAsNumbers @tab no @tab no @tab no @tab no +@item @w{ } @item scientific @tab no @tab no @tab yes @tab no @item small @tab no @tab no @tab opt @tab no -@item +@item @w{ } @item suffix @tab no @tab no @tab opt @tab no @end multitable + +Each attribute is described below. + +@defvr {Attribute} errorCharacter +A character that replaces the formatted value when it cannot otherwise +be represented in the given format. Always @samp{*}. +@end defvr + +@defvr {Attribute} separatorChars +Exactly four characters. In order, these are used for: decimal point, +grouping, date separator, time separator. Always @samp{.,-:}. +@end defvr + +@defvr {Attribute} mdyOrder +Within a date, the order of the days, months, and years. +@code{dayMonthYear} is the only observed value, but one would expect +that @code{monthDayYear} and @code{yearMonthDay} to be reasonable as +well. +@end defvr + +@defvr {Attribute} showYear +@defvrx {Attribute} yearAbbreviation +Whether to include the year and, if so, whether the year should be +shown abbreviated, that is, with only 2 digits. Each is @code{true} +or @code{false}; only values of @code{true} and @code{false}, +respectively, have been observed. +@end defvr + +@defvr {Attribute} showMonth +@defvrx {Attribute} monthFormat +Whether to include the month (@code{true} or @code{false}) and, if so, +how to format it. @code{monthFormat} is one of the following: + +@table @code +@item long +The full name of the month, e.g.@: in an English locale, +@code{September}. + +@item short +The abbreviated name of the month, e.g.@: in an English locale, +@code{Sep}. + +@item number +The number representing the month, e.g.@: 9 for September. + +@item paddedNumber +A two-digit number representing the month, e.g.@: 09 for September. +@end table + +Only values of @code{true} and @code{short}, respectively, have been +observed. +@end defvr + +@defvr {Attribute} showDay +@defvrx {Attribute} dayPadding +@defvrx {Attribute} dayOfMonthPadding +@defvrx {Attribute} dayType +When @code{baseFormat} is @code{elapsedTime}, @code{showDay} controls +whether and how the ``day'' component (e.g.@: the number of elapsed +24-hour periods) of the elapsed time is displayed. @code{dayPadding} +presumably controls whether the day is padded with spaces, but the +details are not understood. The only observed values are @code{true} +and @code{true}, respectively. @code{dayOfMonthPadding} and +@code{dayType} are not used. + +When @code{baseFormat} is @code{dateTime}, @code{showDay}, which is +always @code{true} in the corpus, controls whether a day is displayed. +@code{dayType} is always @code{month} in the corpus, specifying that +the day of the month is to be displayed; a value of @code{year} is +supposed to indicate that the day of the year, where 1 is January 1, +is to be displayed instead. @code{dayOfMonthPadding} or possibly +@code{dayPadding} presumably controls whether a 1-digit day of the +month is padded with a space to occupy two positions; in the corpus +both are always present and always @code{true}. (A day of the year +would presumably be padded to 3 positions.) +@end defvr + +@defvr {Attribute} showHour +@defvrx {Attribute} hourFormat +@defvrx {Attribute} hourPadding +@code{showHour} controls whether and how the hour component of a date +or an elapsed time is displayed. @code{hourPadding} presumably +controls whether the hour is padded with spaces, but the details are +not understood. The only observed values are @code{true} and +@code{true}, respectively. + +@code{hourFormat}, if present, is one of: + +@table @code +@item AMPM +The time is displayed with an @code{am} or @code{pm} suffix, e.g.@: +@code{10:15pm}. + +@item AS_24 +The time is displayed in a 24-hour format, e.g.@: @code{22:15}. + +This is the only value observed in the corpus. + +@item AS_12 +The time is displayed in a 12-hour format, without distinguishing +morning or evening, e.g.@: @code{10;15}. +@end table + +@code{hourFormat} is sometimes present for @code{elapsedTime} formats, +which is confusing since a time duration does not have a concept of AM +or PM. This might indicate a bug in the code that generated the XML +in the corpus, or it might indicate that @code{elapsedTime} is +sometimes used to format a time of day. +@end defvr -- 2.30.2