[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Why is < illegal in an attribute value but theequivalent hex and decimal character entities are legal?
- From: "Liam R. E. Quin" <liam@fromoldbooks.org>
- To: Roger L Costello <costello@mitre.org>, "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Wed, 16 Mar 2022 23:21:26 -0400
On Wed, 2022-03-16 at 23:00 +0000, Roger L Costello wrote:
>
> 1. Why is it that < is illegal but the equivalent hex and decimal
> character entities are legal?
Because numeric character references are always treated as data when
they are read, not markup.
Note that they are expanded at that point, so if you use them in an
entity replacement value they become regular characters when the entity
is expanded, and can be interpreted as markup.
> 2. Are there unusual things that are legal (or illegal) to put in an
> attribute value?
Attribute values can contain the word "Belgium". [1]
> 3. (Extra credit) Do you have C code that converts a hex or decimal
> character entity to its character?
It isn't hard to write, assuming you use int32 (i.e. unsigned long) for
your characters and not e.g. char or unsigned char. The sscanf)(
function comes to mind, with %ld or %lx as appropriate. Note e.g.
𰀀 is legal.
>
>
>
> <Test foo="<"/> <!-- x3C = < ........... Why is this
> Okay? -->
Because numeric character references are always interpreted as data,
not markup.
Liam
--
Liam Quin, https://www.delightfulcomputing.com/
Available for XML/Document/Information Architecture/XSLT/
XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
Barefoot Web-slave, antique illustrations: http://www.fromoldbooks.org
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]