James,

In your case DFDL is actually using the calendar pattern, but you are encountering a bug somewhere either in IBM DFDL or in the ICU library we use for date/time parsing. If I correct your date to '09 Feb 2013' to match the pattern, then it works ok and gives '2013-02-09' in the infoset.

We are currently in dialog with ICU on this subject, as it turns out that there is some leniency in their processing even in strict mode. We have raised a ticket with them to clarify exactly what this leniency is. But even if that explained why '9' is accepted for dd and '13' is accepted for yyyy, that does not explain why the infoset munged this into '13-02-11'. I have raised a defect.

Regards

Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair,
OGF DFDL Working Group
IBM SWG, Hursley, UK

smh@uk.ibm.com
tel:+44-1962-815848




From:        "Garriss Jr., James P." <jgarriss@mitre.org>
To:        "dfdl-wg@ogf.org" <dfdl-wg@ogf.org>,
Date:        05/03/2013 15:31
Subject:        Re: [DFDL-WG] dfdl:calendarPattern does not seem to do anything
Sent by:        dfdl-wg-bounces@ogf.org




I’ve observed the same problem that Roger observed, and I’m using xs:date.  Consider this element:
 
<xsd:element dfdl:calendarCheckPolicy="strict"
                  dfdl:calendarPattern="dd MMM yyyy" dfdl:calendarPatternKind="explicit"
                  ibmDfdlExtn:sampleValue="2001-01-01" name="BadDate" type="xsd:date" />
 
It seems to me that the input date must exactly match the pattern given (the check policy is strict).  If not, then there should be a parse error.  Yet MBTK happily converts this bad input:
 
9 Feb 13
 
To
 
<BadDate xsi:type="xs:date">13-02-11</BadDate>
 
So either I don’t understand the purpose of calendarPattern, or it’s not quite working right.
 
(Maybe someone could test this on Daffodil?)
 
From: Steve Hanson [mailto:smh@uk.ibm.com]
Sent:
Tuesday, March 05, 2013 4:46 AM
To:
Costello, Roger L.
Cc:
David Hardcastle; Cranford, Jonathan W.; Garriss Jr., James P.
Subject:
Re: dfdl:calendarPattern does not seem to do anything

 
Roger,

Change your data type from xs:string to xs:date, xs:time or xs:dateTime, make sure that dfdl:calendarPatternKind is 'explicit' and then dfdl:calendarPattern will work. This is all covered in the DFDL spec section 13.11.


Regards

Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair,
OGF DFDL Working Group
IBM SWG, Hursley, UK

smh@uk.ibm.com
tel:+44-1962-815848



From:        
"Costello, Roger L." <costello@mitre.org>
To:        
David Hardcastle/UK/IBM@IBMGB, Steve Hanson/UK/IBM@IBMGB,
Cc:        
"Cranford, Jonathan W." <jcranford@mitre.org>, "Garriss Jr., James P." <jgarriss@mitre.org>
Date:        
04/03/2013 18:21
Subject:        
dfdl:calendarPattern does not seem to do anything





Hello Steve and David,

Here I use the dfdl:calendarPattern for expressing the day of a month:

<xsd:element                  name="Day"
                                     type="xsd:string"
                                dfdl:calendarCheckPolicy="strict"
                                dfdl:calendarPattern="dd"
                                dfdl:calendarPatternKind="explicit"  />

Note that the pattern says that the input data should consist of 2 digits (dd).

However, when I parse this data:

               xx

or this data:

                123

the parser says that the data is fine. (Checking the "Validate data against schema" button has no effect)

I conclude the dfdl:calendarPattern does not verify that the data conforms to the specified pattern.

Further, I would have thought that the specified pattern would inform the parser when it has obtained a token, i.e., I shouldn't have to specify a dfdl:terminator on the element since the pattern should inform the parser. Alas, that is not the case. If I don't specify a terminator (or higher up, a separator) then the parser just keeps consuming characters until it gets to some previously defined terminator or separator.

As far as I can tell, dfdl:calendarPattern is non-functional.

Thoughts?

/Roger



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@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