[DFDL-WG] Proposed Errata Language: Issue 156 - ICU fallback mappings - character encoding/decoding errors

Steve Hanson smh at uk.ibm.com
Tue Jan 17 05:31:56 EST 2012


Mike - one bug noted - (dfdl:inputEncodingError Policy should be just 
dfdl:encodingErrorPolicy) - otherwise good.

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



From:   Mike Beckerle <mbeckerle.dfdl at gmail.com>
To:     Steve Hanson/UK/IBM at IBMGB
Cc:     dfdl-wg at ogf.org
Date:   16/01/2012 22:47
Subject:        Proposed Errata Language: Issue 156 - ICU fallback 
mappings - character encoding/decoding errors



Below is proposed errata language for Issue 156 (ICU fallback mappings, 
and character encoding/decoding errors)

Errata - Character encoding/decoding errors

A format property is added to section 11 (properties common to both 
content and framing) at the bottom of the table.

The property is encodingErrorPolicy it is an Enum. Valid values are 
'skip', 'error', 'replace'

For Parsing/Decoding Errors

There are two errors that can occur when decoding characters into 
Unicode/ISO 10646. 
1.        the data is broken - invalid byte sequences that don't match the 
definition of the encoding are encountered. 
2.        not enough bytes are found to make up the entire encoding of a 
character. That is, a fragment of a valid encoding is found. 

The behavior in these cases is controlled by 
dfdl:inputEncodingErrorPolicy.

If 'replace', then the Unicode replacement character '�' (U+FFFD) is 
substituted for the offending bytes with one replacement character for any 
incorrect fragment of an encoding. 

If 'skip' then the invalid byte sequences are dropped/ignored. No 
corresponding characters are created in the DFDL infoset.
If 'error' then a processing error occurs.

It is suggested that if a DFDL user wants to preserve information 
containing data where the encodings have these kinds of errors, that they 
model such data as xs:hexBinary, or as a xs:string, but using an encoding 
such as iso-8859-1 which preserves all bytes.
The following specific situations involving UTF-16, UTF-16LE, and UTF-16BE 
do not cause an encoding error:
utf-16 and unpaired surrogate code-point 
utf-16 and out-of-order surrogate code-point pair 
utf-16 encoding utf16Width='fixed' and a surrogate code point is 
encountered 
utf-16 byte-order-marks found not at the beginning of the data
In all these cases the code-point becomes part of the DFDL Information 
Item for the string.
For Unparsing/Encoding Errors

The following are kinds of errors when unparsing characters: 
1.        no mapping provided by the encoding specification. 
2.        not enough room to output the entire encoding of the character 
(e.g., need 2 bytes for a DBCS, but only 1 byte remains in the available 
length. 
The behavior in these cases is controlled by dfdl:encodingErrorPolicy.

If the policy is 'error' then a processing error occurs.

If the policy is 'skip' then the character is skipped. No character is 
encoded to be output for case 1, and no partial character is attempted in 
case 2.

If the policy is 'replace' then the behavior is determined by the encoding 
specification.

Each encoding has a replacement/substitution character specified by the 
ICU. (These can be found conveniently in the ICU Converter Explorer.  This 
character is substituted for the unmapped character or the character that 
has too large an encoding.) 
It is a processing error if it is not possible to output the replacement 
character because there is not enough room for its representation. 

It is a processing error if a character encoding does not provide a 
substitution/replacement character definition and one is needed because of 
dfdl:encodingErrorPolicy='replace'. (This would be rare, but could occur 
if a DFDL implementation allows many encodings beyond the minimum set.)








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/20120117/70399293/attachment.html>


More information about the dfdl-wg mailing list