Re: Why is < illegal in an attribute value but the equivalent hex and decimal character entities are legal?
Dimitre Novatchev <[email protected]>
| Newsgroups | gmane.text.xml.devel |
|---|---|
| Message-ID | <CAK4KnZfdQVBeqoxrdUTD=wrdCPKsxGp-AfXtESs75zMA9GLTmw@mail.gmail.com> |
> 3. (Extra credit) Do you have C code that converts a hex or decimal character entity to its character? E.g., A --> C code --> 'A' Just cast to char: (char)0x41 (char)65 [image: image.png] Thanks, Dimitre On Wed, Mar 16, 2022 at 4:00 PM Roger L Costello <[email protected]> wrote: > 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 &? (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., A --> C code --> 'A' > > <Tests> > <Test foo="&"/> <!-- Okay --> > <Test foo="<"/> <!-- Okay --> > <Test foo=">"/> <!-- Okay --> > <Test foo="""/> <!-- Okay --> > <Test foo="'"/> <!-- Okay --> > <Test foo="'"/> <!-- Okay --> > <Test foo="""/> <!-- Error --> > <Test foo="<"/> <!-- Error --> > <Test foo="<"/> <!-- x3C = < ........... Why is this Okay? > --> > <Test foo="<"/> <!-- 60 = < ........... Why is this Okay? > --> > <Test foo=">"/> <!-- Okay --> > <Test foo="�"/> <!-- x0 = NUL ........... Error --> > <Test foo=""/> <!-- x1 = SOH ........... Error --> > <Test foo=""/> <!-- x2 = STX ........... Error --> > <Test foo=""/> <!-- x3 = ETX ........... Error --> > <Test foo=""/> <!-- x4 = EOT ........... Error --> > <Test foo=""/> <!-- x5 = ENQ ........... Error --> > <Test foo=""/> <!-- x6 = ACK ........... Error --> > <Test foo=""/> <!-- x7 = BEL ........... Error --> > <Test foo=""/> <!-- x8 = BS ........... Error --> > <Test foo="	"/> <!-- x9 = TAB ........... Okay --> > <Test foo="
"/> <!-- xA = LF ........... Okay --> > <Test foo=""/> <!-- xB = VT ........... Error --> > <Test foo=""/> <!-- xC = FF ........... Error --> > <Test foo="
"/> <!-- xD = CR ........... Okay --> > <Test foo=""/> <!-- xE = SO ........... Error --> > <Test foo=""/> <!-- xF = SI ........... Error --> > <Test foo=""/> <!-- x10 = DLE ........... Error --> > <Test foo=""/> <!-- x11 = DC1 ........... Error --> > <Test foo=""/> <!-- x12 = DC2 ........... Error --> > <Test foo=""/> <!-- x13 = DC3 ........... Error --> > <Test foo=""/> <!-- x14 = DC4 ........... Error --> > <Test foo=""/> <!-- x15 = NAK ........... Error --> > <Test foo=""/> <!-- x16 = SYN ........... Error --> > <Test foo=""/> <!-- x17 = ETB ........... Error --> > <Test foo=""/> <!-- x18 = CAN ........... Error --> > <Test foo=""/> <!-- x19 = EM ........... Error --> > <Test foo=""/> <!-- x1A = SUB ........... Error --> > <Test foo=""/> <!-- x1B = ESC ........... Error --> > <Test foo=""/> <!-- x1C = FS ........... Error --> > <Test foo=""/> <!-- x1D = GS ........... Error --> > <Test foo=""/> <!-- x1E = RS ........... Error --> > <Test foo=""/> <!-- x1F = US ........... Error --> > <Test foo=" "/> <!-- x20 = Space ........... Okay --> > </Tests> > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: [email protected] > subscribe: [email protected] > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php > > -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- Sanity is madness put to good use. ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
image.png
(image/png, 28.9 KB) - not displayed