Action 252: Clarify binary packed calendar relationship with calendar pattern

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
participants (1)
-
Steve Hanson