XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[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?

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.
&#196608; is legal.



> 
> 
> 
>     <Test foo="&#x3C;"/>        <!-- 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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS