- From: Rob Cameron <cameron@cs.sfu.ca>
- Date: Tue, 6 May 2003 13:30:32 -0700
- To: Graham Klyne <GK@ninebynine.org>, uri@w3.org
Graham, I think I would prefer your interpretation that HEXDIG allows upper or lower case. But in a literal reading of RFC2234 and other reference materials, the following three counterarguments concern me. (1) The reference ABNF parser available from IETF does not permit lower case values for HEXDIGIT. http://www.ops.ietf.org/abnf/ (2) The HEXDIG production satisfies the individual character specification constraint of RFC 2234: "To specify a rule which IS case SENSITIVE, specify the characters individually." HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" (If specification by numeric value is required, and not just an option as shown in the examples, then why doesn't RFC2234 say "by numeric value" rather than "individually?") (3) Section 3.4 of RFC 2234 shows that a range of numeric values has an equivalent specification as individual characters. DIGIT = %x30-39 is equivalent to: DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" Therefore, one should be able to say that %x41-46 is equivalent to "A" / "B" / "C" / "D" / "E" / "F" and hence HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" is equivalent to HEXDIG = %x30-39 / %x41-46 On Tuesday 06 May 2003 4:06 am, Graham Klyne wrote: > At 18:33 05/05/2003 -0700, Rob Cameron wrote: > >(2) The HEXDIG definition of RFC2234 is upper-case only; > > it's probably not what is wanted. > > escaped = "%" HEXDIG HEXDIG > > I beg to disagree. > > From: http://www.ietf.org/rfc/rfc2234.txt > > [[ > HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" > ]] > > and > > [[ > ABNF permits specifying literal text string directly, enclosed in > quotation-marks. Hence: > > command = "command string" > > Literal text strings are interpreted as a concatenated set of > printable characters. > > NOTE: ABNF strings are case-insensitive and > the character set for these strings is us-ascii. > > Hence: > > rulename = "abc" > > and: > > rulename = "aBc" > > will match "abc", "Abc", "aBc", "abC", "ABc", "aBC", "AbC" and "ABC". > > To specify a rule which IS case SENSITIVE, > specify the characters individually. > ... > ]] > > #g > > > ------------------- > Graham Klyne > <GK@NineByNine.org> > PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E
Received on Tuesday, 6 May 2003 16:30:41 UTC