usefor-article-07 May 2002

[< Prev] [TOC] [ Next >]
4.1.  Syntax of News Articles

   The overall syntax of a news article is:

      article           = 1*( header CRLF ) separator body
      header            = other-header
      other-header      = header-name ":" 1*SP other-content
      header-name       = 1*name-character *( "-" 1*name-character )
      name-character    = ALPHA / DIGIT
      other-content     = <the content of a header defined by some
                 other standard>
      separator         = CRLF
      body              = *( *998text CRLF )

   However, the rule given above for header is incomplete. Further
   alternatives will be added incrementally as the various Netnews
   headers are introduced in this standard (or in future extensions),
   using the "=/" notation defined in [RFC 2234].  For example, a
   typical USENET-header would be defined as follows:

      header            =/ USENET-header
      USENET-header     = "USENET" ":" SP USENET-content
                   *( ";" ( USENET-parameter /
                            other-parameter ) )
      USENET-content    = <syntax specific to that USENET-header>
      USENET-parameter  = <a parameter specific to that USENET-header>

   where the USENET-parameter, which MUST always be of the same
   syntactic form as an other-parameter (see below), is not provided in
   all headers, and even the other-parameter is omitted in some cases
   cases (see 4.2.2).  Observe that "USENET" is (and MUST be) of the
   syntactic form of a header-name.

      other-parameter   = <a parameter not defined by this standard>
      parameter         = attribute "=" value
      attribute         = [CFWS] token [CFWS]
      x-token           = "x-" token
      token             = 1*<any (US-ASCII) CHAR except SP, CTLs,
                   or tspecials>
      tspecials         = "(" / ")" / "<" / ">" / "@" /
                "," / ";" / ":" / "\" / DQUOTE /
                "/" / "[" / "]" / "?" / "="
      value             = [CFWS] token [CFWS] / quoted-string

   An article consists of some headers followed by a body. An empty line
   separates the two. The headers contain structured information about
   the article and its transmission. A header begins with a header-name
   identifying it, and can be continued onto subsequent lines as
   described in section 4.2.3.  The body is largely unstructured text
   significant only to the poster and the readers.

        NOTE: Terminology here follows the current custom in the news
        community, rather than the [RFC 2822] convention of referring to
        what is here called a "header" as a "header-field" or "field".

   Note that the separator line MUST be truly empty, not just a line
   containing white space. Further empty lines following it are part of
   the body, as are empty lines at the end of the article.

        NOTE: The syntax above defines the canonical form of a news
        article as a sequence of lines each terminated by CRLF. This
        does not prevent serving agents or transport agents from storing
        or handling the article in other formats (e.g. using a single LF
        in place of CRLF) so long as the overall effects achieved are as
        defined by this standard when operating on the canonical form.
[< Prev] [TOC] [ Next >]
#Diff to first older
NewerOlder
News Article Format and Transmission May 2004
News Article Format and Transmission November 2003
News Article Format June 2003
News Article Format April 2003
News Article Format February 2003
News Article Format August 2002
News Article Format November 2001
News Article Format July 2001
News Article Format April 2001
News Article Format February 2000

--- ../usefor-article-06/Syntax_of_News_Articles.out          November 2001
+++ ../usefor-article-07/Syntax_of_News_Articles.out          May 2002
@@ -2,45 +2,45 @@
 
    The overall syntax of a news article is:
 
-      article           = 1*header separator body
-      header            = header-name ":" 1*SP header-content CRLF
+      article           = 1*( header CRLF ) separator body
+      header            = other-header
+      other-header      = header-name ":" 1*SP other-content
       header-name       = 1*name-character *( "-" 1*name-character )
       name-character    = ALPHA / DIGIT
-      header-content    = USENET-header-content
-                     *( [CFWS] ";" header-parameter ) /
-                other-header-content
-      USENET-header-content
-              = <the header-content defined in this standard
-                 (or an extension of it) for a specific
-                 USENET header>
-      other-header-content
-              = <a header-content defined (explicitly or
-                 implicitly) by some other standard>
-      header-parameter  = USENET-header-parameter /
-                other-header-parameter
-      USENET-header-parameter
-              = <an other-header-parameter defined in
-                 this standard for use in conjunction with
-                 a specific USENET-header-content>
-      other-header-parameter
-              = attribute "=" value
-      attribute         = USENET-token / iana-token / x-token
-      value             = token / quoted-string
-      USENET-token      = <A token defined in this standard for
-                 use in conjunction with a specific
-                 USENET-header-parameter>
-      iana-token        = <A token defined in an experimental
-                 or standards-track RFC and registered with
-                 IANA>
-      x-token           = [CFWS] "x-" token-core [CFWS]
-      token             = [CFWS] token-core [CFWS]
-      token-core        = 1*<any (US-ASCII) CHAR except SP, CTLs,
+      other-content     = <the content of a header defined by some
+                 other standard>
+      separator         = CRLF
+      body              = *( *998text CRLF )
+
+   However, the rule given above for header is incomplete. Further
+   alternatives will be added incrementally as the various Netnews
+   headers are introduced in this standard (or in future extensions),
+   using the "=/" notation defined in [RFC 2234].  For example, a
+   typical USENET-header would be defined as follows:
+
+      header            =/ USENET-header
+      USENET-header     = "USENET" ":" SP USENET-content
+                   *( ";" ( USENET-parameter /
+                            other-parameter ) )
+      USENET-content    = <syntax specific to that USENET-header>
+      USENET-parameter  = <a parameter specific to that USENET-header>
+
+   where the USENET-parameter, which MUST always be of the same
+   syntactic form as an other-parameter (see below), is not provided in
+   all headers, and even the other-parameter is omitted in some cases
+   cases (see 4.2.2).  Observe that "USENET" is (and MUST be) of the
+   syntactic form of a header-name.
+
+      other-parameter   = <a parameter not defined by this standard>
+      parameter         = attribute "=" value
+      attribute         = [CFWS] token [CFWS]
+      x-token           = "x-" token
+      token             = 1*<any (US-ASCII) CHAR except SP, CTLs,
                           or tspecials>
       tspecials         = "(" / ")" / "<" / ">" / "@" /
                 "," / ";" / ":" / "\" / DQUOTE /
                 "/" / "[" / "]" / "?" / "="
-      separator         = CRLF
-      body              = *( *998text CRLF )
+      value             = [CFWS] token [CFWS] / quoted-string
 
    An article consists of some headers followed by a body. An empty line
    separates the two. The headers contain structured information about


Documents were processed to this format by Forrest J. Cavalier III