[DFDL-WG] Proposed spec errata for calendarPattern I and T symbols

Tim Kimber KIMBERT at uk.ibm.com
Mon Jan 16 05:00:50 EST 2012


I would be in favour of the behaviour listed under 'Alternatives'. If DFDL 
doesn't support gYear, gYearMonth etc then DFDL users should model the 
various parts of the type as integers/strings. They can always use XPath 
constructors with InputValueCalc if they really need to handle these types 
as calendar types.

regards,

Tim Kimber, Common Transformation Team,
Hursley, UK
Internet:  kimbert at uk.ibm.com
Tel. 01962-816742 
Internal tel. 246742




From:   Steve Hanson/UK/IBM at IBMGB
To:     dfdl-wg at ogf.org
Date:   16/01/2012 05:05
Subject:        [DFDL-WG] Proposed spec errata for calendarPattern I and T 
symbols
Sent by:        dfdl-wg-bounces at ogf.org



For discussion on next WG call. 

Section 13.11.1. of the DFDL 1.0 spec defines the formatting symbols that 
can be used for calendar patterns. In addition to the supported ICU 
symbols, it also permits some extra symbols (I and T) that are used as a 
shorthand for ISO8601 format date/times. The following is quoted from the 
spec. 

Currently 

Symbol   Meaning                                 Presentation   Example 
I        ISO8601 Date/Time                 (Text) 
2006-10-07T12:06:56.568+01:00 
IU        ISO8601 Date/Time                 (Text) 
2006-10-07T12:06:56.568Z 
        with output "Z" if the 
        time zone is +00:00) 
T        ISO8601 Time                 (Text)                
12:06:56.568+01:00 
        (up to HH:mm:ss.SSSZZZ) 
TU        ISO8601 Time                 (Text)                12:06:56.568Z 

        (similar to T, but a time zone 
        of +00:00 is replaced with 'Z') 
The 'I' and 'T' pattern characters should be used on their own to format 
dates and times which match the following subset of the ISO8601 standard. 
·        The restricted profile as proposed by the W3C at 
http://www.w3.org/TR/NOTE-datetime 
·        Truncated representations of calendar dates, as specified in 
section 5.2.1.3 of ISO8601:2000 
o        Basic format (subsections c, e, and f) 
o        Extended format (subsections a, b, and d) 

An analysis shows that this definition of I and T is both incomplete and 
overly complex.   
The restricted W3C profile only defines the format for date/time and 
date-only, there is no time-only format 
The restricted W3C profile supports 6 'granularities' and states that 
referencing standards must say which they support 
The restricted W3C profile states that referencing standards must be 
explicit as to the number of fractional seconds supported 
The support for truncated representations of calendar dates was added to 
support xs:gYear, xs:gYearMonth, etc, which are not supported in 1.0 
It does not say what the canonical output 'granularity' is.


Proposal 

Here is what is proposed to correct this. Note the T symbol is dropped. It 
was introduced to allow xs:dateTime to expect just a time, but that is not 
necessary (it was copied from IBM MRM). I've stated any alternatives that 
we can consider at the end. 


Symbol   Meaning                                 Presentation   Example 
I        ISO8601 Date/Time                 (Text) 
2006-10-07T12:06:56.568+01:00 
IU        ISO8601 Date/Time                 (Text) 
2006-10-07T12:06:56.568Z 
        with output "Z" if the 
        time zone is +00:00) 
The 'I' symbol must not be used with any other symbol other than the 
'escape for text' symbol. It represents calendar formats that match those 
defined in the restricted profile of the ISO8601 standard proposed by the 
W3C at http://www.w3.org/TR/NOTE-datetime.The formats are referred to as 
'granularities'. 
xs:dateTime. When parsing, the data must match one of the granularities. 
When unparsing, the fullest granularity is used. 
xs:date. When parsing, the data must match one of the date-only 
granularities. When unparsing, the fullest date-only granularity is used. 
'IU' is permitted for xs:date but the 'U' is effectively ignored as there 
is no time zone in the date-only granularities. 
xs:time. When parsing, the data must match only the time components of one 
of the granularities that contains time components. When unparsing, the 
time components of the fullest granularity are used. The literal 'T' 
character is not expected in the data when parsing and is not output when 
unparsing. 
The number of fractional second digits supported is implementation 
dependent but must be at least one. 
For a granularity that omits components, when parsing the values for the 
omitted components are supplied from the Unix epoch 
1970-01-01T00:00:00.000 .

Alternatives: 

As above but don't support the first two granularities ('Year', 'Year and 
month') on the grounds that they are really matching xs:gYear and 
xs:gYearMonth. 


Regards

Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh at uk.ibm.com
tel:+44-1962-815848 





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU 





--
  dfdl-wg mailing list
  dfdl-wg at ogf.org
  https://www.ogf.org/mailman/listinfo/dfdl-wg






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/dfdl-wg/attachments/20120116/748110a0/attachment.html>


More information about the dfdl-wg mailing list