From: Charles Lindsey (chl@clw.cs.man.ac.uk)
Date: Thu Jan 31 2002 - 05:11:58 CST
In <sG4qHjCgY9V8QAsy@pillar.turnpike.com> Paul Overell <paulo@turnpike.com> writes:
>> name-character =3D ALPHA / DIGIT
>This is far more restrictive than RFC2822 which allows any ASCII
>printing character except :, for consistency with RFC2822 I suggest.
> name-character =3D %x20-39 / %x3B-7E
That was quite deliberate. There are no known headers (whether in news or
email) that do not fit within our syntax, and we saw no point in
permitting things which were not needed and which might lead to awkward
parsing problems in the future. However, there is text which says that you
SHOULD tolerate all ASCII printables except ':'.
>[snip]
>>
>>B.3 Headers
>>
>> <CONTROL>-verb =3D <the verb defined in this standard
>> (or an extension of it) for a specific
>> <CONTROL> message>
>> <CONTROL>-arguments =3D <the arguments defined in this standard
>> (or an extension of it) for a specific
>> <CONTROL> message>
>> <USENET>-header-content
>> =3D <the header-content defined in this standard
>> (or an extension of it) for a specific
>> <USENET> header>
>> <USENET>-header-parameter
>> =3D <an other-header-parameter defined in
>> this standard for use in conjunction with
>> a specific <USENET>-header-content>
>> <USENET>-token =3D <A token defined in this standard for
>> use in conjunction with a specific
>> <USENET>-header-parameter>
>>
>This isn't syntactically valid ABNF, can't have <> on the left of =3D. Are
>you using this as an ABNF schema?
Yes, this is a schema (or, if you want to get terribly technical, it is a
Van Wijngaarden grammar).
Actually, in our earlier drafts, those '<' and '>' were omitted. I just
inserted them now so as to make it more obvious that it was a schema. I
could add a description of the notation in a suitable place if you like,
though I think it is pretty obvious what it means.
>I found the headers section hard to read because nowhere are the
>header-names defined, are they missing or is the reader supposed to
>deduce them from the above schema?
They are implicit in the schema (and the collected syntax is actually the
first time they have all been written down in one place). The advantage is
that it enables additional headers to be added in this, as well as future,
standards.
Note that we inherited the practice of using 'Foo-content' to define the
Foo header from Son-of-1036.
>e.g. where is
>expires =3D "Expires:" Expires-content CRLF
I might be persuaded that we need a <USENET>-header-name rule within the
schema, so that the rule for 'header' would become
header = <USENET>-header-name ":" 1*SP <USENET>-header-content CRLF
>> Lines-content =3D [CFWS] 1*digit
> Lines-content =3D [CFWS] 1*DIGIT
>[snip]
>> article-size =3D 1*digit
> article-size =3D 1*DIGIT
Oops!
>[snip]
>> combiner-ASCII =3D "0"-"9" / %x41-5A / %x61-7A / "+" / "-" / "_"
> combiner-ASCII =3D DIGIT / ALPHA / "+" / "-" / "_"
Yes.
-- Charles H. Lindsey ---------At Home, doing my own thing------------------------ Tel: +44 161 436 6131 Fax: +44 161 436 6133 Web: http://www.cs.man.ac.uk/~chl Email: chl@clw.cs.man.ac.uk Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K. PGP: 2C15F1A9 Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5