It's possibly worth adding production 66 and the Well-formedness
constraint that bounds it:
Character Reference
[66] CharRef ::= '&#' [0-9]+ ';'
| '&#x' [0-9a-fA-F]+ ';' [WFC: Legal Character]
Well-formedness constraint: Legal Character
Characters referred to using character references must match the
production for Char.
So although the production permits � , the well-formedness
constraint points back to production [2], Char, which John supplies,
and which disallows all values below 32 except 9, 10, 13, and 32 itself.
Amy!
On Fri, 28 Apr 2017 12:31:34 -0400, John Cowan wrote:
> On Fri, Apr 28, 2017 at 3:18 AM, Mukul Gandhi <>
> wrote:
>
> I've just checked the Char production of XML, and it allows the existence
>> of Unicode code point for NUL character (i.e "\u0000").
>
>
> Actually, the production says:
>
> Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] |
> [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate
> blocks, FFFE, and FFFF. */
>
> The comment is inaccurate: #x0 is definitely not included. Note that
> "\u0000" works in XML content because "\" has no special meaning in XML, so
> that is just six legal characters. XML 1.1 allows a larger range of
> characters than XML 1.0, but still definitely excludes #0.
>
> --
> John Cowan http://vrici.lojban.org/~cowan
> Where the wombat has walked, it will inevitably walk again.
> (even through brick walls!)