The following updates are proposed to satisfy action 252:

Section 13.13
Property Name Description
binaryCalendarRep Enum

Valid values are 'packed', 'bcd', 'ibm4690Packed', 'binarySeconds', 'binaryMilliseconds'

For all values, the dfdl:byteOrder property is used to determine the numeric significance of the bytes making up the representation.

'packed' means represented as an IBM 390 packed decimal. Each byte contains two decimal digits, except for the rightmost byte, which contains a sign to the right of a decimal digit. The digits are interpreted according to the dfdl:calendarPattern property.

'bcd' means represented as a binary coded decimal with two digits per byte. The digits are interpreted according to the dfdl:calendarPattern property.

'ibm4690Packed' means represented as a variant of packed format as described in property dfdl:binaryNumberRep.The digits are interpreted according to the dfdl:calendarPattern property.

For all these packed decimals the following properties are also applicable

·        dfdl:binaryPackedSignCodes ('packed' only)

·        dfdl:binaryNumberCheckPolicy

See Properties specific to numbers with binary representation section :  13.7 Properties Specific to Numbers with Binary Representation.

For all these packed decimals, dfdl:calendarPattern can contain only characters and symbols that always result in the presentation of digits. It is a schema definition error otherwise. This implies that property dfdl:calendarPatternKind must be 'explicit' because the default patterns for 'implicit' contain non-numeric characters. It is a schema definition error otherwise.

For all these packed decimals, a virtual decimal point for the boundary between seconds and fractional seconds is implied from the pattern at the boundary of 's' and 'S', i.e., where the substring 'sS' appears in the pattern.

'binarySeconds' means represented as binary xs:int, that is, as a 4 byte signed integer that is the number of seconds from the epoch (positive or negative).  It is a schema definition error if there is a specified length not equivalent to 4 bytes.

'binaryMilliseconds' means represented as binary xs:long, that is, as an 8 byte signed integer that is the number of milliseconds from the epoch (positive or negative).  It is a schema definition error if there is a specified length not equivalent to 8 bytes.  

binarySeconds and binaryMilliseconds may only be used when the type is xs:dateTime. (It is a schema definition error otherwise.)

Annotation: dfdl:element, dfdl:simpleType



Section 13.11.1
Change sentence "If dfdl:representation is binary, any characters in the pattern that are not digits must be quoted." to "If dfdl:representation is binary, then the pattern can contain only characters and symbols that always result in the presentation of digits."  (Same phrase as used in the calendarPattern and binaryCalendarRep properties).

Section 12.3.7.2.5
This section talks about packed decimal numbers. It should occur between existing sections 12.3.7.2 and 12.3.7.3, to keep the Number reps together, and to occur before 12.3.7.2.4 on binary calendars. Content is fine.

(Current) Section 12.3.7.2.4        

Change bullet 3 to read:

3.        Any of the packed decimal values - the representation maximum specified length is implementation defined but must be at least 17 (corresponding to calendar pattern 'yyyyMMddhhmmssSSS').

(This is the smallest pattern that contains all the digit-only symbols. SSS is the minimum precision for fractional seconds, but in can be more, hence why 'at least 17'. See 13.11.1, it's another implementation defined thing.)

Regards
 
Steve Hanson
Architect,
IBM DFDL
Co-Chair,
OGF DFDL Working Group
IBM SWG, Hursley, UK

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