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]
Why is < illegal in an attribute value but the equivalent hex anddecimal character entities are legal?

Hi Folks,

For the parser that I am building I need to be sure that I know exactly what can (and can't) go within an attribute value. For example, can an attribute value contain &amp;? (Yes) Can an attribute value contain the greater-than symbol? (Yes)

I created tests to see what characters are legal and what are illegal in an attribute value. See below. 

Questions:
1. Why is it that < is illegal but the equivalent hex and decimal character entities are legal?
2. Are there unusual things that are legal (or illegal) to put in an attribute value? For instance, you can't put a CDATA section or a PI in an attribute value, right?
3. (Extra credit) Do you have C code that converts a hex or decimal character entity to its character? E.g., &#x41 --> C code --> 'A'

<Tests>
    <Test foo="&amp;"/>    	<!-- Okay -->
    <Test foo="&lt;"/>      		<!-- Okay -->
    <Test foo="&gt;"/>      	<!-- Okay -->
    <Test foo="&quot;"/>    	<!-- Okay -->
    <Test foo="&apos;"/>    	<!-- Okay -->
    <Test foo="'"/>         		<!-- Okay -->  
    <Test foo="""/>        		 <!-- Error -->
    <Test foo="<"/>         		<!-- Error -->
    <Test foo="&#x3C;"/>    	<!-- x3C = < ........... Why is this Okay? -->
    <Test foo="&#60;"/>     	<!-- 60  = < ........... Why is this Okay? -->
    <Test foo=">"/>         		<!-- Okay -->
    <Test foo="&#x0;"/>     	<!-- x0 = NUL ........... Error -->
    <Test foo="&#x1;"/>     	<!-- x1 = SOH ........... Error -->
    <Test foo="&#x2;"/>     	<!-- x2 = STX ........... Error -->
    <Test foo="&#x3;"/>     	<!-- x3 = ETX ........... Error -->
    <Test foo="&#x4;"/>     	<!-- x4 = EOT ........... Error -->
    <Test foo="&#x5;"/>     	<!-- x5 = ENQ ........... Error -->
    <Test foo="&#x6;"/>     	<!-- x6 = ACK ........... Error -->
    <Test foo="&#x7;"/>     	<!-- x7 = BEL ........... Error -->
    <Test foo="&#x8;"/>     	<!-- x8 = BS ........... Error -->
    <Test foo="&#x9;"/>     	<!-- x9 = TAB ........... Okay -->
    <Test foo="&#xA;"/>     	<!-- xA = LF ........... Okay -->
    <Test foo="&#xB;"/>     	<!-- xB = VT ........... Error -->
    <Test foo="&#xC;"/>     	<!-- xC = FF ........... Error -->
    <Test foo="&#xD;"/>     	<!-- xD = CR ........... Okay -->
    <Test foo="&#xE;"/>     	<!-- xE = SO ........... Error -->
    <Test foo="&#xF;"/>     	<!-- xF = SI ........... Error -->
    <Test foo="&#x10;"/>     	<!-- x10 = DLE ........... Error -->
    <Test foo="&#x11;"/>     	<!-- x11 = DC1 ........... Error -->
    <Test foo="&#x12;"/>     	<!-- x12 = DC2 ........... Error -->
    <Test foo="&#x13;"/>     	<!-- x13 = DC3 ........... Error -->
    <Test foo="&#x14;"/>     	<!-- x14 = DC4 ........... Error -->
    <Test foo="&#x15;"/>     	<!-- x15 = NAK ........... Error -->
    <Test foo="&#x16;"/>     	<!-- x16 = SYN ........... Error -->
    <Test foo="&#x17;"/>     	<!-- x17 = ETB ........... Error -->
    <Test foo="&#x18;"/>     	<!-- x18 = CAN ........... Error -->
    <Test foo="&#x19;"/>     	<!-- x19 = EM ........... Error -->
    <Test foo="&#x1A;"/>     	<!-- x1A = SUB ........... Error -->
    <Test foo="&#x1B;"/>     	<!-- x1B = ESC ........... Error -->
    <Test foo="&#x1C;"/>     	<!-- x1C = FS ........... Error -->
    <Test foo="&#x1D;"/>    	<!-- x1D = GS ........... Error -->
    <Test foo="&#x1E;"/>     	<!-- x1E = RS ........... Error -->
    <Test foo="&#x1F;"/>     	<!-- x1F = US ........... Error -->
    <Test foo="&#x20;"/>     	<!-- x20 = Space ........... Okay -->
</Tests>


[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