#29 XML 1.1 characters in range 0x1 - 0x1F aren't recognized

v1.04
open
nobody
5
2007-04-25
2007-04-25
Maxim Kizub
No

XML 1.1 (unlike XML 1.0) allows characters in range 0x1 - 0x1F to be encoded as numeric entities, but Piccolo reports an error without checking XML version.
The check in PiccoloLexer.flex (function parseEncodedChar) is

if ((result < 0x20 && result != '\t' && result != '\r' && result != '\n')
|| (result >= 0xD800 && result < 0xE000)
|| result >= 0xFFFE)
throw new IllegalCharException(
"Character reference to illegal XML character");

and there must be a check for xmlVersion == "1.0".

Discussion