[Bug 29745] [FO31] fn:parse-json edge cases

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29745

--- Comment #1 from Michael Kay <mike@saxonica.com> ---
The rules state:

The function is called when the JSON input contains a special character (as
defined under the escape option) that is valid according to the JSON grammar,
whether the special character is represented in the input directly or as an
escape sequence. The function is called once for any surrogate that is not
properly paired with another surrogate. The string supplied as the argument
will always be a two- or six- character escape sequence, starting with a
backslash, that conforms to the rules in the JSON grammar


This seems pretty clear to me. You process the input one nibble at a time,
where a nibble is a character or an escape sequence introduced by "\". If you
hit a high surrogate that isn't followed by a low surrogate, you emit FFFD and
move on to the next nibble. If you hit a low surrogate that isn't preceded by a
high surrogate, you emit FFFD and move on to the next nibble.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 22 July 2016 15:21:31 UTC